Dynamic Patch Generation for Null Pointer Exceptions using Metaprogramming
arXiv:1812.00409 · doi:10.1109/SANER.2017.7884635
Abstract
Null pointer exceptions (NPE) are the number one cause of uncaught crashing exceptions in production. In this paper, we aim at exploring the search space of possible patches for null pointer exceptions with metaprogramming. Our idea is to transform the program under repair with automated code transformation, so as to obtain a metaprogram. This metaprogram contains automatically injected hooks, that can be activated to emulate a null pointer exception patch. This enables us to perform a fine-grain analysis of the runtime context of null pointer exceptions. We set up an experiment with 16 real null pointer exceptions that have happened in the field. We compare the effectiveness of our metaprogramming approach against simple templates for repairing null pointer exceptions.
arXiv commentIEEE International Conference on Software Analysis, Evolution and Reengineering, 2017
References in corpus (4)
Cited by in corpus (25)
- TBar: Revisiting Template-based Automated Program Repair
- FixMiner: Mining Relevant Fix Patterns for Automated Program Repair
- On the Efficiency of Test Suite based Program Repair: A Systematic Assessment of 16 Automated Repair Systems for Java Programs
- Dissection of a Bug Dataset: Anatomy of 395 Patches from Defects4J
- Bears: An Extensible Java Bug Benchmark for Automatic Program Repair Studies
- Ultra-Large Repair Search Space with Automatically Mined Templates: the Cardumen Mode of Astor
- iFixR: Bug Report driven Program Repair
- SelfAPR: Self-supervised Program Repair with Test Execution Diagnostics
- Automated Classification of Overfitting Patches with Statically Extracted Code Features
- Alleviating Patch Overfitting with Automatic Test Generation: A Study of Feasibility and Effectiveness for the Nopol Repair System
- ITER: Iterative Neural Repair for Multi-Location Patches
- Astor: Exploring the Design Space of Generate-and-Validate Program Repair beyond GenProg
- Repairnator patches programs automatically
- IBIR: Bug Report driven Fault Injection
- Towards an automated approach for bug fix pattern detection
- Fully Automated HTML and Javascript Rewriting for Constructing a Self-healing Web Proxy
- An Initial Step Towards Organ Transplantation Based on GitHub Repository
- Practical Program Repair via Preference-based Ensemble Strategy
- Empirical Review of Java Program Repair Tools: A Large-Scale Experiment on 2,141 Bugs and 23,551 Repair Attempts
- Estimating the Potential of Program Repair Search Spaces with Commit Analysis
- Exhaustive Exploration of the Failure-oblivious Computing Search Space
- Production-Driven Patch Generation
- When Automated Program Repair Meets Regression Testing -- An Extensive Study on 2 Million Patches
- Production-Driven Patch Generation and Validation
- FlexiRepair: Transparent Program Repair with Generic Patches