[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[ecf-dev] ECF 0.8.2 and Eclipse 3.1.2
|
Hi Folks,
With recent versions (0.8.2) folks have been finding NPEs occuring in
ECF when running on Eclipse 3.1.2. See below for a recently an example
reported to this newsgroup, or bug
https://bugs.eclipse.org/bugs/show_bug.cgi?id=143681
I've reproduced this NPE on 3.1.2. As I suspected, this *is* due to the
fact that it's running on 3.1.2 and the problem does not occur on 3.2
stream. Just for background, the problem is that Eclipse 3.1.2 has a
header in the bundle manifest.mf that looks like this:
Eclipse-AutoStart: true
and this header determines whether the enclosing plugin is automatically
started when a class that it contains is accessed. This auto starting
is required, otherwise perfectly legitimate calls like this:
ClientPlugin.getDefault().getDialogSettings()
throw a NPE because the ClientPlugin.getDefault() returns null (without
the AutoStart header). And getDefault() should *never* return null.
The Eclipse-AutoStart header was deprecated in 3.2 (in favor of
Eclipse-LazyStart), and so we removed/changed the header in the ECF
codebase in order to keep the codebase clean.
So, if you can use 3.2 for building your app then that will fix the
problem. I'll see about the work involved in retrofitting the existing
ECF codebase with these headers and doing additional API
back-porting...but I'm not sure if it is worth it at this point. But
that's what I need feedback on. Please let me know if those of you
using 3.1.2 *cannot* use 3.2 but still want to use the most recent
versions of ECF (i.e. 0.8.X).
Thanks,
Scott
I use update manager to get ECF, but when I restart the workbench and
click the "Connect Workspace" button, java.lang.NullPointerException is
reported:
java.lang.NullPointerException
at
org.eclipse.ecf.example.collab.ui.ConnectionDialog.getDialogSettings(ConnectionDialog.java:330)
at
org.eclipse.ecf.example.collab.ui.ConnectionDialog.restoreDialogSettings(ConnectionDialog.java:262)
at
org.eclipse.ecf.example.collab.ui.ConnectionDialog.createContents(ConnectionDialog.java:191)
at org.eclipse.jface.window.Window.create(Window.java:418)
at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:996)
at org.eclipse.jface.window.Window.open(Window.java:776)
at
org.eclipse.ecf.example.collab.actions.NewWorkbenchAction.run(NewWorkbenchAction.java:67)
at
org.eclipse.ui.actions.ActionDelegate.runWithEvent(ActionDelegate.java:70)
at
org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:236)
at
org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:223)
at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:538)
at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)
at
org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:441)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3125)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2758)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
at
org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
at org.eclipse.core.launcher.Main.run(Main.java:973)
at org.eclipse.core.launcher.Main.main(Main.java:948)
I have checked the ecf packages (include the example packages) have been
installed in the plugins directory. My Eclipse version is 3.1.2.
What's the problem?
Thanks in advance.