Eric,
As you wrote, I had Tuscany in four .jar (api, impl, lib, tools) files
added to my build-path. I appended the line:
Eclipse-BuddyPolicy: dependent
to the each MANIFEST.MF file, but it did not help very much - earlier my
plug-in crashed with
java.lang.NoClassDefFoundError: org/apache/tuscany/sdo/api/SDOUtil
(...)
Caused by: java.lang.ClassNotFoundException:
org.apache.tuscany.sdo.api.SDOUtil at
org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:402)
and now it crashes with
java.lang.ExceptionInInitializerError
(...)
Caused by: java.lang.NullPointerException
at org.apache.tuscany.sdo.api.SDOUtil.<clinit>(SDOUtil.java:48)
Then I copied these .jar files to /usr/lib/eclipse/plugins/ and ran
eclipse -clean
Two new plug-ins were found: org.apache.tuscany.sdo.lib and
org.apache.tuscany.sdo.spec. I added them to the required plug-ins, but
it did not change anything.
What am I doing wrong?
below is the fragment of code and the error log:
try {
scope = SDOUtil.createHelperContext();
}
catch (Throwable e) {
e.printStackTrace();
}
my error log:
java.lang.ExceptionInInitializerError
at omegaomegavisio.Activator.<init>(Activator.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:136)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:962)
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:317)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:256)
at
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:342)
at
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.preFindLocalClass(EclipseLazyStarter.java:88)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:412)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:189)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:334)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:386)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:347)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.loadClass(BundleLoader.java:278)
at
org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:227)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1245)
at
org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:147)
at
org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:759)
at
org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
at
org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:51)
at
org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:242)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at
org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:238)
at
org.eclipse.ui.internal.registry.ViewDescriptor.createView(ViewDescriptor.java:69)
at
org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:292)
at
org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:197)
at
org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:566)
at
org.eclipse.ui.internal.WorkbenchPage$ActivationList.setActive(WorkbenchPage.java:3915)
at
org.eclipse.ui.internal.WorkbenchPage.restoreState(WorkbenchPage.java:2929)
at
org.eclipse.ui.internal.WorkbenchWindow.restoreState(WorkbenchWindow.java:1936)
at org.eclipse.ui.internal.Workbench.doRestoreState(Workbench.java:2873)
at org.eclipse.ui.internal.Workbench.access$14(Workbench.java:2821)
at org.eclipse.ui.internal.Workbench$19.run(Workbench.java:1697)
at
org.eclipse.ui.internal.Workbench.runStartupWithProgress(Workbench.java:1437)
at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1695)
at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1666)
at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1545)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1489)
at
org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(WorkbenchConfigurer.java:183)
at
org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:702)
at org.eclipse.ui.internal.Workbench.init(Workbench.java:1101)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1863)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:422)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
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:597)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)
Caused by: java.lang.NullPointerException
at org.apache.tuscany.sdo.api.SDOUtil.<clinit>(SDOUtil.java:48)
... 66 more
Eric S Rose wrote:
Tomasz,
I ran into the same problem you're having when I tried to create
Tuscany Eclipse plug-ins. I'm assuming you have Tuscany in several
different plug-ins, like org.apache.tuscany.sdo.api,
org.apache.tuscany.sdo.impl, org.apache.tuscany.sdo.lib and
org.apache.tuscany.sdo.tools. If that's the way yours are set up,
you'll need to make use of Eclipse buddy policy, described in
http://www.eclipsezone.com/articles/eclipse-vms/ (look at the
ClassLoaders, Bundles and Buddies section). Basically, you need to add
Eclipse-BuddyPolicy: dependent to the MANIFEST.MF in the api, impl and
lib plug-ins. Then, make whatever plug-in your void exmp() code is in
depend on the Tuscany plug-ins and everything should work.
Hope that helps,
Eric