Coverity Thread Analyzer for Java 1.0
Developers
of multithreaded applications have to concern themselves with
introducing concurrency defects into their code. A QA software maker
has developed a solution to help put the kibosh on concurrency coding
errors in Java applications before they cause deleterious effects on
production code.
Today, Coverity released Coverity Thread Analyzer for Java, a dynamic
analysis tool for multithreaded applications. It analyzes code as it is
executed to identify and predict deadlocks and race conditions.
Deadlocks occur when two or more threads are waiting for each other to
finish, while race conditions are found when the output of a process is
governed by the sequence or timing of process events.
“It is hard to reproduce concurrency errors,” said Andy Chou,
Coverity's chief scientist. “Deadlocks depend on exact timing, and
tracing bad behavior for race conditions is difficult.”
He noted that engineers had to sift through roughly 3 million lines of
code before they identified the root cause of the Northeast Blackout of
2003: a race condition that occurred in General Electric Energy's
Unix-based XA/21 energy management system. The power outage affected
millions of customers in parts of the United States and Canada.
In creating Thread Analyzer, Coverity created separate algorithms to
identify each condition. The deadlock algorithm tracks the sequence of
locking orders to create a complete locking reference, and race
conditions are identified by checking whether or not shared variables
are protected by locks, Chou explained.

Thread Analyzer has integration hooks with Coverity’s Prevent static analysis tool to allow combined dynamic and static analysis. Thread Analyzer uses Prevent’s results to speed up its code analysis.
| Attachment | Size |
|---|---|
| cta.png | 12.03 KB |
| thread_analyzer.gif | 77.53 KB |
| thread_analyzer.png | 162.88 KB |
- Login or register to post comments
- 5268 reads
- Printer-friendly version
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)










Comments
Eugene Kuleshov replied on Wed, 2008/07/30 - 2:00pm
Vadim Pesochinskiy replied on Wed, 2008/07/30 - 4:41pm
It is "Thread Analyzer" version 1.0 for java.
Engineers do not think about marketing. Amq people will tell you that one should always start with version 4.
Michael Schnell replied on Sat, 2008/08/02 - 10:32am
Sounds interesting but I hate companies that don't have a pricelist on their website. Most times the products are far to expensive for a normal developer.
By the way: This is #10 of Jakob Nielsen's Top ten mistakes of webdesign ("...The worst example of not answering users' questions is to avoid listing the price"...)
Slava Imeshev replied on Fri, 2008/08/08 - 5:32pm
What's so new about it?
I am asking because profilers such as JProfiler (used it for 5 years) provide detailed thread view and dead lock detection. JProfiler is costs only $500.
Free static analysis tools such as FindBugs and PMD do the job by catching threading issues at build time.
Regards,
Slava Imeshev
Cacheonix: Clustered Java Cache with Zero PMD Errors