Publication Type
Conference Proceeding Article
Version
publishedVersion
Publication Date
11-2016
Abstract
Concurrent Programs are hard to analyze or debug due to the complex program logic and unpredictable execution environment. In practice, ordinary programmers often adopt existing well-designed concurrency related API (e.g., those in java.util.concurrent) so as to avoid dealing with these issues. These API can however often be used incorrectly, which results in hardto-debug concurrent bugs. In this work, we propose an approach for enforcing the correct usage of concurrency-related Java API. Our idea is to annotate concurrency-related Java classes with annotations related to misuse of these API and develop lightweight type checker to detect concurrent API misuse based on the annotations. To automate this process, we need to solve two problems: (1) how do we obtain annotations of the relevant API; and (2) how do we systematically detect concurrent API misuse based on the annotations? We solve the first problem by extracting annotations from the API documentation using natural language processing techniques. We solve the second problem by implementing our type checkers in the Checker Framework to detect concurrent API misuse. We apply our approach to extract annotations for all classes in the Java standard library and use them to detect concurrent API misuse in open source projects on GitHub. We confirm that concurrent API misuse is common and often results in bugs or inefficiency.
Discipline
Programming Languages and Compilers | Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
Proceedings if the 21st International Conference on Engineering of Complex Computer Systems, Dubai, United Arab Emirates, November 6-8
First Page
219
Last Page
222
Identifier
10.1109/ICECCS.2016.32
Publisher
IEEE
City or Country
United Arab Emirates
Citation
LIU, Shuang; BAI, Guangdong; SUN, Jun; and DONG, Jin Song.
Towards using concurrent Java API correctly. (2016). Proceedings if the 21st International Conference on Engineering of Complex Computer Systems, Dubai, United Arab Emirates, November 6-8. 219-222.
Available at: https://ink.library.smu.edu.sg/sis_research/4942
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/ 10.1109/ICECCS.2016.32