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

Reply via email to