My favorites | Sign in
Project Logo
Project hosting will be READ-ONLY Wednesday at 8am PST due to brief network maintenance.
                
Code license: MIT License
Feeds:
People details
Project owners:
  alarmnummer

A Java Agent that uses runtime analysis to detect multi-threaded access on objects. It is very useful when you need to inspect code written by others and it is too complex for static concurrency analysis. One of the big problems with static analysis is to figure out which objects are accessed by multiple threads, because objects often are used in all kinds of frameworks, and with a few lines of configuration/code everything changes.

Every few seconds a report is written to file, and this report can be used to start manual inspection. The manual inspection still is a very daunting task, but with the report it is much easier to find problem areas.

The Concurrency Detector only can be used on Java 5 and higher, Java 4 and older don't have support for Java Agents. The initial version used AspectJ as Java Agent, but it appears that custom configuration of AspectJ in combination with Spring projects that use AspectJ, is problematic. It also didn't provide the control needed. That is why it was replaced by ASM.

Example configuration:

#the base packages which fields are instrumented. 
#Multiple packages can be placed and need to be seperated with a ;
basepackages=org.apache.catalina

#if normal instance variables need to be instrumented (True/False)
instance.normal=True

#if instance volatiles need to be instrumented (True/False)
instance.volatile=True

#if instance finals need to be instrumented (True/False)
instance.final=True

#if normal static variables need to be instrumented (True/False)
static.normal=True

#if static volatiles need to be instrumented (True/False)
static.volatile=True

#if static finals need to be instrumented (True/False)
static.final=True

#For debugging purposes, if you want to have a look at 
#the instrumented classes (True/False)
write.class=True








Hosted by Google Code