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

Bug 410011

Summary: Attempted to beginRule: F/..., does not match outer scope rule: MultiRule[P/...] when ignoring resources in nested projects
Product: [Technology] EGit Reporter: George Lindholm <javadev>
Component: CoreAssignee: Project Inbox <egit.core-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: g.watson, matthias.sohn, paul.verest, pawel.1.piech, robin.rosenberg, robin, svenhaberer+bugs.eclipse.org
Version: unspecified   
Target Milestone: 3.0.2   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
stacktrace none

Description George Lindholm CLA 2013-06-05 20:20:19 EDT
I started getting these errors constantly recently.
The project is "shared" on with Perforce, so I don't understand why egit is in the stack trace???

What steps will reproduce the problem?
1. 
2. 
3. 


-- Error Details --
Date: Wed Jun 05 17:05:58 PDT 2013
Message: Unable to ignore resources
Severity: Error
Product: Eclipse Classic/SDK 2.0.0.20130509-1018 (org.eclipse.epp.package.classic.product)
Plugin: org.eclipse.egit.core
Session Data:
eclipse.buildId=4.3.0.I20130502-0800
java.version=1.7.0_21
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_CA
Framework arguments:  -product org.eclipse.epp.package.classic.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.classic.product -clean

Exception Stack Trace:
java.lang.IllegalArgumentException: Attempted to beginRule: F/FEATURE_TASM/sis/libs/ubc-regiJPA, does not match outer scope rule: MultiRule[P/FEATURE_MUSI_2,P/FEATURE_TASM-ubc-regiJPA]
	at org.eclipse.core.runtime.Assert.isLegal(Assert.java:63)
	at org.eclipse.core.internal.jobs.ThreadJob.illegalPush(ThreadJob.java:134)
	at org.eclipse.core.internal.jobs.ThreadJob.push(ThreadJob.java:333)
	at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:85)
	at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:286)
	at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:118)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2283)
	at org.eclipse.core.internal.resources.File.create(File.java:110)
	at org.eclipse.core.internal.resources.File.create(File.java:187)
	at org.eclipse.egit.core.op.IgnoreOperation.addIgnore(IgnoreOperation.java:157)
	at org.eclipse.egit.core.op.IgnoreOperation.execute(IgnoreOperation.java:96)
	at org.eclipse.egit.core.internal.job.JobUtil$1.run(JobUtil.java:50)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Comment 1 Robin Stocker CLA 2013-06-06 06:27:11 EDT
