[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ecf-dev] NPE at BaseSharedObject#destroySelfLocal

Hi, all!

I'm using SharedObject API and trying to send destroy message to other
clients before disconnecting container, since there is some process to
do. so think it's better to use destorySelfLocal. but, I got NPE when I
invoke that.

so, question is here, isn't is always happen after invoking
"manager.removeSharedObject(getID());"?
or, there is any goodway to call destroySelfLocal?

ECF version is 2.0.1.v20080916-1301.

thanks,
Cynipe

----BaseSharedObject---
	protected void destroySelfLocal() {
		traceEntering("destroySelfLocal"); //$NON-NLS-1$
		try {
			ISharedObjectManager manager = getContext().getSharedObjectManager();
			if (manager != null) {
				manager.removeSharedObject(getID());
			}
		} catch (Exception e) {
			traceCatching("destroySelfLocal", e); //$NON-NLS-1$
			log(DESTROYSELFLOCAL_CODE, "destroySelfLocal", e); //$NON-NLS-1$
		}
		traceExiting("destroySelfLocal"); //$NON-NLS-1$
	}
----

----stacktrace----
java.lang.NullPointerException
	at
org.eclipse.ecf.core.sharedobject.BaseSharedObject.getLocalContainerID(BaseSharedObject.java:240)
	at
org.eclipse.ecf.core.sharedobject.BaseSharedObject.isPrimary(BaseSharedObject.java:263)
	at
org.eclipse.ecf.core.sharedobject.BaseSharedObject.getSharedObjectAsString(BaseSharedObject.java:593)
	at
org.eclipse.ecf.core.sharedobject.BaseSharedObject.traceEntering(BaseSharedObject.java:599)
	at
org.eclipse.ecf.core.sharedobject.BaseSharedObject.destroySelf(BaseSharedObject.java:284)
	at XXXX(XXXX.java:239)
	at XXXX(XXXX.java:157)
	at XXXX(TXXX.java:189)
	at XXXX(XXXX.java:65)
	at XXXX(XXXX.java:78)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
	at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:583)
	at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:500)
	at
org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
	at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
	at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1212)