Skip to content

PFixConcurrency/FixExamples

Repository files navigation

FixExamples

**Specification **

account:

There is a deadlock in the original program and JPF determines the fix failed.But this is the most reasonable fix we can generate.

use pattern

ReadWriteNode[1569,account.Account@1bf,amount,READ,Thread-4,account/Account.java:28] ReadWriteNode[1580,account.Account@1bf,amount,WRITE,Thread-6,account/Account.java:20] ReadWriteNode[1601,account.Account@1bf,amount,WRITE,Thread-4,account/Account.java:28]

We know that we lock 28 lines of the account.java file,like this:

synchronized (ac) {ac.amount += mn;

}

accountsubtype,buggyprogram:

Sometimes you need to run multiple times to get the correct fix.

pingpong:

This program's bug is difficult to expose and requires multiple runs.

dir

examples:original program

exportExamples:fixed program

generateClass:generate class file

logFile:log runtime information

program entry

program main
account.Main
accountsubtype.Main
airline.Main
alarmclock.AlarmClock
atmoerror.Main
buggyprogram.BuggyProgram
checkfield.CheckField
consisitency.Main
critical.Critical
datarace.Main
even.Main
hashcodetest.HashCodeTest
linkedlist.BugTester
mergesort.MergeSort
org.apache.commons.pool.impl.TestGenericObjectPool
org.apache.log4j.TestThrowableStrRep
pingpong.PingPong
producerConsumer.ProducerConsumer
reorder.ReorderTest2
store.StoreTest
stringbuffer.StringBufferTest
wrongLock.Main
wronglock2.Main

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published