NPEX: Repairing Java']Java Null Pointer Exceptions without Tests

被引:7
|
作者
Lee, Junhee [1 ]
Hong, Seongjoon [1 ]
Oh, Hakjoo [1 ]
机构
[1] Korea Univ, Seoul, South Korea
基金
新加坡国家研究基金会;
关键词
CODE;
D O I
10.1145/3510003.3510186
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present NPEX, a new technique for repairing Java null pointer exceptions (NPEs) without tests. State-of-the-art NPE repair techniques rely on test suites written by developers for patch validation. Unfortunately, however, those are typically future test cases that are unavailable at the time bugs are reported or insufficient to identify correct patches. Unlike existing techniques, NPEX does not require test cases; instead, NPEX automatically infers the repair specification of the buggy program and uses the inferred specification to validate patches. The key idea is to learn a statistical model that predicts how developers would handle NPEs by mining null-handling patterns from existing codebases, and to use a variant of symbolic execution that can infer the repair specification from the buggy program using the model. We evaluated NPEX on real-world NPEs collected from diverse open-source projects. The results show that NPEX significantly outperforms the current state-of-the-art.
引用
收藏
页码:1532 / 1544
页数:13
相关论文
共 50 条
  • [1] NPEX: Repairing Java Null Pointer Exceptions without Tests
    Lee, Junhee
    Hong, Seongjoon
    Oh, Hakjoo
    Proceedings - International Conference on Software Engineering, 2022, 2022-May : 1532 - 1544
  • [2] Students' Misconceptions of Java']Java Exceptions
    Rashkovits, Rami
    Lavy, Ilana
    KNOWLEDGE AND TECHNOLOGIES IN INNOVATIVE INFORMATION SYSTEMS, 2012, 129 : 1 - 21
  • [3] A core calculus for Java']Java exceptions
    Ancona, D
    Lagorio, G
    Zucca, E
    ACM SIGPLAN NOTICES, 2001, 36 (11) : 16 - 30
  • [4] Better performance with exceptions in Java']Java
    Orchard, D
    BYTE, 1998, 23 (03): : 53 - 54
  • [5] Exercising Java']Java Exceptions Using Java']Java Pathfinder and Program Instrumentation
    Martins, Alexandre Locci
    Hanazumi, Simone
    de Melo, Ana C. V.
    COMPUTATIONAL SCIENCE AND ITS APPLICATIONS - ICCSA 2014, PT 1, 2014, 8579 : 671 - 682
  • [6] Testing Java']Java Exceptions: an instrumentation technique
    Martins, Alexandre L.
    Hanazumi, Simone
    de Melo, Ana C. V.
    2014 38TH ANNUAL IEEE INTERNATIONAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE WORKSHOPS (COMPSACW 2014), 2014, : 626 - 631
  • [7] Optimizing Java']Java programs in the presence of exceptions
    Gupta, M
    Choi, JD
    Hind, M
    ECOOP 2000 - OBJECT-ORIENTED PROGRAMMING, 2000, 1850 : 422 - 446
  • [8] import java.*: Understanding Java exceptions
    C/C++ Users Journal, 2001, 19 (4 SUPPL.):
  • [9] Parameter Sensitive Pointer Analysis for Java']Java
    Bao, Yulin
    Zhang, Chenyi
    Zhuo, Xilong
    Wang, Yongliang
    2022 26TH INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS (ICECCS 2022), 2022, : 162 - 167
  • [10] A deductive proof system for multithreaded Java']Java with exceptions
    Abraham, Erika
    de Roever, Willem-Paul
    de Boer, Frank S.
    Steffen, Martin
    FUNDAMENTA INFORMATICAE, 2008, 82 (04) : 391 - 463