A study and toolkit of CHECK-THEN-ACT idioms of Java concurrent collections.

Saved in:
Bibliographic Details
Title: A study and toolkit of CHECK-THEN-ACT idioms of Java concurrent collections.
Authors: Lin, Yu1, Dig, Danny2
Source: Software Testing: Verification & Reliability. Jun2015, Vol. 25 Issue 4, p397-425. 29p.
Subjects: Java programming language, Concurrent error detection, Threads (Computer programs), Idioms, Computer programmers
Abstract: Concurrent collections are widely used in concurrent programs. However, programmers can misuse these concurrent collections when composing two operations where a check on the collection (e.g., collection contains an element) precedes an action (e.g., inserting an element). Unless the whole composition is atomic, the program contains an atomicity violation bug. This paper presents an extensive empirical study of CHECK-THEN-ACT idioms of Java (Oracle Corporation, Redwood, CA, USA) concurrent collections. We analyze 28 widely used open-source Java projects (comprising 6.4 million lines of code) that use Java concurrent collections. We study the correct and incorrect use of idioms and the evolution of the programs with respect to idioms. Our tool, CTADETECTOR, detects and corrects misused idioms. CTADETECTOR discovered 60 bugs that were confirmed and fixed by developers. This shows that CHECK-THEN-ACT idioms are commonly misused in practice, and correcting them is important. Copyright © 2015 John Wiley & Sons, Ltd. [ABSTRACT FROM AUTHOR]
Copyright of Software Testing: Verification & Reliability is the property of Wiley-Blackwell and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Engineering Source
Full text is not displayed to guests.
FullText Links:
  – Type: pdflink
Text:
  Availability: 1
Header DbId: egs
DbLabel: Engineering Source
An: 102482470
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: A study and toolkit of CHECK-THEN-ACT idioms of Java concurrent collections.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Lin%2C+Yu%22">Lin, Yu</searchLink><relatesTo>1</relatesTo><br /><searchLink fieldCode="AR" term="%22Dig%2C+Danny%22">Dig, Danny</searchLink><relatesTo>2</relatesTo>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22Software+Testing%3A+Verification+%26+Reliability%22">Software Testing: Verification & Reliability</searchLink>. Jun2015, Vol. 25 Issue 4, p397-425. 29p.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Java+programming+language%22">Java programming language</searchLink><br /><searchLink fieldCode="DE" term="%22Concurrent+error+detection%22">Concurrent error detection</searchLink><br /><searchLink fieldCode="DE" term="%22Threads+%28Computer+programs%29%22">Threads (Computer programs)</searchLink><br /><searchLink fieldCode="DE" term="%22Idioms%22">Idioms</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+programmers%22">Computer programmers</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: Concurrent collections are widely used in concurrent programs. However, programmers can misuse these concurrent collections when composing two operations where a check on the collection (e.g., collection contains an element) precedes an action (e.g., inserting an element). Unless the whole composition is atomic, the program contains an atomicity violation bug. This paper presents an extensive empirical study of CHECK-THEN-ACT idioms of Java (Oracle Corporation, Redwood, CA, USA) concurrent collections. We analyze 28 widely used open-source Java projects (comprising 6.4 million lines of code) that use Java concurrent collections. We study the correct and incorrect use of idioms and the evolution of the programs with respect to idioms. Our tool, CTADETECTOR, detects and corrects misused idioms. CTADETECTOR discovered 60 bugs that were confirmed and fixed by developers. This shows that CHECK-THEN-ACT idioms are commonly misused in practice, and correcting them is important. Copyright © 2015 John Wiley & Sons, Ltd. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of Software Testing: Verification & Reliability is the property of Wiley-Blackwell and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=102482470
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1002/stvr.1567
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 29
        StartPage: 397
    Subjects:
      – SubjectFull: Java programming language
        Type: general
      – SubjectFull: Concurrent error detection
        Type: general
      – SubjectFull: Threads (Computer programs)
        Type: general
      – SubjectFull: Idioms
        Type: general
      – SubjectFull: Computer programmers
        Type: general
    Titles:
      – TitleFull: A study and toolkit of CHECK-THEN-ACT idioms of Java concurrent collections.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Lin, Yu
      – PersonEntity:
          Name:
            NameFull: Dig, Danny
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 06
              Text: Jun2015
              Type: published
              Y: 2015
          Identifiers:
            – Type: issn-print
              Value: 09600833
          Numbering:
            – Type: volume
              Value: 25
            – Type: issue
              Value: 4
          Titles:
            – TitleFull: Software Testing: Verification & Reliability
              Type: main
ResultId 1