Menu

#1112 Scheduling/threading problem in Eclipse 4.2

closed-fixed
5
2014-08-26
2012-08-22
No

When attempting to run Findbugs on an Eclipse project I get the following exception. This happens on all projects I've tried, as well as when attempting to run on an individual file.

java.lang.IllegalArgumentException: Attempted to beginRule: P/Application, does not match outer scope rule: MutexSchedulingRule, resource: P/Application
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:2285)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2342)
at de.tobject.findbugs.reporter.MarkerUtil.createMarkers(MarkerUtil.java:125)
at de.tobject.findbugs.builder.FindBugsWorker.updateBugCollection(FindBugsWorker.java:383)
at de.tobject.findbugs.builder.FindBugsWorker.work(FindBugsWorker.java:227)
at de.tobject.findbugs.actions.FindBugsAction$StartedFromViewJob.runWithProgress(FindBugsAction.java:265)
at de.tobject.findbugs.FindBugsJob.run(FindBugsJob.java:102)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

Eclipse details:
eclipse.buildId=I20120810-1300
java.version=1.7.0_03
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86_64 -data C:\workspace

Discussion

  • Andrey Loskutov

    Andrey Loskutov - 2012-09-07

    Hi,
    I'm sorry for not reacting on the bug for so long time.

    I can't reproduce this issue. More strangely, I've seen it by myself once, and looking at the code/stack trace I can't really get any idea why 2!=2 is.

    if (baseRule != null && rule != null && !baseRule.contains(rule))
    illegalPush(rule, baseRule);

    !baseRule.contains(rule)...
    (MutexSchedulingRule on project A) ! contains project A
    project A ! contains project A
    path !isprefixof path
    paths are equals here, but why we have false???
    why...

    Andrey

     
  • Andrey Loskutov

    Andrey Loskutov - 2012-09-07
    • status: open --> open-accepted
     
  • Andrey Loskutov

    Andrey Loskutov - 2012-09-09

    Hi,

    I've tried to separate jobs - the error shouldn't happen anymore, but I could introduce new problems. Please check if the newest eclipse-daily build is OK for you.
    I will be able tp test it in production env. by the end of this week.
    See http://code.google.com/p/findbugs/source/detail?r=14435

    Regards,
    Andrey

     
  • chaosdeathfish

    chaosdeathfish - 2012-09-10

    I've tested it on the latest daily build (2.0.2.20120910) and had no problems so far (although I've not tested it extensively) - it looks fixed to me, thanks.

     
  • David Dossot

    David Dossot - 2012-09-28

    FYI the latest daily build (2.0.2.20120928) fixed the issue for Juno Service Release 1, Build id: 20120920-0800.

     
  • Andrey Loskutov

    Andrey Loskutov - 2012-09-28
    • status: open-accepted --> closed-accepted
     
  • Andrey Loskutov

    Andrey Loskutov - 2012-09-28

    Thanks for testing, I've also had no issues so far with Eclipse 3.8.

     
  • Andrey Loskutov

    Andrey Loskutov - 2012-12-26
    • status: closed-accepted --> closed-fixed
     
  • Kaspar

    Kaspar - 2014-04-14

    Hi. this seems to be fixed, but I get something really similar:

    An internal error occurred during: "Finding bugs in VavDataTest.java...".
    Attempted to beginRule: MultiRule[P/ch.xxx.tests.roboelectric,P/.org.eclipse.jdt.core.external.folders], does not match outer scope rule: MutexSchedulingRule, resource: L/ch.xxx.tests.roboelectric/src/ch/xxx/model/impl/vav/VavDataTest.java

    My setup:
    - Findbugs 2.0.3
    - Eclipse JDT 3.8.2 (bundled in Android Developer Tools 22.3.0)
    - Eclipse Platform 4.2.1 (bundled in Android Developer Tools 22.3.0)
    - Eclipse RCP 4.2.2 (bundled in Android Developer Tools 22.3.0)

    The error occurs in a Testproject that has a dependency on another project + a dependency on an external JAR file, referenced through a build path variable.

    Any suggestions or an explanation what the error message actually means would be appreciated.

     
  • Andrey Loskutov

    Andrey Loskutov - 2014-04-20

    Kaspar, please can you provide stack trace? Thanks,
    Andrey

     
  • Kaspar

    Kaspar - 2014-05-07

    Hi Andrey

    yes, sorry I forgot (just returned from Vacation):

    java.lang.IllegalArgumentException: Attempted to beginRule: MultiRule[P/ch.xxx.tests.roboelectric,P/.org.eclipse.jdt.core.external.folders], does not match outer scope rule: MutexSchedulingRule, resource: L/ch.xxx.tests.roboelectric/src/ch/xxx/model/impl/vav/VavDataTest.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: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:2282)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2339)
    at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:793)
    at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:3095)
    at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:3057)
    at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:3110)
    at com.android.ide.eclipse.adt.internal.project.LibraryClasspathContainerInitializer.allocateContainer(LibraryClasspathContainerInitializer.java:432)
    at com.android.ide.eclipse.adt.internal.project.LibraryClasspathContainerInitializer.allocateLibraryContainer(LibraryClasspathContainerInitializer.java:197)
    at com.android.ide.eclipse.adt.internal.project.LibraryClasspathContainerInitializer.initialize(LibraryClasspathContainerInitializer.java:128)
    at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:2843)
    at org.eclipse.jdt.internal.core.JavaModelManager$11.run(JavaModelManager.java:2749)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
    at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:2789)
    at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:1873)
    at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:3128)
    at org.eclipse.jdt.launching.JavaRuntime.computeDefaultContainerEntries(JavaRuntime.java:1153)
    at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1112)
    at org.eclipse.jdt.internal.launching.DefaultEntryResolver.resolveRuntimeClasspathEntry(DefaultEntryResolver.java:53)
    at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1117)
    at org.eclipse.jdt.launching.JavaRuntime.computeDefaultRuntimeClassPath(JavaRuntime.java:1416)
    at de.tobject.findbugs.builder.PDEClassPathGenerator.createJavaClasspath(PDEClassPathGenerator.java:82)
    at de.tobject.findbugs.builder.PDEClassPathGenerator.createPluginClassPath(PDEClassPathGenerator.java:122)
    at de.tobject.findbugs.builder.PDEClassPathGenerator.computeClassPath(PDEClassPathGenerator.java:66)
    at de.tobject.findbugs.builder.FindBugsWorker.createAuxClasspath(FindBugsWorker.java:509)
    at de.tobject.findbugs.builder.FindBugsWorker.work(FindBugsWorker.java:183)
    at de.tobject.findbugs.actions.FindBugsAction$StartedFromViewJob.runWithProgress(FindBugsAction.java:271)
    at de.tobject.findbugs.FindBugsJob.run(FindBugsJob.java:135)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

     

Log in to post a comment.