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

Keshmesh fails to report LCK06J, LCK03J, LCK02J and VNA00J #51

Closed Lonzak closed 11 years ago

Lonzak commented 11 years ago

I downloaded an older eclipse (3.7) since keshmesh is not working in newer eclipses. Afterwards I installed keshmesh via the update site.

Then I imported your example projects and run findbugs. Now keshmesh only reports problems in LCK01J and none of the other projects.

reprogrammer commented 11 years ago

I was not able to reproduce this problem. Did you receive any error messages or exceptions? Try running Eclipse from the command line. Some exceptions may get reported to the terminal.

Lonzak commented 11 years ago

As mentioned, only the errors of LCK01J are shown. I use eclipse JEE version 3.7 and JDK 1.7.0_45. I looked in the error.log (its a view which can be activated) and the following error occurs:

  1. Warning (for all 5 Bug pattern): The following classes needed for FindBugs analysis on project LCK06J were missing: javax.annotation.Nonnull
  2. Error (also for all 5 Bug pattern): Exception analyzing p.LCK03J using detector edu.illinois.keshmesh.ui.findbugs.KeshmeshFindBugsDetector Exception analyzing p.A$1 using detector edu.illinois.keshmesh.ui.findbugs.KeshmeshFindBugsDetector Exception analyzing p.LCK01J using detector edu.illinois.keshmesh.ui.findbugs.KeshmeshFindBugsDetector Exception analyzing p.LCK02J using detector edu.illinois.keshmesh.ui.findbugs.KeshmeshFindBugsDetector Exception analyzing p.CountBoxes using detector edu.illinois.keshmesh.ui.findbugs.KeshmeshFindBugsDetector

java.lang.NullPointerException at edu.illinois.keshmesh.detector.Main.initBytecodeAnalysis(Main.java:59) 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:54)

reprogrammer commented 11 years ago

Can you try with JDK 6? I don't think that Keshmesh can analyze the byte code generated by JDK 7.

Lonzak commented 11 years ago

I did try with JDK 6 and 5 however the result is the same

Lonzak commented 11 years ago

I downloaded a fresh copy of eclipse 3.7.2 (SDK and JEE) and both are working....Maybe there is something wrong with my eclipse version (I have installed several other plugins etc.) So this bug can be closed. (Hopefully it is gone anyway when keshmesh is upgraded to work with eclipse 4.3....)

reprogrammer commented 11 years ago

I'm confused. Were you able to get all Keshmesh detectors to work?

Lonzak commented 11 years ago

Yes in a fresh copy of eclipse 3.7.2 (as I have written, I downloaded a fresh copy and it works there). So my guess is/was that had something to do with my personal eclipse which has several additional plugins installed which may be interfering with keshmesh. => So this can be closed here...