Statically Checking API Protocol Conformance with Mined Multi-Object Specifications (supplementary material)

This page provides supplementary material for our ICSE'12 paper entitled Statically Checking API Protocol Conformance with Mined Multi-Object Specifications.

Technical Report

A formal description of the translation from API usage protocols into relationship-based specifications is given in a companion report.


The analysis reports 81 warnings, which we classify into bugs, code smells, and false positives. The following text files list all warnings:

Feel free to use this material for your own research! For questions, please contact Michael Pradel.

Mined protocols and generated Fusion specifications

We mine and check 223 protocols that cover various parts of the Java standard library. You can download them in two formats:
  • DOT files of the protocols that visualize them as a finite state machine. Transition labels use #1, #2, etc. to refer to protocol variables.
  • Fusion specifications, as they are generated by our approach. They can be fed into the static checker Fusion.

Source code of the analyzed programs

The code base we use to evaluate the approach (the source code of the programs from the DaCapo benchmark suite) is available upon request.