  Automated program repair (APR) has great potential to reduce the effort and
time-consumption in software maintenance and becomes a hot topic in software
engineering recently with many approaches being proposed. Multi-location
program repair has always been a challenge in this field since its complexity
in logic and structure. While some approaches do not claim to have the features
for solving multi-location bugs, they generate correct patches for these
defects in practice. In this paper, we first make an observation on
multi-location bugs in Defects4J and divide them into two categories (i.e.,
similar and relevant multi-location bugs) based on the repair actions in their
patches. We then summarize the situation of multi-location bugs in Defects4J
fixed by current tools. We analyze the twenty-two patches generated by current
tools and propose two feasible strategies for fixing multi-location bugs,
illustrating them through two detailed case studies. At last, the experimental
results prove the feasibility of our methods with the repair of two bugs that
have never been fixed before. By learning from successful experience in the
past, this paper points out possible ways ahead for multi-location program
repair.
