Bug 243693 - Cannot set Attached Source from Class File Editor
Summary: Cannot set Attached Source from Class File Editor
Status: VERIFIED DUPLICATE of bug 243692
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.4   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 3.5 M2   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-08-10 15:37 EDT by Steven Tamm CLA
Modified: 2008-09-16 05:20 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Steven Tamm CLA 2008-08-10 15:37:31 EDT
When I try to set a Source Attachment on a class file through the "Change Attached Source..." link on the edit page, it fails with the following error. 
 
Attempted to beginRule: R/, does not match outer scope rule: P/platform-main

In this case, it's a class whose source is defined inside an External Jar.  I can select the jar, but it then provides the above error immediately.  "platform-main" is the project in which the jar file is included and the .project & .classpath files are both writable.  The workaround is to attach the source through "Configure Build Path..." and editing the source attachment in the libraries tab.  

!ENTRY org.eclipse.jdt.ui 4 10001 2008-08-10 12:28:14.768
!MESSAGE Internal Error
!STACK 0
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:303)
	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:585)
	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)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
Caused by: java.lang.IllegalArgumentException: Attempted to beginRule: R/, does not match outer scope rule: P/platform-main
	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/platform-main
	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 Olivier Thomann CLA 2008-08-11 08:49:14 EDT

*** This bug has been marked as a duplicate of bug 243692 ***
Comment 2 David Audel CLA 2008-09-16 05:20:27 EDT
Verified for 3.5M2