Bug 627728

Summary: Eclipse Helios unable to instantiate editor
Product: [Fedora] Fedora Reporter: Erinn Looney-Triggs <erinn.looneytriggs>
Component: eclipse-pydevAssignee: Alexander Kurtakov <akurtako>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 14CC: akurtako, ebaron, jjohnstn, nathaniel, oliver, overholt
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: eclipse-pydev-1.6.1-1.fc14 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-09-14 05:05:22 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Erinn Looney-Triggs 2010-08-26 19:08:55 UTC
Description of problem:
"Could not open the editor: The editor class could not be instantiated. This usually indicates a missing no-arg constructor or that the editor's class name was mistyped in plugin.xml."

I don't believe this is an environment problem, I have removed my .eclipse folder and allowed it to be recreated. However, the workspace folder is from a previous install, so that could possibly be it.

Version-Release number of selected component (if applicable):
eclipse-platform-3.6.0-3.fc14.x86_64

How reproducible:
Not sure if this is, this happened to me by default on a clean install. 

Additional info:
Backtrace:
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException: An error occurred while automatically activating bundle org.python.pydev (564).
	at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:121)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:453)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:393)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:469)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
	at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:338)
	at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:232)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1197)
	at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
	at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:904)
	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$1.run(WorkbenchPlugin.java:267)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:263)
	at org.eclipse.ui.internal.registry.EditorDescriptor.createEditor(EditorDescriptor.java:235)
	at org.eclipse.ui.internal.EditorManager.createPart(EditorManager.java:845)
	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.EditorAreaHelper.setVisibleEditor(EditorAreaHelper.java:271)
	at org.eclipse.ui.internal.EditorManager.setVisibleEditor(EditorManager.java:1429)
	at org.eclipse.ui.internal.EditorManager$5.runWithException(EditorManager.java:942)
	at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3527)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3174)
	at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
	at org.eclipse.ui.internal.Workbench$31.runWithException(Workbench.java:1566)
	at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3527)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3174)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2537)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	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:369)
	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:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
Caused by: org.osgi.framework.BundleException: Exception in org.python.pydev.plugin.PydevPlugin.start() of bundle org.python.pydev.
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)
	at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:417)
	at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:265)
	at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:106)
	... 58 more
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64
	at org.python.pydev.core.REF.encodeBase64(REF.java:254)
	at org.python.pydev.ui.pythonpathconf.InterpreterInfo.getExeAsFileSystemValidPath(InterpreterInfo.java:1145)
	at org.python.pydev.ui.interpreters.AbstractInterpreterManager.getInterpretersFromPersistedString(AbstractInterpreterManager.java:352)
	at org.python.pydev.ui.interpreters.AbstractInterpreterManager.getInterpreterInfos(AbstractInterpreterManager.java:161)
	at org.python.pydev.ui.interpreters.AbstractInterpreterManager.<init>(AbstractInterpreterManager.java:106)
	at org.python.pydev.ui.interpreters.PythonInterpreterManager.<init>(PythonInterpreterManager.java:24)
	at org.python.pydev.plugin.PydevPlugin.start(PydevPlugin.java:171)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
	... 64 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334)
	... 74 more

Comment 1 Andrew Overholt 2010-08-26 19:59:10 UTC
Did PyDev editor IDs change?

Comment 2 Nathaniel McCallum 2010-08-27 20:39:56 UTC
I'm experiencing this as well in a new F14 install.

I updated the RPM to 1.6.1 (not in koji, I'll give you my spec file if you'd like) and I still got the same error.

Installing pydev from the update site works fine, so its definitely a bug in the RPM somewhere.  If you can point me in the right direction, I can try to fix it if you'd like.

Comment 3 Nathaniel McCallum 2010-08-27 20:41:24 UTC
Oh, I should also note that if you switch to the pydev perspective, eclipse barfs all over the place.

Comment 4 Nathaniel McCallum 2010-08-27 20:56:08 UTC
This also only occurs if you have an interpreter defined.  If no interpreter is defined, no exception is generated.

Comment 5 Nathaniel McCallum 2010-08-28 04:15:33 UTC
Ok, root cause is the reworking of the apache-commons-codec and apache-commons-logging packages.  This broke symlinks in the package.  This RPM upgrades pydev to 1.6.1 and fixes the symlink issues.  It also updates the (build)?requires to the new package names.

http://npmccallum.fedorapeople.org/fixes/eclipse-pydev-1.6.1-1.fc14.src.rpm
http://npmccallum.fedorapeople.org/fixes/eclipse-pydev-1.6.1-1.fc14.x86_64.rpm
http://npmccallum.fedorapeople.org/fixes/eclipse-pydev-mylyn-1.6.1-1.fc14.x86_64.rpm
http://npmccallum.fedorapeople.org/fixes/eclipse-pydev.spec

I'd commit it myself but I don't have access to the eclipse-pydev.

Comment 6 Alexander Kurtakov 2010-08-28 07:31:39 UTC
Hi Nathaniel, 
Just ask in pkgdb and I'll approve you as co-maintainer.

Comment 7 Fedora Update System 2010-08-28 16:12:43 UTC
eclipse-pydev-1.6.1-1.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/eclipse-pydev-1.6.1-1.fc14

Comment 8 Nathaniel McCallum 2010-08-28 16:15:10 UTC
Fixed here: http://koji.fedoraproject.org/koji/buildinfo?buildID=192552

I think this bug will close automatically when bodhi pushes to F14 stable.

Comment 9 Andrew Overholt 2010-08-28 16:23:05 UTC
Thanks, Nathaniel!

Comment 10 Fedora Update System 2010-08-30 19:39:02 UTC
eclipse-pydev-1.6.1-1.fc14 has been pushed to the Fedora 14 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update eclipse-pydev'.  You can provide feedback for this update here: https://admin.fedoraproject.org/updates/eclipse-pydev-1.6.1-1.fc14

Comment 11 Fedora Update System 2010-09-14 05:05:17 UTC
eclipse-pydev-1.6.1-1.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.