Matthias, could you have a look at this? May be caused by the auto-ignore code from bug 297674.
Comment 2 Robin Rosenberg CLA 2013-06-06 17:00:40 EDT
Possibly related to bug 404256
Comment 3 George Lindholm CLA 2013-06-06 19:56:09 EDT
I don't know it is related, but I was also having an issue with Eclipse constantly rebuilding my workspace. But after I removed the .gitignore files, both this problem and the constant rebuilding went away
Comment 4 Matthias Sohn CLA 2013-06-10 07:48:41 EDT
proposed fix https://git.eclipse.org/r/#/c/13689/
Comment 5 Matthias Sohn CLA 2013-06-10 10:07:17 EDT
(In reply to comment #4)
> proposed fix https://git.eclipse.org/r/#/c/13689/

I found that this change isn't necessary to fix your problem since the resource change listener for auto-ignoring derived resources only creates a .gitignore entry if the method RepositoryUtil.isIgnored() returns false, but this method returns true for resources not shared with the Git team provider.

I guess your problem is rather related to bug 403008 which was fixed recently, please retry using a recent nightly build or use a 3.0 release candidate which also contains this fix.
Comment 6 George Lindholm CLA 2013-06-17 15:20:08 EDT
I upgraded EGit to 3.1.0.201306162222 (I couldn't find the 3.0 release candidate).
Now I started seeing this error when I try to save a file. egit is gone from the stacktrace, and it is now showing p4java:

When I remove the .gitignore files I can save the file


Product: Eclipse 2.0.0.20130521-1725 (org.eclipse.epp.package.jee.product)
Plugin: org.eclipse.core.resources
Session Data:
eclipse.buildId=4.3.0.I20130530-1430
java.version=1.7.0_21
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_CA
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product

This is a continuation of log file W:\workspace\.metadata\.bak_0.log
Created Time: 2013-06-17 12:04:50.060

Exception Stack Trace:
java.lang.IllegalArgumentException: Attempted to beginRule: F/MUSI2 FSC fsc/fsc-war/src/main/java/ubc/regi/server/servlets, does not match outer scope rule: L/FEATURE_MUSI_2/sis/apps/fsc/fsc-war/src/main/java/ubc/regi/server/servlets/SRVClassList_v2.java
	at org.eclipse.core.runtime.Assert.isLegal(Assert.java:63)
	at org.eclipse.core.internal.jobs.ThreadJob.illegalPush(ThreadJob.java:134)
	at org.eclipse.core.internal.jobs.ThreadJob.push(ThreadJob.java:333)
	at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:63)
	at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:286)
	at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:118)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2283)
	at org.eclipse.core.internal.resources.Resource.refreshLocal(Resource.java:1691)
	at org.eclipse.core.internal.resources.File.refreshLocal(File.java:333)
	at com.perforce.team.core.p4java.P4Collection.refreshLocalResources(P4Collection.java:1648)
	at com.perforce.team.ui.p4java.actions.EditAction$1.run(EditAction.java:69)
	at com.perforce.team.ui.p4java.actions.P4Action.runRunnable(P4Action.java:87)
	at com.perforce.team.ui.p4java.actions.EditAction.edit(EditAction.java:74)
	at com.perforce.team.ui.p4java.actions.EditAction.runModifyAction(EditAction.java:85)
	at com.perforce.team.ui.p4java.actions.OpenAction.runModifyAction(OpenAction.java:211)
	at com.perforce.team.ui.p4java.actions.OpenAction.runModifyAction(OpenAction.java:198)
	at com.perforce.team.ui.p4java.actions.OpenAction$1.run(OpenAction.java:175)
	at com.perforce.team.ui.p4java.actions.P4Action.runRunnable(P4Action.java:87)
	at com.perforce.team.ui.p4java.actions.OpenAction.runAction(OpenAction.java:187)
	at com.perforce.team.ui.p4java.actions.P4Action.run(P4Action.java:582)
	at com.perforce.team.ui.FileModificationValidatorManager.editFile(FileModificationValidatorManager.java:126)
	at com.perforce.team.ui.FileModificationValidatorManager.validateSave(FileModificationValidatorManager.java:142)
	at org.eclipse.team.internal.core.FileModificationValidatorManager.validateSave(FileModificationValidatorManager.java:100)
	at org.eclipse.core.internal.resources.Workspace$8.run(Workspace.java:2669)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.resources.Workspace.validateSave(Workspace.java:2672)
	at org.eclipse.core.internal.resources.File.setContents(File.java:352)
	at org.eclipse.core.internal.resources.File.setContents(File.java:464)
	at org.eclipse.core.internal.filebuffers.ResourceTextFileBuffer.commitFileBufferContent(ResourceTextFileBuffer.java:396)
	at org.eclipse.core.internal.filebuffers.ResourceFileBuffer.commit(ResourceFileBuffer.java:325)
	at org.eclipse.jdt.internal.ui.javaeditor.DocumentAdapter.save(DocumentAdapter.java:472)
	at org.eclipse.jdt.internal.core.CommitWorkingCopyOperation.executeOperation(CommitWorkingCopyOperation.java:123)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:793)
	at org.eclipse.jdt.internal.core.CompilationUnit.commitWorkingCopy(CompilationUnit.java:391)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.commitWorkingCopy(CompilationUnitDocumentProvider.java:1378)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$4.execute(CompilationUnitDocumentProvider.java:1458)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider$DocumentProviderOperation.run(TextFileDocumentProvider.java:132)
	at org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation.execute(WorkspaceModifyDelegatingOperation.java:69)
	at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:106)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
	at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)
	at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:75)
	at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:65)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:456)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider.saveDocument(TextFileDocumentProvider.java:772)
	at org.eclipse.ui.texteditor.AbstractTextEditor.performSave(AbstractTextEditor.java:5068)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSave(CompilationUnitEditor.java:1247)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:1301)
	at org.eclipse.ui.texteditor.AbstractTextEditor$TextEditorSavable.doSave(AbstractTextEditor.java:7201)
	at org.eclipse.ui.Saveable.doSave(Saveable.java:214)
	at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:348)
	at org.eclipse.ui.internal.SaveableHelper$3.run(SaveableHelper.java:194)
	at org.eclipse.ui.internal.SaveableHelper$5.run(SaveableHelper.java:276)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
	at org.eclipse.ui.internal.WorkbenchWindow$13.run(WorkbenchWindow.java:1812)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:1809)
	at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:284)
	at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:263)
	at org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:206)
	at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:143)
	at org.eclipse.ui.internal.WorkbenchPage.saveSaveable(WorkbenchPage.java:3777)
	at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3790)
	at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:53)
	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:290)
	at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
	at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:243)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:224)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
	at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:167)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
	at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:285)
	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:504)
	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:555)
	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:376)
	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBindingDispatcher.java:322)
	at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:84)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1262)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1056)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1081)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1108)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104)
	at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1525)
	at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4723)
	at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:344)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4611)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4977)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2549)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
	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:354)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
	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:601)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
