Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 351796

Summary: java.lang.NoClassDefFoundError: org/eclipse/datatools/connectivity/services/PluginResourceLocator
Product: [Tools] Data Tools Reporter: Peter Butkovic <butkovic>
Component: Data Source ExplorerAssignee: Linda Chan <lchan>
Status: RESOLVED NOT_ECLIPSE QA Contact:
Severity: major    
Priority: P3 CC: bfitzpat, francois.marot, larabirabert
Version: 1.9   
Target Milestone: 1.9.1   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Screen shot of Eclipse Installation Details dialog
none
datatools connectivity version
none
updates 1
none
updates 2 none

Description Peter Butkovic CLA 2011-07-12 03:13:46 EDT
Build Identifier: 20110615-0604

I'm using: eclipse-jee-indigo-win32 with JBoss AS plugin and Clearcase plugin

When trying to create new datasource or when trying to import one error is shown and following are the event details:

Message:
Unhandled event loop exception

Exception stack trace:
java.lang.NoClassDefFoundError: org/eclipse/datatools/connectivity/services/PluginResourceLocator
	at org.eclipse.datatools.connectivity.apache.internal.derby.driver.DerbyClientDriverValuesProvider.createDefaultValue(DerbyClientDriverValuesProvider.java:32)
	at org.eclipse.datatools.connectivity.drivers.DriverManager.resetDefaultInstances(DriverManager.java:633)
	at org.eclipse.datatools.connectivity.drivers.DriverManager.<init>(DriverManager.java:118)
	at org.eclipse.datatools.connectivity.drivers.DriverManager.getInstance(DriverManager.java:63)
	at org.eclipse.datatools.connectivity.internal.ConnectionProfileMgmt.readCPsFromXML1_0(ConnectionProfileMgmt.java:636)
	at org.eclipse.datatools.connectivity.internal.ConnectionProfileMgmt.loadCPs(ConnectionProfileMgmt.java:922)
	at org.eclipse.datatools.connectivity.internal.ConnectionProfileMgmt.loadCPs(ConnectionProfileMgmt.java:493)
	at org.eclipse.datatools.connectivity.internal.InternalProfileManager.loadProfiles(InternalProfileManager.java:1083)
	at org.eclipse.datatools.connectivity.internal.InternalProfileManager.getProfiles(InternalProfileManager.java:148)
	at org.eclipse.datatools.connectivity.internal.InternalProfileManager.getProfilesByCategory(InternalProfileManager.java:198)
	at org.eclipse.datatools.connectivity.ProfileManager.getProfilesByCategory(ProfileManager.java:88)
	at org.eclipse.datatools.connectivity.internal.ui.wizards.ImportProfilesDialog.createDialogArea(ImportProfilesDialog.java:184)
	at org.eclipse.jface.dialogs.Dialog.createContents(Dialog.java:760)
	at org.eclipse.jface.window.Window.create(Window.java:431)
	at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089)
	at org.eclipse.jface.window.Window.open(Window.java:790)
	at org.eclipse.datatools.connectivity.ui.actions.ImportProfileViewAction.execute(ImportProfileViewAction.java:116)
	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
	at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
	at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
	at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
	at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829)
	at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815)
	at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	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:344)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	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.equinox.launcher.Main.invokeFramework(Main.java:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

session data:
eclipse.buildId=I20110613-1736
java.version=1.6.0_26
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=sk_SK
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.jee.product


Reproducible: Always

Steps to Reproduce:
1. in data source explorer click import button
2. error is shown
OR
1. in data source explorer new connection profile
2. error is shown
Comment 1 Rabert LARABI CLA 2011-07-12 07:59:34 EDT
an alternative  here : 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=351815
Comment 2 Brian Fitzpatrick CLA 2011-07-12 09:09:06 EDT
Linda, not sure what's going on with this but it's an issue with your new code to operate in a non-OSGi environment...
Comment 3 Linda Chan CLA 2011-07-12 16:12:43 EDT
It does not seem to be a problem with the new code itself.
The java.lang.NoClassDefFoundError indicates that the org/eclipse/datatools/connectivity/services/PluginResourceLocator class introduced in Indigo was not loaded in the classpath.  It looks like an older version of the org.eclipse.datatools.connectivity plugin jar got loaded in the user installation environment.

typek_pb,
   Do you see similar problem when using just eclipse-jee-indigo-win32, but *without* JBoss and Clearcase installed?  
One of them, perhaps JBoss packaging (which is also installed in a similar problem described in https://bugs.eclipse.org/bugs/show_bug.cgi?id=351815#c1) has included an older version of the connectivity plugin.
The correct version should be org.eclipse.datatools.connectivity_1.2.2.v201105270956.jar.
You can also check the actual plugin version loaded in your Eclipse IDE's Help -> "About Eclipse SDK", then select the "Installation Details" button to open the dialog (see attached screen shot).
Comment 4 Linda Chan CLA 2011-07-12 16:13:34 EDT
Created attachment 199528 [details]
Screen shot of Eclipse Installation Details dialog
Comment 5 Linda Chan CLA 2011-07-12 19:53:31 EDT
*** Bug 351815 has been marked as a duplicate of this bug. ***
Comment 6 Rabert LARABI CLA 2011-07-13 05:02:21 EDT
I have this version but I am the same error with derby ... 
So I rename all the jar derby in.jar.bak then I have an other error : 

Unhandled event loop exception


java.lang.NoClassDefFoundError: org/eclipse/datatools/sqltools/result/ResultsViewAPI
	at org.eclipse.datatools.sqltools.internal.tabledataeditor.query.execute.QueryOutputHelper.showMessage(QueryOutputHelper.java:533)
	at org.eclipse.datatools.sqltools.internal.tabledataeditor.query.execute.QueryOutputHelper.runQuery(QueryOutputHelper.java:276)
	at org.eclipse.datatools.sqltools.tabledataeditor.actions.SampleContentAction.run(SampleContentAction.java:309)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
	at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	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:344)
	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:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
Caused by: org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException: An error occurred while automatically activating bundle org.eclipse.datatools.sqltools.result (870).
	at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:122)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:462)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
	at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
	at java.lang.Class.getConstructor0(Class.java:2699)
	at java.lang.Class.newInstance0(Class.java:326)
	at java.lang.Class.newInstance(Class.java:308)
	at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)
	at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
	at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
	at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
	at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:260)
	at org.eclipse.ui.internal.registry.EditorDescriptor.createEditor(EditorDescriptor.java:235)
	at org.eclipse.ui.internal.EditorManager.createPart(EditorManager.java:875)
	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:609)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
	at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850)
	at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842)
	at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2756)
	at org.eclipse.datatools.sqltools.data.internal.ui.editor.EditTableDataAction.run(EditTableDataAction.java:63)
	... 28 more
