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

Bug 336138

Summary: java.lang.NoClassDefFoundError: org/apache/commons/io/FilenameUtils
Product: z_Archived Reporter: Steffen Pingel <steffen.pingel>
Component: MylynAssignee: Steffen Pingel <steffen.pingel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: alvaro.sanchez-leon, sebastien.dubois
Version: unspecified   
Target Milestone: 0.7   
Hardware: PC   
OS: Linux   
Whiteboard:
Bug Depends on: 336137    
Bug Blocks:    

Description Steffen Pingel CLA 2011-02-02 14:51:15 EST
What steps will reproduce the problem?
1. Install weekly build
2. Open a review in the Task Editor


Exception Stack Trace:
java.lang.NoClassDefFoundError: org/apache/commons/io/FilenameUtils
at org.eclipse.mylyn.internal.reviews.ui.operations.ReviewCompareEditorInput$ByteArrayInput.getType(ReviewCompareEditorInput.java:67)
at org.eclipse.compare.internal.CompareUIPlugin.getTypes(CompareUIPlugin.java:985)
at org.eclipse.compare.internal.CompareUIPlugin.findStructureViewerDescriptor(CompareUIPlugin.java:786)
at org.eclipse.compare.internal.CompareUIPlugin.findStructureViewer(CompareUIPlugin.java:821)
at org.eclipse.compare.CompareUI.findStructureViewer(CompareUI.java:312)
at org.eclipse.compare.CompareEditorInput.findStructureViewer(CompareEditorInput.java:931)
at org.eclipse.compare.internal.CompareStructureViewerSwitchingPane.getViewer(CompareStructureViewerSwitchingPane.java:84)
at org.eclipse.compare.CompareEditorInput$10.getViewer(CompareEditorInput.java:715)
at org.eclipse.compare.CompareViewerSwitchingPane.setInput(CompareViewerSwitchingPane.java:266)
at org.eclipse.compare.internal.CompareStructureViewerSwitchingPane.setInput(CompareStructureViewerSwitchingPane.java:132)
at org.eclipse.compare.CompareEditorInput.feedInput(CompareEditorInput.java:747)
at org.eclipse.compare.CompareEditorInput.createContents(CompareEditorInput.java:555)
at org.eclipse.compare.internal.CompareEditor.createCompareControl(CompareEditor.java:462)
at org.eclipse.compare.internal.CompareEditor.createPartControl(CompareEditor.java:414)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670)
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:2863)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2768)
at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2760)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2711)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2707)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2691)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2682)
at org.eclipse.compare.internal.CompareUIPlugin$1.run(CompareUIPlugin.java:523)
at org.eclipse.compare.internal.CompareUIPlugin.syncExec(CompareUIPlugin.java:1263)
at org.eclipse.compare.internal.CompareUIPlugin.internalOpenEditor(CompareUIPlugin.java:534)
at org.eclipse.compare.internal.CompareUIPlugin.openCompareEditor(CompareUIPlugin.java:496)
at org.eclipse.compare.CompareUI.openCompareEditorOnPage(CompareUI.java:168)
at org.eclipse.compare.CompareUI.openCompareEditor(CompareUI.java:137)
at org.eclipse.compare.CompareUI.openCompareEditor(CompareUI.java:121)
at org.eclipse.mylyn.internal.gerrit.ui.editor.ReviewSection$3.open(ReviewSection.java:172)
at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:845)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:843)
at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1131)
at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1235)
at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:265)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:259)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:299)
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:3549)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3170)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2697)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2661)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2495)
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: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: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)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FilenameUtils
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:467)
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:248)
... 69 more
Comment 1 Steffen Pingel CLA 2011-02-02 15:19:25 EST
I fixed it by adding a version constraint to the package import: version="1.4.0".

Alvaro, you may want to do the same in the o.e.m.reviews.r4e.core bundle.
Comment 2 Alvaro Sanchez-Leon CLA 2011-02-02 22:37:29 EST
o.e.m.reviews.r4e.core bundle does not have dependencies with apache.commons.io but o.e.m.reviews.r4e.core.tests does.  It was already set to 1.4.0.

Thanks for the heads up
Comment 3 Steffen Pingel CLA 2011-02-02 22:56:49 EST
Sorry, I mixed that up. I was looking at o.e.m.reviews.r4e.ui which has an unconstrained package import.
Comment 4 Alvaro Sanchez-Leon CLA 2011-05-05 10:25:14 EDT
(In reply to comment #3)
> Sorry, I mixed that up. I was looking at o.e.m.reviews.r4e.ui which has an
> unconstrained package import.

Sebastien, why do we need to import the package vs specifying a optional dependency of the plug-in. 

if we specify the dependency do you need it as required or optional ?

same thing for the egit package, do you still need it ?