JavaPathfinder v6.0 (rev 652+) - (C) RIACS/NASA Ames Research Center ====================================================== system under test application: Account/Main.java arguments: 8 ====================================================== search started: 26/02/12 11:49 ========potential races======== object id: 235815501 (235815501) field: double Account.Account.amount thread id: 1 (Thread-1) instruction: Account.Account.depsite(Account.java:15) READ [(382)] ] instruction: Account.Account.withdraw(Account.java:19) WRITE [(382)] ] instruction: Account.Account.transfer(Account.java:23) WRITE [(382)] ] instruction: Account.Account.depsite(Account.java:15) WRITE [(382)] ] instruction: Account.Account.transfer(Account.java:23) READ [(382)] ] instruction: Account.Account.withdraw(Account.java:19) READ [(382)] ] thread id: 7 (Thread-7) instruction: Account.Account.transfer(Account.java:31) READ [(382, 437)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(382, 437)] ] thread id: 8 (Thread-8) instruction: Account.Account.transfer(Account.java:31) READ [(382, 445)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(382, 445)] ] ============================ monitor id 382 Account.Account monitor id 437 Account.Account monitor id 445 Account.Account object id: 235818582 (235818582) field: double Account.Account.amount thread id: 1 (Thread-1) instruction: Account.Account.transfer(Account.java:31) READ [(382, 389)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(382, 389)] ] thread id: 2 (Thread-2) instruction: Account.Account.depsite(Account.java:15) READ [(389)] ] instruction: Account.Account.withdraw(Account.java:19) WRITE [(389)] ] instruction: Account.Account.transfer(Account.java:23) WRITE [(389)] ] instruction: Account.Account.depsite(Account.java:15) WRITE [(389)] ] instruction: Account.Account.transfer(Account.java:23) READ [(389)] ] instruction: Account.Account.withdraw(Account.java:19) READ [(389)] ] thread id: 8 (Thread-8) instruction: Account.Account.transfer(Account.java:31) READ [(389, 445)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(389, 445)] ] ============================ monitor id 382 Account.Account monitor id 389 Account.Account monitor id 445 Account.Account object id: 235820640 (235820640) field: double Account.Account.amount thread id: 2 (Thread-2) instruction: Account.Account.transfer(Account.java:31) READ [(389, 416)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(389, 416)] ] thread id: 3 (Thread-3) instruction: Account.Account.transfer(Account.java:31) READ [(396, 416)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(396, 416)] ] thread id: 4 (Thread-4) instruction: Account.Account.depsite(Account.java:15) READ [(416)] ] instruction: Account.Account.withdraw(Account.java:19) WRITE [(416)] ] instruction: Account.Account.transfer(Account.java:23) WRITE [(416)] ] instruction: Account.Account.depsite(Account.java:15) WRITE [(416)] ] instruction: Account.Account.transfer(Account.java:23) READ [(416)] ] instruction: Account.Account.withdraw(Account.java:19) READ [(416)] ] ============================ monitor id 389 Account.Account monitor id 396 Account.Account monitor id 416 Account.Account object id: 235822431 (235822431) field: double Account.Account.amount thread id: 1 (Thread-1) instruction: Account.Account.transfer(Account.java:31) READ [(382, 396)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(382, 396)] ] thread id: 2 (Thread-2) instruction: Account.Account.transfer(Account.java:31) READ [(389, 396)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(389, 396)] ] thread id: 3 (Thread-3) instruction: Account.Account.depsite(Account.java:15) READ [(396)] ] instruction: Account.Account.withdraw(Account.java:19) WRITE [(396)] ] instruction: Account.Account.transfer(Account.java:23) WRITE [(396)] ] instruction: Account.Account.depsite(Account.java:15) WRITE [(396)] ] instruction: Account.Account.transfer(Account.java:23) READ [(396)] ] instruction: Account.Account.withdraw(Account.java:19) READ [(396)] ] ============================ monitor id 382 Account.Account monitor id 389 Account.Account monitor id 396 Account.Account object id: 235823995 (235823995) field: double Account.Account.amount thread id: 5 (Thread-5) instruction: Account.Account.transfer(Account.java:31) READ [(423, 437)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(423, 437)] ] thread id: 6 (Thread-6) instruction: Account.Account.transfer(Account.java:31) READ [(430, 437)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(430, 437)] ] thread id: 7 (Thread-7) instruction: Account.Account.depsite(Account.java:15) READ [(437)] ] instruction: Account.Account.withdraw(Account.java:19) WRITE [(437)] ] instruction: Account.Account.transfer(Account.java:23) WRITE [(437)] ] instruction: Account.Account.depsite(Account.java:15) WRITE [(437)] ] instruction: Account.Account.transfer(Account.java:23) READ [(437)] ] instruction: Account.Account.withdraw(Account.java:19) READ [(437)] ] ============================ monitor id 423 Account.Account monitor id 430 Account.Account monitor id 437 Account.Account object id: 235824652 (235824652) field: double Account.Account.amount thread id: 6 (Thread-6) instruction: Account.Account.transfer(Account.java:31) READ [(430, 445)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(430, 445)] ] thread id: 7 (Thread-7) instruction: Account.Account.transfer(Account.java:31) READ [(437, 445)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(437, 445)] ] thread id: 8 (Thread-8) instruction: Account.Account.depsite(Account.java:15) READ [(445)] ] instruction: Account.Account.withdraw(Account.java:19) WRITE [(445)] ] instruction: Account.Account.transfer(Account.java:23) WRITE [(445)] ] instruction: Account.Account.depsite(Account.java:15) WRITE [(445)] ] instruction: Account.Account.transfer(Account.java:23) READ [(445)] ] instruction: Account.Account.withdraw(Account.java:19) READ [(445)] ] ============================ monitor id 430 Account.Account monitor id 437 Account.Account monitor id 445 Account.Account object id: 235827314 (235827314) field: double Account.Account.amount thread id: 4 (Thread-4) instruction: Account.Account.transfer(Account.java:27) READ [(416)] ] instruction: Account.Account.transfer(Account.java:27) WRITE [(416)] ] thread id: 5 (Thread-5) instruction: Account.Account.transfer(Account.java:31) READ [(423, 430)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(423, 430)] ] thread id: 6 (Thread-6) instruction: Account.Account.depsite(Account.java:15) READ [(430)] ] instruction: Account.Account.withdraw(Account.java:19) WRITE [(430)] ] instruction: Account.Account.transfer(Account.java:23) WRITE [(430)] ] instruction: Account.Account.depsite(Account.java:15) WRITE [(430)] ] instruction: Account.Account.transfer(Account.java:23) READ [(430)] ] instruction: Account.Account.withdraw(Account.java:19) READ [(430)] ] ============================ monitor id 416 Account.Account monitor id 423 Account.Account monitor id 430 Account.Account object id: 235830377 (235830377) field: double Account.Account.amount thread id: 3 (Thread-3) instruction: Account.Account.transfer(Account.java:31) READ [(396, 423)] ] instruction: Account.Account.transfer(Account.java:31) WRITE [(396, 423)] ] thread id: 4 (Thread-4) instruction: Account.Account.transfer(Account.java:27) READ [(416)] ] instruction: Account.Account.transfer(Account.java:27) WRITE [(416)] ] thread id: 5 (Thread-5) instruction: Account.Account.depsite(Account.java:15) READ [(423)] ] instruction: Account.Account.withdraw(Account.java:19) WRITE [(423)] ] instruction: Account.Account.transfer(Account.java:23) WRITE [(423)] ] instruction: Account.Account.depsite(Account.java:15) WRITE [(423)] ] instruction: Account.Account.transfer(Account.java:23) READ [(423)] ] instruction: Account.Account.withdraw(Account.java:19) READ [(423)] ] ============================ monitor id 396 Account.Account monitor id 416 Account.Account monitor id 423 Account.Account ======== sumary ======== 1 >Potential race for field Account.Account.amount write: [Thread-4] Account.Account.transfer read: [Thread-5] Account.Account.transfer < 2 >Potential race for field Account.Account.amount write: [Thread-4] Account.Account.transfer read: [Thread-6] Account.Account.depsite < 3 >Potential race for field Account.Account.amount write: [Thread-4] Account.Account.transfer read: [Thread-6] Account.Account.withdraw < ====================================================== results no errors detected ====================================================== statistics elapsed time: 00:00:05 states: new=8451, visited=13128, backtracked=21536, end=5 search: maxDepth=129, constraints hit=0 choice generators: thread=8450 (signal=0, lock=1620, shared ref=5286), data=0 heap: new=446, released=255, max live=446, gc-cycles=19004 instructions: 168117 max memory: 166MB loaded code: classes=84, methods=1328 ====================================================== search finished: 26/02/12 11:49