Comment 7 George Lindholm CLA 2013-06-17 18:15:03 EDT
Seems the .gitignore file has nothing to do with it. Still getting the save error for files.
If I try a second save it works
Comment 8 Sven Haberer CLA 2013-07-09 02:57:51 EDT
Created attachment 233257 [details]
stacktrace

Unlike George we actually use Git as SCM but we get the same stack trace (see attachment) as shown in comment 0. As far as I can see, the error occurs for maven multi-module projects only (m2eclipse).
Comment 9 Matthias Sohn CLA 2013-07-09 07:23:16 EDT
could you retry with egit 3.0 ? This could have been caused by the problem fixed with https://git.eclipse.org/r/#/c/13689/ which is contained in 3.0.
Comment 10 Sven Haberer CLA 2013-07-10 02:42:46 EDT
I'm sorry, I should have mentioned our current EGit version. We're using EGit 3.0.0.201306101825-r which came together with Kepler.

I have now updated to the nightly build 3.1.0.201307092323. That has solved the problem, as far as I can see.
Comment 11 Robin Stocker CLA 2013-07-10 07:12:15 EDT
(In reply to comment #8)
> As far as I can see, the error
> occurs for maven multi-module projects only (m2eclipse).

That was a good hint, I could find the problem. Proposed fix:

https://git.eclipse.org/r/14437
Comment 12 Matthias Sohn CLA 2013-07-12 19:06:30 EDT
merged as eb5c41459d5d185871b5253610255e6f1242c9ad
Comment 13 Matthias Sohn CLA 2013-08-26 02:23:14 EDT
cherry-picked for 3.0.2
Comment 14 Robin Stocker CLA 2013-09-02 18:02:05 EDT
*** Bug 416273 has been marked as a duplicate of this bug. ***
Comment 15 Matthias Sohn CLA 2013-09-23 09:16:36 EDT
*** Bug 417822 has been marked as a duplicate of this bug. ***
Comment 16 Matthias Sohn CLA 2013-09-29 18:44:36 EDT
*** Bug 412518 has been marked as a duplicate of this bug. ***