reprogrammer / keshmesh

Keshmesh is a static analysis tool for finding and fixing concurrency bug patterns in Java.
http://keshmesh.cs.illinois.edu/
Other
16 stars 5 forks source link

Make keshmesh compatible with the latest eclipse 4.2/4.3 #50

Open Lonzak opened 11 years ago

Lonzak commented 11 years ago

I am using eclipse 4.2 and after installing keshmesh and running it after a while I get the following error:

An internal error occurred during: "Finding bugs in myProject...". Attempted to beginRule: P/myProject, does not match outer scope rule: MutexSchedulingRule, resource: P/myProject

Findbugs was also having this problem and it was fixed in version 2.0.2. So you probably have to upgrade the findbugs you use... http://sourceforge.net/p/findbugs/bugs/1112/ http://sourceforge.net/p/findbugs/bugs/1121/

reprogrammer commented 11 years ago

I was able to reproduce the failure in Eclipse 4.3.0 using the example projects:

eclipse.buildId=4.3.0.M20130911-1000
java.version=1.6.0_45
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.rcp.product
Command-line arguments:  -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.rcp.product
Error
Mon Nov 11 10:32:00 CST 2013
An internal error occurred during: "Finding bugs in LCK01J...".
java.lang.IllegalArgumentException: Attempted to beginRule: P/LCK01J, does not match outer scope rule: MutexSchedulingRule, resource: P/LCK01J
    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.Workspace.run(Workspace.java:2340)
    at de.tobject.findbugs.reporter.MarkerUtil.createMarkers(MarkerUtil.java:125)
    at de.tobject.findbugs.builder.FindBugsWorker.updateBugCollection(FindBugsWorker.java:359)
    at de.tobject.findbugs.builder.FindBugsWorker.work(FindBugsWorker.java:225)
    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)

In addition to the above exception, the exception below was reported to the terminal console:

Class Hierarchy construction failed
com.ibm.wala.ipa.cha.ClassHierarchyException: failed to load root  of class hierarchy
com.ibm.wala.ipa.cha.ClassHierarchyException: failed to load root  of class hierarchy
    at com.ibm.wala.ipa.cha.ClassHierarchy.(ClassHierarchy.java:253)
    at com.ibm.wala.ipa.cha.ClassHierarchy.(ClassHierarchy.java:173)
    at com.ibm.wala.ipa.cha.ClassHierarchy.make(ClassHierarchy.java:1170)
    at com.ibm.wala.client.AbstractAnalysisEngine.buildClassHierarchy(AbstractAnalysisEngine.java:176)
    at com.ibm.wala.client.AbstractAnalysisEngine.defaultCallGraphBuilder(AbstractAnalysisEngine.java:291)
    at com.ibm.wala.client.AbstractAnalysisEngine.buildDefaultCallGraph(AbstractAnalysisEngine.java:300)
    at com.ibm.wala.eclipse.cg.model.WalaProjectCGModel.buildGraph(WalaProjectCGModel.java:88)
    at edu.illinois.keshmesh.detector.Main.initBytecodeAnalysis(Main.java:53)
    at edu.illinois.keshmesh.detector.Main.initAndPerformAnalysis(Main.java:38)
    at edu.illinois.keshmesh.ui.findbugs.KeshmeshFindBugsDetector.visitClassContext(KeshmeshFindBugsDetector.java:84)
    at edu.umd.cs.findbugs.DetectorToDetector2Adapter.visitClass(DetectorToDetector2Adapter.java:74)
    at edu.umd.cs.findbugs.FindBugs2.analyzeApplication(FindBugs2.java:1190)
    at edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:282)
    at de.tobject.findbugs.builder.FindBugsWorker.runFindBugs(FindBugsWorker.java:312)
    at de.tobject.findbugs.builder.FindBugsWorker.work(FindBugsWorker.java:220)
    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)
edu.illinois.keshmesh.detector.exception.Exceptions$WALAInitializationException: java.lang.NullPointerException
    at edu.illinois.keshmesh.detector.Main.initBytecodeAnalysis(Main.java:55)
    at edu.illinois.keshmesh.detector.Main.initAndPerformAnalysis(Main.java:38)
    at edu.illinois.keshmesh.ui.findbugs.KeshmeshFindBugsDetector.visitClassContext(KeshmeshFindBugsDetector.java:84)
    at edu.umd.cs.findbugs.DetectorToDetector2Adapter.visitClass(DetectorToDetector2Adapter.java:74)
    at edu.umd.cs.findbugs.FindBugs2.analyzeApplication(FindBugs2.java:1190)
    at edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:282)
    at de.tobject.findbugs.builder.FindBugsWorker.runFindBugs(FindBugsWorker.java:312)
    at de.tobject.findbugs.builder.FindBugsWorker.work(FindBugsWorker.java:220)
    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)
Caused by: java.lang.NullPointerException
    at edu.illinois.keshmesh.walaconfig.KeshmeshAnalysisEngine.makeAnnotatedEntryPoints(KeshmeshAnalysisEngine.java:74)
    at edu.illinois.keshmesh.walaconfig.KeshmeshAnalysisEngine.makeDefaultEntrypoints(KeshmeshAnalysisEngine.java:49)
    at edu.illinois.keshmesh.walaconfig.EclipseProjectAnalysisEngine.makeDefaultEntrypoints(EclipseProjectAnalysisEngine.java:101)
    at com.ibm.wala.client.AbstractAnalysisEngine$1.createEntrypoints(AbstractAnalysisEngine.java:124)
    at com.ibm.wala.client.AbstractAnalysisEngine.defaultCallGraphBuilder(AbstractAnalysisEngine.java:293)
    at com.ibm.wala.client.AbstractAnalysisEngine.buildDefaultCallGraph(AbstractAnalysisEngine.java:300)
    at com.ibm.wala.eclipse.cg.model.WalaProjectCGModel.buildGraph(WalaProjectCGModel.java:88)
    at edu.illinois.keshmesh.detector.Main.initBytecodeAnalysis(Main.java:53)
    ... 10 more