Semantics-based repair for Java programs
JFIX's and S3's source code are not yet currently publicly available. But please feel free to send us (firstname.lastname@example.org) requests.
We are working on porting the results, code, and benchmarks to this website. But for the moment, please refer to the results of S3 in the above link
JFix is a semantics-based repair framework for Java programs. It translates and extends its counterpart Angelix, which originally works on C programs. JFix is designed to work on Java-specific bugs such as bugs related to method calls. It is also able to handle other various types of bugs, including assignments, if-conditions, loop-conditions, and guards.
JFix performs selective symbolic execution against test cases to collect error-free execution paths and the corresponding path conditions. It then solves the path conditions to infer specifications that prevent the program under repair from test failures. The inferred specifications can be used by a number of repair synthesis engines to synthesize repairs.
Above is a screen shot showing a compare dialog when a repair is found by JFix in the Eclipse programming environment. Right click on the image, choose View image, for a better resolution.
JFix can repair buggy programs with the push of a button. It is integrated into the Eclipse programming environment with a plugin that suggests fixes to the buggy programs, allowing developers to inspect, modify, and approve the suggested fixes.
Email to: email@example.com