Caused by: org.osgi.framework.BundleException: Exception in org.eclipse.datatools.sqltools.result.ResultsViewPlugin.start() of bundle org.eclipse.datatools.sqltools.result.
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:734)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:299)
	at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
	at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)
	at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
	... 63 more
Caused by: java.lang.NoSuchMethodError: org.apache.lucene.document.Document.add(Lorg/apache/lucene/document/Field;)V
	at org.eclipse.datatools.sqltools.result.internal.index.ResultHistoryLuceneIndex.addResults(ResultHistoryLuceneIndex.java:123)
	at org.eclipse.datatools.sqltools.result.ResultsViewPlugin.start(ResultsViewPlugin.java:117)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
	... 69 more
Comment 7 Francois MAROT CLA 2011-07-13 05:32:29 EDT
I have the same problem with Indigo and JBoss tools installed. In order to be able to use the "datasource explorer" and configure my DB connection, I had to rename the following files in *.BAK so that I do not have the exception anymore.

org.eclipse.datatools.connectivity.apache.derby_1.0.101.v201104090305.jar.BAK
org.eclipse.datatools.connectivity.apache.derby.dbdefinition_1.0.2.v200906161815.jar.BAK
org.eclipse.datatools.connectivity.apache.derby.ui_1.0.3.v201007080903.jar.BAK
org.eclipse.datatools.modelbase.derby_1.0.0.v201002161452.jar.BAK
org.eclipse.datatools.sqltools.db.derby_1.0.0.v200906020900.jar.BAK
org.eclipse.datatools.sqltools.db.derby.ui_1.0.0.v200906020900.jar.BAK

I also have the following version:
 org.eclipse.datatools.connectivity_1.2.2.v201010220354.jar
instead of the one you mentionned that is provided with Indigo default install ( org.eclipse.datatools.connectivity_1.2.2.v201105270956.jar ). Don't know who overwrote it...

One more thing: I tried to use the original version (org.eclipse.datatools.connectivity_1.2.2.v201105270956.jar ) and reverted my *.BAK to their original names and wasn't able to have access to "datasource explorer" view anymore.
Comment 8 Rabert LARABI CLA 2011-07-13 08:59:45 EDT
Solution for all the problems : 

- Eclipse > install new Software 
- Select the eclipse indigo update site 
- and réinstall the Eclipse Data tool developpement
- delete the .bak files
Comment 9 Peter Butkovic CLA 2011-07-19 13:35:38 EDT
Created attachment 199923 [details]
datatools connectivity version

OK, thanks for all these hints. I'm quite amazed about feedback on this one!

My version of datatools connectivity is older one, as you suspected (see attached screenshot).

In fact I'm not sure how to solve it anyway, as I need jboss tools for developement.
Comment 10 Rabert LARABI CLA 2011-07-19 13:58:42 EDT
To solve it you have to do what I say in my comment 8 :

Reinstall the datatool connectivity by the eclipse update site

It must solve it



(In reply to comment #9)
> Created attachment 199923 [details]
> datatools connectivity version
> 
> OK, thanks for all these hints. I'm quite amazed about feedback on this one!
> 
> My version of datatools connectivity is older one, as you suspected (see
> attached screenshot).
> 
> In fact I'm not sure how to solve it anyway, as I need jboss tools for
> developement.
Comment 11 Peter Butkovic CLA 2011-07-19 14:16:53 EDT
Created attachment 199927 [details]
updates 1

OK, so finally it works for me.

As suggested by Rabert I did reinstall of data tools. See attached screenshots of all the updates I did. And suddenly it works for me.

Thanks a lot to all of you guys.
Comment 12 Peter Butkovic CLA 2011-07-19 14:17:10 EDT
Created attachment 199928 [details]
updates 2