Bug 247178

Summary: IllegalArgumentException when attaching source to a jar
Product: [Eclipse Project] JDT Reporter: John Russell <jjrussell>
Component: CoreAssignee: JDT-Core-Inbox <jdt-core-inbox>
Status: VERIFIED DUPLICATE QA Contact:
Severity: normal    
Priority: P3 CC: daniel_megert, david_audel
Version: 3.4   
Target Milestone: 3.5 M2   
Hardware: PC   
OS: Linux-GTK   
Whiteboard:

Description John Russell CLA 2008-09-12 11:49:22 EDT
When I navigate to a .class file in a jar in my project I am presented with the class viewer which allows me to attach a source jar to the class file so I can see the source of that jar's classes.

Whenever I do that I get the following error message in the log with a dialog with the same main text.

java.lang.reflect.InvocationTargetException
        at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:403)
        at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
        at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:275)
        at org.eclipse.ui.internal.progress.ProgressManager$3.run(ProgressManager.java:977)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
        at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:1012)
        at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:987)
        at org.eclipse.ui.internal.progress.ProgressManager.run(ProgressManager.java:1195)
        at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor$SourceAttachmentForm.applySourceAttachment(ClassFileEditor.java:30
3)
        at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor$2.widgetSelected(ClassFileEditor.java:286)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3401)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3033)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
        at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
        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:382)
        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:549)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
Caused by: java.lang.IllegalArgumentException: Attempted to beginRule: R/, does not match outer scope rule: P/samba-fcs-patch
        at org.eclipse.core.runtime.Assert.isLegal(Assert.java:64)
        at org.eclipse.core.internal.jobs.ThreadJob.illegalPush(ThreadJob.java:122)
        at org.eclipse.core.internal.jobs.ThreadJob.push(ThreadJob.java:232)
        at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:58)
        at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:230)
        at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:117)
        at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1747)
        at org.eclipse.core.internal.resources.File.setContents(File.java:364)
        at org.eclipse.jdt.internal.core.JavaProject.setSharedProperty(JavaProject.java:2885)
        at org.eclipse.jdt.internal.core.JavaProject.writeFileEntries(JavaProject.java:2651)
        at org.eclipse.jdt.internal.core.JavaModelManager$7.run(JavaModelManager.java:1188)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
        at org.eclipse.jdt.internal.core.JavaModelManager$PerProjectInfo.writeAndCacheClasspath(JavaModelManager.java:1182)
        at org.eclipse.jdt.internal.core.SetClasspathOperation.executeOperation(SetClasspathOperation.java:61)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:709)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
        at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:775)
        at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2815)
        at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2846)
        at org.eclipse.jdt.internal.ui.wizards.buildpaths.BuildPathSupport.updateProjectClasspath(BuildPathSupport.java:277)
        at org.eclipse.jdt.internal.ui.wizards.buildpaths.BuildPathSupport.modifyClasspathEntry(BuildPathSupport.java:186)
        at org.eclipse.jdt.internal.ui.wizards.buildpaths.SourceAttachmentBlock$1.run(SourceAttachmentBlock.java:587)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Root exception:
java.lang.IllegalArgumentException: Attempted to beginRule: R/, does not match outer scope rule: P/samba-fcs-patch
        at org.eclipse.core.runtime.Assert.isLegal(Assert.java:64)
        at org.eclipse.core.internal.jobs.ThreadJob.illegalPush(ThreadJob.java:122)
        at org.eclipse.core.internal.jobs.ThreadJob.push(ThreadJob.java:232)
        at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:58)
        at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:230)
        at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:117)
        at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1747)
        at org.eclipse.core.internal.resources.File.setContents(File.java:364)
        at org.eclipse.jdt.internal.core.JavaProject.setSharedProperty(JavaProject.java:2885)
        at org.eclipse.jdt.internal.core.JavaProject.writeFileEntries(JavaProject.java:2651)
        at org.eclipse.jdt.internal.core.JavaModelManager$7.run(JavaModelManager.java:1188)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
        at org.eclipse.jdt.internal.core.JavaModelManager$PerProjectInfo.writeAndCacheClasspath(JavaModelManager.java:1182)
        at org.eclipse.jdt.internal.core.SetClasspathOperation.executeOperation(SetClasspathOperation.java:61)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:709)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
        at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:775)
        at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2815)
        at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2846)
        at org.eclipse.jdt.internal.ui.wizards.buildpaths.BuildPathSupport.updateProjectClasspath(BuildPathSupport.java:277)
        at org.eclipse.jdt.internal.ui.wizards.buildpaths.BuildPathSupport.modifyClasspathEntry(BuildPathSupport.java:186)
        at org.eclipse.jdt.internal.ui.wizards.buildpaths.SourceAttachmentBlock$1.run(SourceAttachmentBlock.java:587)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Comment 1 Boris Bokowski CLA 2008-09-12 12:49:34 EDT
> Caused by: java.lang.IllegalArgumentException: Attempted to beginRule: R/, does
not match outer scope rule: P/samba-fcs-patch
Comment 2 Dani Megert CLA 2008-09-13 04:11:51 EDT

*** This bug has been marked as a duplicate of bug 243692 ***
Comment 3 Jerome Lanneluc CLA 2008-09-15 06:39:55 EDT
As a workaround, removing the Perforce plugin (or replacing it with the latest one) should fix the problem.
Comment 4 David Audel CLA 2008-09-16 05:38:53 EDT
Verified for 3.5M2