Find concurrency bugs
The Java™ platform allows developers to build high performance concurrent software that exploits modern hardware.
ThreadSafe is a static analysis tool for finding concurrency bugs and potential performance issues in Java™ programs.
Concurrency is often the most natural way to design a software system, even when high performance is not critical. But concurrent software is difficult to get right, especially in a team that has many demands on it.
ThreadSafe looks for the most common concurrency bugs… and some rarer bugs too. It can check your application conforms to many of the recommendations for concurrent Java found in the CERT Oracle Secure Coding Standard for Java.
Adapted to your workflow
ThreadSafe analyses are available in three different packages to suit your environment:
- Eclipse plug-in: shows problems in the IDE where bugs are easiest to investigate and fix.
- SonarQube plug-in: provides a shared view of ThreadSafe results for your team.
- Command Line: builds HTML reports of problems cross-referenced with source code.
Technical Briefing: Maintaining safe concurrent code with ThreadSafe
An in-depth demonstration of the use of ThreadSafe for analysing and fixing concurrent code using the Eclipse plugin, explaining some of the technology underlying ThreadSafe’s advanced static analysis.
Detecting Deadlocks without Drudgery
Using ThreadSafe to quickly and easily find potential deadlocks in your code.
Concurrency: Testing isn’t good enough
Why traditional testing and QA approaches to concurrent applications fall short.
ThreadSafe: Static Analysis for Java Concurrency
An academic paper that explains how ThreadSafe works and compares its performance with FindBugs.
Apache Mina Case Study (PDF)
ThreadSafe has identified issues in open source code bases related to the use of concurrent techniques. The example attached was found in a component of a leading financial markets communications protocol.
Trading System Case Study (PDF)
ThreadSafe has successfully identified potential risks to production stability in trading applications of a major investment bank.