Exception analysis in the Java Native Interface

Siliang Li, Gang Tan

Research output: Contribution to journalArticle

1 Scopus citations

Abstract

A Foreign Function Interface (FFI) allows one host programming language to interoperate with another foreign language. It enables efficient software development by permitting developers to assemble components in different languages. One typical FFI is the Java Native Interface (JNI), through which Java programs can invoke native-code components developed in C, C++, or assembly code. Although FFIs bring convenience to software development, interface code developed in FFIs is often error prone because of the lack of safety and security enforcement. This paper introduces a static-analysis framework, TurboJet, which finds exception-related bugs in JNI applications. It finds bugs of inconsistent exception declarations and bugs of mishandling JNI exceptions. TurboJet is carefully engineered to achieve both high efficiency and accuracy. We have applied TurboJet on a set of benchmark programs and identified many errors. We have also implemented a practical Eclipse plug-in based on TurboJet that can be used by JNI programmers to find errors in their code.

Original languageEnglish (US)
Pages (from-to)273-297
Number of pages25
JournalScience of Computer Programming
Volume89
Issue numberPART C
DOIs
StatePublished - Sep 1 2014

    Fingerprint

All Science Journal Classification (ASJC) codes

  • Software

Cite this