Harnessing Evolution for Multi-Hunk Program Repair
Not on the map. Why?
Abstract (arXiv)
Despite significant advances in automatic program repair (APR)techniques over the past decade, practical deployment remains an elusive goal. One of the important challenges in this regard is the general inability of current APR techniques to produce patches that require edits in multiple locations, i.e., multi-hunk patches. In this work, we present a novel APR technique that generalizes single-hunk repair techniques to include an important class of multi-hunk bugs, namely bugs that may require applying a substantially similar patch at a number of locations. We term such sets of repair locations as evolutionary siblings - similar looking code, instantiated in similar contexts, that are expected to undergo similar changes. At the heart of our proposed method is an analysis to accurately identify a set of evolutionary siblings, for a given bug. This analysis leverages three distinct sources of information, namely the test-suite spectrum, a novel code similarity analysis, and the revision history of the project. The discovered siblings are then simultaneously repaired in a similar fashion. We instantiate this technique in a tool called Hercules and demonstrate that it is able to correctly fix 49 bugs in the Defects4J dataset, the highest of any individual APR technique to date. This includes 15 multi-hunk bugs and overall 13 bugs which have not been fixed by any other technique so far.
Key facts. Cited by 12 papers in the map (data through 14 Oct 2026). First posted on arXiv 21 Jun 2019.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 4; 2022: 0; 2023: 4; 2024: 2; 2025: 2.
12 papers.
- 2023Baldur: Whole-Proof Generation and Repair with Large Language Modelscited by 119
- 2021CURE: Code-Aware Neural Machine Translation for Automatic Program Repaircited by 86
- 2021A Syntax-Guided Edit Decoder for Neural Program Repaircited by 57
- 2023RepairLLaMA: Efficient Representations and Fine-Tuned Adapters for Program Repaircited by 50
- 2025Evaluating Agent-based Program Repair at Googlecited by 35
- 2021A Survey on Machine Learning Techniques for Source Code Analysiscited by 24
- 2023ITER: Iterative Neural Repair for Multi-Location Patchescited by 16
- 2023KNOD: Domain Knowledge Distilled Tree Decoder for Automated Program Repaircited by 13
- 2024Automated Program Repair: Emerging trends pose and expose problems for benchmarkscited by 7
- 2021Predicting Patch Correctness Based on the Similarity of Failing Test Casescited by 4
- 2025Beyond Accuracy: Behavioral Dynamics of Agentic Multi-Hunk Repaircited by 2
- 2024Risks of ignoring uncertainty propagation in AI-augmented security pipelinescited by 1
- 2025Beyond Accuracy: Behavioral Dynamics of Agentic Multi-Hunk Repair14 Nov 2025
- 2025Evaluating Agent-based Program Repair at Google13 Jan 2025
- 2024Risks of ignoring uncertainty propagation in AI-augmented security pipelines14 Jul 2024
- 2024Automated Program Repair: Emerging trends pose and expose problems for benchmarks8 May 2024
- 2023RepairLLaMA: Efficient Representations and Fine-Tuned Adapters for Program Repair25 Dec 2023
- 2023ITER: Iterative Neural Repair for Multi-Location Patches24 Apr 2023
- 2023Baldur: Whole-Proof Generation and Repair with Large Language Models8 Mar 2023
- 2023KNOD: Domain Knowledge Distilled Tree Decoder for Automated Program Repair3 Feb 2023
- 2021A Survey on Machine Learning Techniques for Source Code Analysis18 Oct 2021
- 2021Predicting Patch Correctness Based on the Similarity of Failing Test Cases28 Jul 2021
- 2021A Syntax-Guided Edit Decoder for Neural Program Repair15 Jun 2021
- 2021CURE: Code-Aware Neural Machine Translation for Automatic Program Repair26 Feb 2021