• DocumentCode
    1727485
  • Title

    Changing Java´s Semantics for Handling Null Pointer Exceptions

  • Author

    Dobolyi, Kinga ; Weimer, Westley

  • Author_Institution
    Univ. of Virginia, Charlottesville, VA
  • fYear
    2008
  • Firstpage
    47
  • Lastpage
    56
  • Abstract
    We envision a world where no exceptions are raised; instead, language semantics are changed so that operations are total functions. Either an operation executes normally or tailored recovery code is applied where exceptions would have been raised. As an initial step and evaluation of this idea, we propose to transform programs so that null pointer dereferences are handled automatically without a large runtime overhead. We increase robustness by replacing code that raises null pointer exceptions with error-handling code, allowing the program to continue execution. Our technique first finds potential null pointer dereferences and then automatically transforms programs to insert null checks and error-handling code. These transformations are guided by composable, context-sensitive recovery policies. Error-handling code may, for example, create default objects of the appropriate types, or restore data structure invariants. If no null pointers would be dereferenced, the transformed program behaves just as the original.We applied our transformation in experiments involving multiple benchmarks, the Java Standard Library, and externally reported null pointer exceptions. Our technique was able to handle the reported exceptions and allow the programs to continue to do useful work, with an average execution time overhead of less than 1% and an average bytecode space overhead of 22%.
  • Keywords
    Java; programming language semantics; Java Standard Library; context-sensitive recovery policies; error-handling code; language semantics; null checks; null pointer exceptions; Data structures; Databases; Java; Libraries; Null value; Reliability engineering; Robustness; Runtime; Software reliability; Virtual machining; Null pointer; error handling; exception; recovery;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Reliability Engineering, 2008. ISSRE 2008. 19th International Symposium on
  • Conference_Location
    Seattle, WA
  • ISSN
    1071-9458
  • Print_ISBN
    978-0-7695-3405-3
  • Electronic_ISBN
    1071-9458
  • Type

    conf

  • DOI
    10.1109/ISSRE.2008.59
  • Filename
    4700309