Skip to main navigation Skip to search Skip to main content

Towards Using Concurrent Java API Correctly

Research output: Chapters, Conference Papers, Creative and Literary WorksRGC 32 - Refereed conference paper (with host publication)peer-review

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. © 2016 IEEE.
Original languageEnglish
Title of host publicationProceedings - 2016 21st International Conference on Engineering of Complex Computer Systems, ICECCS 2016
PublisherIEEE
Pages219-222
Volume0
ISBN (Print)9781509055272
DOIs
Publication statusPublished - 2 Jul 2016
Externally publishedYes
Event21st International Conference on Engineering of Complex Computer Systems, ICECCS 2016 - Dubai, United Arab Emirates
Duration: 6 Nov 20168 Nov 2016

Publication series

NameProceedings of the IEEE International Conference on Engineering of Complex Computer Systems, ICECCS
Volume0
ISSN (Print)2770-8527
ISSN (Electronic)2770-8535

Conference

Conference21st International Conference on Engineering of Complex Computer Systems, ICECCS 2016
PlaceUnited Arab Emirates
CityDubai
Period6/11/168/11/16

Bibliographical note

Publication details (e.g. title, author(s), publication statuses and dates) are captured on an “AS IS” and “AS AVAILABLE” basis at the time of record harvesting from the data source. Suggestions for further amendments or supplementary information can be sent to [email protected].

Research Keywords

  • Concurrency
  • Java API
  • NLP

Fingerprint

Dive into the research topics of 'Towards Using Concurrent Java API Correctly'. Together they form a unique fingerprint.

Cite this