International Workshop on the State Of the Art in Java Program Analysis (SOAP 2012)

Eric | September 28, 2011

Co-located with PLDI 2012 in Beijing…

Soot has enabled hundreds of users to carry out research in static analysis of Java. As Soot enters its second decade, the first SOAP workshop will bring together the thriving Soot community and help catalyze the future development of the Soot framework. We anticipate that SOAP will help spur discussions and collaborations between different groups using Soot. The agenda for SOAP will also include discussions and work on integrating external contributions into the main Soot framework, as well as explorations of potential future extensions to Soot.

Important Dates

Paper submissions: March 28th, 2012
Notification of authors: April 28th, 2012
Submission of camera-ready copies: May 12th, 2012
Workshop date: TBA (June 14th, 15th or 16th) 2012
Comments Off on International Workshop on the State Of the Art in Java Program Analysis (SOAP 2012)
PLDI, Soot

Data races in the JDK!

Eric | June 14, 2008

At the moment I am doing some more work on evaluating tracematches ahead-of-time. One tracematch patten that we use in our benchmarks we called ASyncIter, a simplified version of which looks as follows:

tracematch(Collection c) {
	sym sync after returning:
		call(* Collections.synchr*(..)) && args(c);
	sym iter before:
		call(* Collection.iterator()) && target(c);

	sync iter {
			error(``Have to synchronize iterator at ''+thisJoinPoint);

This tracematch reports an error if you create a synchronized collection and then iterate over this collection without holding a lock on the collection object. According to the JDK javadoc this is forbidden as it can lead to a race condition. One has to use synchronized collections as follows:

Read the rest of this entry »