  Fix pattern-based patch generation is a promising direction in Automated
Program Repair (APR). Notably, it has been demonstrated to produce more
acceptable and correct patches than the patches obtained with mutation
operators through genetic programming. The performance of pattern-based APR
systems, however, depends on the fix ingredients mined from fix changes in
development histories. Unfortunately, collecting a reliable set of bug fixes in
repositories can be challenging. In this paper, we propose to investigate the
possibility in an APR scenario of leveraging code changes that address
violations by static bug detection tools. To that end, we build the AVATAR APR
system, which exploits fix patterns of static analysis violations as
ingredients for patch generation. Evaluated on the Defects4J benchmark, we show
that, assuming a perfect localization of faults, AVATAR can generate correct
patches to fix 34/39 bugs. We further find that AVATAR yields performance
metrics that are comparable to that of the closely-related approaches in the
literature. While AVATAR outperforms many of the state-of-the-art pattern-based
APR systems, it is mostly complementary to current approaches. Overall, our
study highlights the relevance of static bug finding tools as indirect
contributors of fix ingredients for addressing code defects identified with
functional test cases.
