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 条
  • [21] An Automatic Localization Tool for Null Pointer Exceptions
    Duan, Jing
    Jiang, Shujuan
    Yu, Qiao
    Lu, Kai
    Zhang, Xu
    Yao, Yiwen
    IEEE ACCESS, 2019, 7 : 153453 - 153465
  • [22] Students' misconceptions of java exceptions
    Rashkovits, Rami
    Lavy, Ilana
    Lecture Notes in Business Information Processing, 2012, 129 LNBIP : 1 - 21
  • [23] Testing Program Segments to Detect Runtime Exceptions in Java']Java
    Rao, Lei
    Liu, Shaoying
    Liu, Ai
    STRUCTURED OBJECT-ORIENTED FORMAL LANGUAGE AND METHOD, SOFL+MSVL 2022, 2023, 13854 : 93 - 105
  • [24] Survey on Java Pointer Analysis
    Tan T.
    Ma X.
    Xu C.
    Ma C.
    Li Y.
    Jisuanji Yanjiu yu Fazhan/Computer Research and Development, 2023, 60 (02): : 274 - 293
  • [25] Complexity of points-to analysis of Java']Java in the presence of exceptions
    Chatterjee, R
    Ryder, BG
    Landi, WA
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2001, 27 (06) : 481 - 512
  • [26] Coordinating Exceptions of Java']Java Systems: Implementation and Formal Verification
    Hanazumi, Simone
    de Melo, Ana C. V.
    2012 EIGHTH INTERNATIONAL CONFERENCE ON THE QUALITY OF INFORMATION AND COMMUNICATIONS TECHNOLOGY (QUATIC 2012), 2012, : 108 - 113
  • [27] Data flow analysis of Java']Java programs in the presence of exceptions
    Shelekhov, VI
    Kuksenko, SV
    PERSPECTIVES OF SYSTEM INFORMATICS, 2000, 1755 : 389 - 395
  • [28] Safe locking for multi-threaded Java']Java with exceptions
    Johnsen, Einar Broch
    Thi Mai Thuong Tran
    Owe, Olaf
    Steffen, Martin
    JOURNAL OF LOGIC AND ALGEBRAIC PROGRAMMING, 2012, 81 (03): : 257 - 283
  • [29] A Formal Approach to implement java']java exceptions in cooperative systems
    Hanazumi, Simone
    de Melo, Ana C. V.
    JOURNAL OF SYSTEMS AND SOFTWARE, 2017, 131 : 475 - 490
  • [30] Deadlock resolution via exceptions for dependable Java']Java applications
    Zeng, FC
    2003 INTERNATIONAL CONFERENCE ON DEPENDABLE SYSTEMS AND NETWORKS, PROCEEDINGS, 2003, : 731 - 740