diff --git a/infer/src/concurrency/RacerD.ml b/infer/src/concurrency/RacerD.ml index d853df239..4ca9a8809 100644 --- a/infer/src/concurrency/RacerD.ml +++ b/infer/src/concurrency/RacerD.ml @@ -725,7 +725,7 @@ let make_trace ~report_kind original_path = let log_issue current_pname ~loc ~ltr ~access issue_type error_message = - Reporting.log_issue_external current_pname Exceptions.Error ~loc ~ltr ~access issue_type + Reporting.log_issue_external current_pname Exceptions.Warning ~loc ~ltr ~access issue_type error_message diff --git a/infer/tests/build_systems/ant/issues.exp b/infer/tests/build_systems/ant/issues.exp index 89f6fc0d5..30e431028 100644 --- a/infer/tests/build_systems/ant/issues.exp +++ b/infer/tests/build_systems/ant/issues.exp @@ -53,42 +53,42 @@ codetoanalyze/java/infer/FilterOutputStreamLeaks.java, codetoanalyze.java.infer. codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample$3.readFromInnerClassBad1():java.lang.String, 2, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure readFromInnerClassBad1()] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample$4.readFromInnerClassBad2():java.lang.String, 1, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure readFromInnerClassBad2()] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample$Sub.badSub():void, 1, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure badSub()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample$Sub.badSub():void, 491, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.xForSub`,,access to `this.xForSub`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample$Sub.badSub():void, 491, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.xForSub`,,access to `this.xForSub`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.badGuardedByNormalLock():void, 1, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure badGuardedByNormalLock()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.badGuardedByNormalLock():void, 526, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.guardedbynl`,,access to `this.guardedbynl`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.badGuardedByNormalLock():void, 526, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.guardedbynl`,,access to `this.guardedbynl`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.badGuardedByReentrantLock():void, 1, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure badGuardedByReentrantLock()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.badGuardedByReentrantLock():void, 530, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.guardedbyrel`,,access to `this.guardedbyrel`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.badGuardedByReentrantLock():void, 530, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.guardedbyrel`,,access to `this.guardedbyrel`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.byRefTrickyBad():java.lang.Object, 5, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure byRefTrickyBad()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.byRefTrickyBad():java.lang.Object, 281, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.g`,,access to `this.g`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.byRefTrickyBad():java.lang.Object, 281, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.g`,,access to `this.g`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.guardedByTypeSyntaxBad():void, 1, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure guardedByTypeSyntaxBad()] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.guardedByTypeSyntaxBad():void, 2, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure guardedByTypeSyntaxBad()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.guardedByTypeSyntaxBad():void, 573, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.guardedByLock1`,,access to `this.guardedByLock1`] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.guardedByTypeSyntaxBad():void, 574, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.guardedByLock2`,,access to `this.guardedByLock2`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.guardedByTypeSyntaxBad():void, 573, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.guardedByLock1`,,access to `this.guardedByLock1`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.guardedByTypeSyntaxBad():void, 574, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.guardedByLock2`,,access to `this.guardedByLock2`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFAfterBlockBad():void, 3, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure readFAfterBlockBad()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFAfterBlockBad():void, 98, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f`,,access to `this.f`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFAfterBlockBad():void, 98, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f`,,access to `this.f`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFBad():void, 1, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure readFBad()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFBad():void, 66, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f`,,access to `this.f`] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFBadButSuppressed():void, 71, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f`,,access to `this.f`] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFBadButSuppressedOther():void, 76, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f`,,access to `this.f`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFBad():void, 66, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f`,,access to `this.f`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFBadButSuppressed():void, 71, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f`,,access to `this.f`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFBadButSuppressedOther():void, 76, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f`,,access to `this.f`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFBadWrongAnnotation():void, 1, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure readFBadWrongAnnotation()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFBadWrongAnnotation():void, 109, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f`,,access to `this.f`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFBadWrongAnnotation():void, 109, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f`,,access to `this.f`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFBadWrongLock():void, 2, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure readFBadWrongLock()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFBadWrongLock():void, 85, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f`,,access to `this.f`] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFOkMethodAnnotated():void, 114, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f`,,access to `this.f`] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFOkSynchronized():void, 127, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f`,,access to `this.f`] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readGFromCopyOk():void, 267, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.mCopyOfG`,,access to `this.mCopyOfG`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFBadWrongLock():void, 85, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f`,,access to `this.f`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFOkMethodAnnotated():void, 114, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f`,,access to `this.f`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readFOkSynchronized():void, 127, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f`,,access to `this.f`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readGFromCopyOk():void, 267, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.mCopyOfG`,,access to `this.mCopyOfG`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readHBad():void, 2, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure readHBad()] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.readHBadSynchronizedMethodShouldntHelp():void, 1, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure readHBadSynchronizedMethodShouldntHelp()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.reassignCopyOk():void, 149, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.mCopyOfG`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.reassignCopyOk():void, 149, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.mCopyOfG`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.synchronizedMethodReadBad():void, 1, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure synchronizedMethodReadBad()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.synchronizedMethodReadBad():void, 138, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f`,,access to `this.f`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.synchronizedMethodReadBad():void, 138, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f`,,access to `this.f`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.synchronizedMethodWriteBad():void, 1, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure synchronizedMethodWriteBad()] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.synchronizedOnThisBad():void, 1, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure synchronizedOnThisBad()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.synchronizedOnThisBad():void, 205, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `infer.GuardedByExample.sGuardedByClass`,,access to `infer.GuardedByExample.sGuardedByClass`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.synchronizedOnThisBad():void, 205, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `infer.GuardedByExample.sGuardedByClass`,,access to `infer.GuardedByExample.sGuardedByClass`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.writeFAfterBlockBad():void, 3, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure writeFAfterBlockBad()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.writeFAfterBlockBad():void, 104, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.writeFAfterBlockBad():void, 104, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.writeFBad():void, 1, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure writeFBad()] -codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.writeFBad():void, 80, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f`,,access to `this.f`] +codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.writeFBad():void, 80, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f`,,access to `this.f`] codetoanalyze/java/infer/GuardedByExample.java, codetoanalyze.java.infer.GuardedByExample.writeFBadWrongLock():void, 2, UNSAFE_GUARDED_BY_ACCESS, no_bucket, ERROR, [start of procedure writeFBadWrongLock()] codetoanalyze/java/infer/HashMapExample.java, codetoanalyze.java.infer.HashMapExample.getAfterClearBad():void, 5, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure getAfterClearBad()] codetoanalyze/java/infer/HashMapExample.java, codetoanalyze.java.infer.HashMapExample.getAfterRemovingTheKeyBad():void, 5, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure getAfterRemovingTheKeyBad()] diff --git a/infer/tests/build_systems/racerd_dedup/issues.exp b/infer/tests/build_systems/racerd_dedup/issues.exp index 0129c0121..1cb70980a 100644 --- a/infer/tests/build_systems/racerd_dedup/issues.exp +++ b/infer/tests/build_systems/racerd_dedup/issues.exp @@ -1,8 +1,8 @@ -DeDup.java, build_systems.threadsafety.DeDup.colocated_read_write():void, 63, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,call to void DeDup.read_and_write(),access to `this.colocated_read`,,access to `this.colocated_read`] -DeDup.java, build_systems.threadsafety.DeDup.separate_write_to_colocated_read():void, 68, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.colocated_read`] -DeDup.java, build_systems.threadsafety.DeDup.twoWritesOneInCaller():void, 50, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void DeDup.writeToField(),access to `this.field`] -DeDup.java, build_systems.threadsafety.DeDup.two_fields():void, 20, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void DeDup.foo(),access to `this.fielda`] -DeDup.java, build_systems.threadsafety.DeDup.two_reads():void, 37, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.field`,,access to `this.field`] -DeDup.java, build_systems.threadsafety.DeDup.two_writes():void, 30, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.field`] -DeDup.java, build_systems.threadsafety.DeDup.write_read():void, 44, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.field`] -DeDup.java, build_systems.threadsafety.DeDup.write_read():void, 45, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.field`,,access to `this.field`] +DeDup.java, build_systems.threadsafety.DeDup.colocated_read_write():void, 63, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,call to void DeDup.read_and_write(),access to `this.colocated_read`,,access to `this.colocated_read`] +DeDup.java, build_systems.threadsafety.DeDup.separate_write_to_colocated_read():void, 68, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.colocated_read`] +DeDup.java, build_systems.threadsafety.DeDup.twoWritesOneInCaller():void, 50, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void DeDup.writeToField(),access to `this.field`] +DeDup.java, build_systems.threadsafety.DeDup.two_fields():void, 20, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void DeDup.foo(),access to `this.fielda`] +DeDup.java, build_systems.threadsafety.DeDup.two_reads():void, 37, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.field`,,access to `this.field`] +DeDup.java, build_systems.threadsafety.DeDup.two_writes():void, 30, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.field`] +DeDup.java, build_systems.threadsafety.DeDup.write_read():void, 44, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.field`] +DeDup.java, build_systems.threadsafety.DeDup.write_read():void, 45, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.field`,,access to `this.field`] diff --git a/infer/tests/codetoanalyze/cpp/racerd/issues.exp b/infer/tests/codetoanalyze/cpp/racerd/issues.exp index fff546645..add9cbae9 100644 --- a/infer/tests/codetoanalyze/cpp/racerd/issues.exp +++ b/infer/tests/codetoanalyze/cpp/racerd/issues.exp @@ -1,26 +1,26 @@ -codetoanalyze/cpp/racerd/basics.cpp, basics::Basic::get2, 36, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.suspiciously_written`,,access to `this.suspiciously_written`] -codetoanalyze/cpp/racerd/basics.cpp, basics::Basic::get4, 43, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] -codetoanalyze/cpp/racerd/basics.cpp, basics::Basic::get5, 45, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,call to basics::Basic::get_private_suspiciously_read,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] -codetoanalyze/cpp/racerd/basics.cpp, basics::Basic::test_double_lock_bad, 81, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.single_lock_suspiciously_read`,,access to `this.single_lock_suspiciously_read`] -codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic::call1, 51, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x2.a.b.c`,,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x2.a.b.c`] -codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic::call1, 51, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.u`,,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.u`] -codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic::call1, 51, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.w`,,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.w`] -codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic::test_unlock, 59, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.u`,,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.u`] -codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic::test_unlock, 59, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x2.a.b.c`,,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x2.a.b.c`] -codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic::test_unlock, 59, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.w`,,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.w`] -codetoanalyze/cpp/racerd/locals_ownership.cpp, locals::Ownership::test2_bad, 49, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `x.f`,,access to `x.f`] -codetoanalyze/cpp/racerd/locals_ownership.cpp, locals::Ownership::test3_bad, 65, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `x.f`,,access to `x.f`] -codetoanalyze/cpp/racerd/lock_guard.cpp, basics::LockGuard::get2, 34, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.suspiciously_written`,,access to `this.suspiciously_written`] -codetoanalyze/cpp/racerd/lock_guard.cpp, basics::LockGuard::get4, 40, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] -codetoanalyze/cpp/racerd/lock_guard.cpp, basics::LockGuard::test1, 44, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] -codetoanalyze/cpp/racerd/lock_guard_with_scope.cpp, basics::LockGuardWithScope::get2, 37, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.suspiciously_written`,,access to `this.suspiciously_written`] -codetoanalyze/cpp/racerd/lock_guard_with_scope.cpp, basics::LockGuardWithScope::get4, 43, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] -codetoanalyze/cpp/racerd/reporting.cpp, reporting::Basic::call1, 24, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,call to reporting::Basic::test,access to `xparam.x1.w`,,call to reporting::Basic::call1,call to reporting::Basic::test,access to `xparam.x1.w`] -codetoanalyze/cpp/racerd/reporting.cpp, reporting::Basic::test_unlock, 32, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,call to reporting::Basic::call1,call to reporting::Basic::test,access to `xparam.x1.w`,,call to reporting::Basic::call1,call to reporting::Basic::test,access to `xparam.x1.w`] -codetoanalyze/cpp/racerd/std_lock.cpp, basics::StdLock::get_bad, 31, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.not_guarded`,,access to `this.not_guarded`] -codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock::get2, 45, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.suspiciously_written1`,,access to `this.suspiciously_written1`] -codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock::get2, 46, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.suspiciously_written2`,,access to `this.suspiciously_written2`] -codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock::get4, 55, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.suspiciously_read1`,,access to `this.suspiciously_read1`] -codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock::get4, 56, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.suspiciously_read2`,,access to `this.suspiciously_read2`] -codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock::get5, 64, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.suspiciously_read1`,,access to `this.suspiciously_read1`] -codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock::get6, 73, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `this.suspiciously_read1`,,access to `this.suspiciously_read1`] +codetoanalyze/cpp/racerd/basics.cpp, basics::Basic::get2, 36, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.suspiciously_written`,,access to `this.suspiciously_written`] +codetoanalyze/cpp/racerd/basics.cpp, basics::Basic::get4, 43, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] +codetoanalyze/cpp/racerd/basics.cpp, basics::Basic::get5, 45, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,call to basics::Basic::get_private_suspiciously_read,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] +codetoanalyze/cpp/racerd/basics.cpp, basics::Basic::test_double_lock_bad, 81, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.single_lock_suspiciously_read`,,access to `this.single_lock_suspiciously_read`] +codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic::call1, 51, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x2.a.b.c`,,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x2.a.b.c`] +codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic::call1, 51, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.u`,,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.u`] +codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic::call1, 51, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.w`,,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.w`] +codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic::test_unlock, 59, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x2.a.b.c`,,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x2.a.b.c`] +codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic::test_unlock, 59, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.u`,,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.u`] +codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic::test_unlock, 59, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.w`,,call to dereferencing::Basic::call1,call to dereferencing::Basic::mixed_deref_race,access to `xparam.x1.w`] +codetoanalyze/cpp/racerd/locals_ownership.cpp, locals::Ownership::test2_bad, 49, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `x.f`,,access to `x.f`] +codetoanalyze/cpp/racerd/locals_ownership.cpp, locals::Ownership::test3_bad, 65, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `x.f`,,access to `x.f`] +codetoanalyze/cpp/racerd/lock_guard.cpp, basics::LockGuard::get2, 34, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.suspiciously_written`,,access to `this.suspiciously_written`] +codetoanalyze/cpp/racerd/lock_guard.cpp, basics::LockGuard::get4, 40, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] +codetoanalyze/cpp/racerd/lock_guard.cpp, basics::LockGuard::test1, 44, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] +codetoanalyze/cpp/racerd/lock_guard_with_scope.cpp, basics::LockGuardWithScope::get2, 37, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.suspiciously_written`,,access to `this.suspiciously_written`] +codetoanalyze/cpp/racerd/lock_guard_with_scope.cpp, basics::LockGuardWithScope::get4, 43, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] +codetoanalyze/cpp/racerd/reporting.cpp, reporting::Basic::call1, 24, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,call to reporting::Basic::test,access to `xparam.x1.w`,,call to reporting::Basic::call1,call to reporting::Basic::test,access to `xparam.x1.w`] +codetoanalyze/cpp/racerd/reporting.cpp, reporting::Basic::test_unlock, 32, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,call to reporting::Basic::call1,call to reporting::Basic::test,access to `xparam.x1.w`,,call to reporting::Basic::call1,call to reporting::Basic::test,access to `xparam.x1.w`] +codetoanalyze/cpp/racerd/std_lock.cpp, basics::StdLock::get_bad, 31, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.not_guarded`,,access to `this.not_guarded`] +codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock::get2, 45, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.suspiciously_written1`,,access to `this.suspiciously_written1`] +codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock::get2, 46, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.suspiciously_written2`,,access to `this.suspiciously_written2`] +codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock::get4, 55, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.suspiciously_read1`,,access to `this.suspiciously_read1`] +codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock::get4, 56, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.suspiciously_read2`,,access to `this.suspiciously_read2`] +codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock::get5, 64, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.suspiciously_read1`,,access to `this.suspiciously_read1`] +codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock::get6, 73, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `this.suspiciously_read1`,,access to `this.suspiciously_read1`] diff --git a/infer/tests/codetoanalyze/java/racerd/issues.exp b/infer/tests/codetoanalyze/java/racerd/issues.exp index 2ca1b9dd4..dd7702701 100644 --- a/infer/tests/codetoanalyze/java/racerd/issues.exp +++ b/infer/tests/codetoanalyze/java/racerd/issues.exp @@ -1,129 +1,129 @@ -codetoanalyze/java/racerd/AndroidModels.java, codetoanalyze.java.checkers.AndroidModels.someResourceMethodsNotFunctionalBad():void, 63, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.mField`] -codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.FP_functionalAcrossBoxingLongOk():int, 342, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.mBoxedLong2`] -codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.FP_functionalAcrossUnboxingOk():boolean, 312, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.mBool2`] -codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.conditional2_bad(boolean):void, 180, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.ii`] -codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.functionaLongBad():long, 286, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.mLong`] -codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.functionalAcrossUnboxingLongBad():int, 333, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.mLong2`] -codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.functionalAndNonfunctionalBad():void, 378, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.mInt`] -codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.functionalDoubleBad():double, 278, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.mDouble`] -codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.mutateOffUiThreadBad():void, 106, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.mutateSubfieldOfConfinedBad():void, 146, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.encapsulatedField.f`] -codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.read_from_non_confined_method_Bad():void, 159, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.zz`,,access to `this.zz`] -codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.read_off_UI_thread_Bad():void, 190, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f`,,access to `this.f`] -codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.ThreadSafeAlias.threadSafeAliasBad1():void, 82, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.field`] -codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.ThreadSafeAlias.threadSafeAliasBad2():void, 87, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.field`] -codetoanalyze/java/racerd/Arrays.java, Arrays.arrayParameterWriteBad(int[]):void, 26, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `name1.[_]`] -codetoanalyze/java/racerd/Arrays.java, Arrays.readWriteRaceBad(java.lang.String):java.lang.String, 47, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.strArr1.[_]`,,access to `this.strArr1.[_]`] -codetoanalyze/java/racerd/Arrays.java, Arrays.writeWriteRaceBad(java.lang.String):void, 39, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.strArr1.[_]`] -codetoanalyze/java/racerd/Builders.java, codetoanalyze.java.checkers.Builders.buildThenMutateBad(codetoanalyze.java.checkers.Builders$Obj):codetoanalyze.java.checkers.Builders$Obj, 88, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,call to Builders$Obj$Builder Builders$Obj$Builder.setFromObj(Builders$Obj),access to `input.g`,,access to `input.g`] -codetoanalyze/java/racerd/Builders.java, codetoanalyze.java.checkers.Builders.buildThenMutateBad(codetoanalyze.java.checkers.Builders$Obj):codetoanalyze.java.checkers.Builders$Obj, 89, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `input.g`] -codetoanalyze/java/racerd/Builders.java, codetoanalyze.java.checkers.Builders.mutateBad(codetoanalyze.java.checkers.Builders$Obj):codetoanalyze.java.checkers.Builders$Obj, 81, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `o.g`] -codetoanalyze/java/racerd/Builders.java, codetoanalyze.java.checkers.TopLevelBuilder.setG(java.lang.String):void, 99, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.g`] -codetoanalyze/java/racerd/Constructors.java, Constructors.(), 20, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `Constructors.staticField`] -codetoanalyze/java/racerd/Constructors.java, Constructors.(Constructors), 28, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `o.field`] -codetoanalyze/java/racerd/Constructors.java, Constructors.FP_singleton2Ok():Constructors, 52, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `Constructors.sSingleton1`,,access to `Constructors.sSingleton1`] -codetoanalyze/java/racerd/Constructors.java, Constructors.singleton1Bad():Constructors, 57, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to Constructors.(Object),access to `Constructors.staticField`] -codetoanalyze/java/racerd/Constructors.java, Constructors.singleton2Bad():Constructors, 63, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `Constructors.sSingleton2`,,access to `Constructors.sSingleton2`] -codetoanalyze/java/racerd/Constructors.java, Constructors.singleton2Bad():Constructors, 64, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `Constructors.sSingleton2`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.addToSimpleArrayMapBad(android.support.v4.util.SimpleArrayMap):void, 279, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `map` via call to `put`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.addToSparseArrayBad(android.util.SparseArray):void, 269, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `sparseArray` via call to `put`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.addToSparseArrayCompatBad(android.support.v4.util.SparseArrayCompat):void, 260, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `sparseArray` via call to `put`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.containerWrapperUnownedWriteBad(java.lang.Object):void, 167, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to Object ContainerWrapper.write(Object),call to Object ContainerWrapper._write(Object),Write to container `this.children` via call to `add`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listAddAllBad(java.util.Collection):void, 55, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `this.mList` via call to `addAll`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listAddBad1(java.lang.String):void, 47, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `this.mList` via call to `add`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listAddBad2(int,java.lang.String):void, 51, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `this.mList` via call to `add`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listClearBad():void, 59, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `this.mList` via call to `clear`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listReadBad(java.lang.String):boolean, 98, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,Read of container `this.mListSyncWrites` via call to `contains`,,Write to container `this.mListSyncWrites` via call to `add`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listRemoveBad1(int):void, 63, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `this.mList` via call to `remove`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listRemoveBad2(java.lang.String):void, 67, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `this.mList` via call to `remove`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listSetBad(int,java.lang.String):void, 75, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `this.mList` via call to `set`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listSubclassWriteBad(java.util.ArrayList,int):void, 79, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `list` via call to `remove`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.mapClearBad():void, 115, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `this.mMap` via call to `clear`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.mapPutAllBad(java.util.Map):void, 119, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `this.mMap` via call to `putAll`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.mapPutBad(java.lang.String,java.lang.String):void, 107, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `this.mMap` via call to `put`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.mapRemoveBad(java.lang.String):void, 111, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `this.mMap` via call to `remove`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.mapSubclassWriteBad(java.util.HashMap,java.lang.String):void, 137, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `m` via call to `remove`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.poolBad():void, 298, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [Write to container `this.simplePool` via call to `release`] -codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.readSimpleArrayMap():int, 284, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,Read of container `this.si_map` via call to `get`,,Write to container `this.si_map` via call to `put`] -codetoanalyze/java/racerd/DeepOwnership.java, DeepOwnership.globalNotOwnedBad():void, 16, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `DeepOwnership.global.next`] -codetoanalyze/java/racerd/DeepOwnership.java, DeepOwnership.reassignBaseToGlobalBad():void, 22, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `x.next`] -codetoanalyze/java/racerd/Dispatch.java, codetoanalyze.java.checkers.Dispatch.callUnannotatedInterfaceBad(codetoanalyze.java.checkers.UnannotatedInterface):void, 49, INTERFACE_NOT_THREAD_SAFE, no_bucket, ERROR, [Call to un-annotated interface method void UnannotatedInterface.foo()] -codetoanalyze/java/racerd/Dispatch.java, codetoanalyze.java.checkers.Dispatch.callUnannotatedInterfaceIndirectBad(codetoanalyze.java.checkers.NotThreadSafe,codetoanalyze.java.checkers.UnannotatedInterface):void, 53, INTERFACE_NOT_THREAD_SAFE, no_bucket, ERROR, [call to void NotThreadSafe.notThreadSafeOk(UnannotatedInterface),Call to un-annotated interface method void UnannotatedInterface.foo()] -codetoanalyze/java/racerd/Dispatch.java, codetoanalyze.java.checkers.ThreadConfinedField.interfaceCallOnNormalFieldBad():void, 102, INTERFACE_NOT_THREAD_SAFE, no_bucket, ERROR, [Call to un-annotated interface method void UnannotatedInterface.foo()] -codetoanalyze/java/racerd/GuardedByTests.java, codetoanalyze.java.infer.GuardedByOther.accessBad():void, 128, GUARDEDBY_VIOLATION, no_bucket, ERROR, [access to `this.x`] -codetoanalyze/java/racerd/GuardedByTests.java, codetoanalyze.java.infer.GuardedByTests.interprocUnlockedWriteBad():void, 60, GUARDEDBY_VIOLATION, no_bucket, ERROR, [call to void GuardedByTests.privateUnlockedWriteOk(),access to `this.d`] -codetoanalyze/java/racerd/GuardedByTests.java, codetoanalyze.java.infer.GuardedByTests.unlockedWriteBad():void, 35, GUARDEDBY_VIOLATION, no_bucket, ERROR, [access to `this.b`] -codetoanalyze/java/racerd/Inference.java, codetoanalyze.java.checkers.Inference.read4OutsideSyncBad():int, 64, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.mField4`,,access to `this.mField4`] -codetoanalyze/java/racerd/Inference.java, codetoanalyze.java.checkers.Inference.unprotectedRead1Bad():int, 21, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.mField1`,,access to `this.mField1`] -codetoanalyze/java/racerd/Inference.java, codetoanalyze.java.checkers.Inference.unprotectedRead2Bad():int, 34, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.mField2`,,access to `this.mField2`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.afterReentrantLockUnlockBad():void, 45, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.afterUnlockBad():void, 39, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.afterWriteLockUnlockBad():void, 51, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.lockInLoopLexicalBad(int):void, 247, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.negatedReentrantLockTryLockBad():void, 112, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.nested1Bad():void, 195, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.nested2Bad():void, 201, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.nested3Bad():void, 211, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.readOutsideLock1Bad():boolean, 307, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.mField`,,access to `this.mField`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.readOutsideLock2Bad():boolean, 311, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.mField`,,access to `this.mField`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.tryLockNoCheckBad():void, 92, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.tryLockWrongBranchBad():void, 98, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.unownedReadBad():java.lang.Object, 362, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.mField3`,,call to void Locks.lockedWriteInCallee2(),access to `this.mField3`] -codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.useLockInCalleeBad():void, 221, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.(codetoanalyze.java.checkers.Obj,java.lang.Object), 65, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `obj.f`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.cantOwnThisBad():void, 170, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void Ownership.setField(Obj),access to `this.field`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.castThenCallBad():void, 343, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void Ownership.castThenCall(Obj),call to void Subclass.doWrite(),access to `this.f`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.conditionalAliasBad(codetoanalyze.java.checkers.Obj):void, 510, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void Ownership.conditionalAlias(Obj,Obj),access to `alias.f`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.notOwnedInCalleeBad(codetoanalyze.java.checkers.Obj):void, 232, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void Ownership.mutateIfNotNull(Obj),access to `o.f`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.notPropagatingOwnershipToAccessPathRootedAtFormalBad(codetoanalyze.java.checkers.Obj):void, 420, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `m.g`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.notPropagatingOwnershipToUnownedLocalAccessPathBad():void, 427, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.field`,,call to void Ownership.setField(Obj),access to `this.field`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.notPropagatingOwnershipToUnownedLocalAccessPathBad():void, 429, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `m.g`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.ownInOneBranchBad(codetoanalyze.java.checkers.Obj,boolean):void, 81, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `formal.f`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.readGlobalBad():int, 402, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `checkers.Ownership.global`,,access to `checkers.Ownership.global`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.reassignToFormalBad(codetoanalyze.java.checkers.Obj):void, 86, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `formal.g`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.reassignToFormalBad(codetoanalyze.java.checkers.Obj):void, 87, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `formal.g`,,access to `formal.g`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.writeToNotOwnedInCalleeBad1(codetoanalyze.java.checkers.Obj):void, 156, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void Ownership.writeToFormal(Obj),access to `formal.f`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.writeToNotOwnedInCalleeBad2():void, 161, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void Ownership.writeToFormal(Obj),access to `formal.f`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.writeToNotOwnedInCalleeBad3(codetoanalyze.java.checkers.Obj):void, 165, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void Ownership.callWriteToFormal(Obj),call to void Ownership.writeToFormal(Obj),access to `formal.f`] -codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.writeToOwnedInCalleeOk2():void, 182, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.field`,,access to `this.field`] -codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.conditional2_bad(boolean):void, 130, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.ff`] -codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.conditionalMainThreadWriteBad():void, 219, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void RaceWithMainThread.conditionalMainThreadWrite2(boolean),access to `this.mOnlyWrittenOnMain`] -codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.conditional_isMainThread_ElseBranch_Bad():void, 152, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.ff`] -codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.conditional_isMainThread_Negation_Bad():void, 168, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.ff`] -codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.conditional_isUiThread_ElseBranch_Bad():void, 162, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.ff`] -codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.confusedAssertBad(boolean):void, 191, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.mFld`] -codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.readProtectedUnthreadedBad():void, 98, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f`,,call to void RaceWithMainThread.main_thread_OK(),access to `this.f`] -codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.read_unprotected_unthreaded1_Bad():void, 64, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f1`,,access to `this.f1`] -codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.read_unprotected_unthreaded_Bad():void, 59, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.f`,,call to void RaceWithMainThread.main_thread_OK(),access to `this.f`] -codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.writeAfterConditionalMainThreadInCalleeBad():void, 228, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.mSharedField`] -codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.callUnprotecteReadInCallee():java.lang.Object, 74, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,call to Object ReadWriteRaces.unprotectedReadInCallee(),access to `this.field1`,,access to `this.field1`] -codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.m1():void, 44, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.racy`,,access to `this.racy`] -codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.m2():void, 48, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.racy`] -codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.m3():void, 52, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.racy`] -codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.readInCalleeOutsideSyncBad(int):void, 103, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,call to int C.get(),access to `this.x`,,call to void C.set(int),access to `this.x`] -codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.unprotectedRead1():java.lang.Object, 66, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.field1`,,access to `this.field1`] -codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.unprotectedRead2():java.lang.Object, 84, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.field2`,,access to `this.field2`] -codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.unprotectedRead3():java.lang.Object, 96, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.field3`,,call to void ReadWriteRaces.syncWrite3(),access to `this.field3`] -codetoanalyze/java/racerd/SubFld.java, SubFld.getG():int, 28, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,call to int SuperFld.getG(),access to `this.g`,,access to `this.g`] -codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ExtendsThreadSafeExample.newmethodBad():void, 141, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.field`] -codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ExtendsThreadSafeExample.tsOK():void, 146, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.field`] -codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.FP_lazyInitOk():java.lang.Object, 130, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.sStaticField`,,access to `this.sStaticField`] -codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.callPublicMethodBad():void, 57, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void ThreadSafeExample.assignInPrivateMethodOk(),access to `this.f`] -codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.callVisibleForTestingBad():void, 109, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void ThreadSafeExample.visibleForTestingNotPublicOk(),access to `this.f`] -codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.deeperTraceBad():void, 66, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void ThreadSafeExample.callAssignInPrivateMethod(),call to void ThreadSafeExample.assignInPrivateMethodOk(),access to `this.f`] -codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.oddBad():void, 47, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [call to void ThreadSafeExample.evenOk(),access to `this.f`] -codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.recursiveBad():void, 37, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.tsBad():void, 33, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.f`] -codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.YesThreadSafeExtendsNotThreadSafeExample.subsubmethodBad():void, 168, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.subsubfield`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.readSameFieldAsThreadSafeMethod1Bad():java.lang.Object, 54, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.field1`,,access to `this.field1`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.readSameFieldAsThreadSafeMethod2Bad():java.lang.Object, 78, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.field4`,,access to `this.field4`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.readSameFieldAsThreadSafeMethodWhileSynchronized1Bad():java.lang.Object, 63, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.field1`,,access to `this.field1`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.threadSafeMethodReadBad():java.lang.Object, 28, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.field2`,,access to `this.field2`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.threadSafeMethodWriteBad():void, 23, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.field1`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.threadSafePrivateMethodBad():void, 33, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.field2`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.threadSafeVisibleForTestingMethodBad():void, 39, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.field3`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.writeSameFieldAsThreadSafeMethod1Bad():void, 49, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.field1`,,access to `this.field1`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.writeSameFieldAsThreadSafeMethod2Bad():void, 73, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.field4`,,access to `this.field4`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.readThreadSafeFieldOfOverrideBad():java.lang.Object, 123, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.subclassField`,,access to `this.subclassField`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.safeMethodOverride():void, 107, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [access to `this.subclassField`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.writeThreadSafeFieldOfOverrideBad():void, 119, THREAD_SAFETY_VIOLATION, no_bucket, ERROR, [,access to `this.subclassField`,,access to `this.subclassField`] +codetoanalyze/java/racerd/AndroidModels.java, codetoanalyze.java.checkers.AndroidModels.someResourceMethodsNotFunctionalBad():void, 63, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.mField`] +codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.FP_functionalAcrossBoxingLongOk():int, 342, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.mBoxedLong2`] +codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.FP_functionalAcrossUnboxingOk():boolean, 312, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.mBool2`] +codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.conditional2_bad(boolean):void, 180, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.ii`] +codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.functionaLongBad():long, 286, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.mLong`] +codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.functionalAcrossUnboxingLongBad():int, 333, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.mLong2`] +codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.functionalAndNonfunctionalBad():void, 378, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.mInt`] +codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.functionalDoubleBad():double, 278, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.mDouble`] +codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.mutateOffUiThreadBad():void, 106, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.mutateSubfieldOfConfinedBad():void, 146, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.encapsulatedField.f`] +codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.read_from_non_confined_method_Bad():void, 159, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.zz`,,access to `this.zz`] +codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.Annotations.read_off_UI_thread_Bad():void, 190, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f`,,access to `this.f`] +codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.ThreadSafeAlias.threadSafeAliasBad1():void, 82, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.field`] +codetoanalyze/java/racerd/Annotations.java, codetoanalyze.java.checkers.ThreadSafeAlias.threadSafeAliasBad2():void, 87, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.field`] +codetoanalyze/java/racerd/Arrays.java, Arrays.arrayParameterWriteBad(int[]):void, 26, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `name1.[_]`] +codetoanalyze/java/racerd/Arrays.java, Arrays.readWriteRaceBad(java.lang.String):java.lang.String, 47, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.strArr1.[_]`,,access to `this.strArr1.[_]`] +codetoanalyze/java/racerd/Arrays.java, Arrays.writeWriteRaceBad(java.lang.String):void, 39, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.strArr1.[_]`] +codetoanalyze/java/racerd/Builders.java, codetoanalyze.java.checkers.Builders.buildThenMutateBad(codetoanalyze.java.checkers.Builders$Obj):codetoanalyze.java.checkers.Builders$Obj, 88, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,call to Builders$Obj$Builder Builders$Obj$Builder.setFromObj(Builders$Obj),access to `input.g`,,access to `input.g`] +codetoanalyze/java/racerd/Builders.java, codetoanalyze.java.checkers.Builders.buildThenMutateBad(codetoanalyze.java.checkers.Builders$Obj):codetoanalyze.java.checkers.Builders$Obj, 89, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `input.g`] +codetoanalyze/java/racerd/Builders.java, codetoanalyze.java.checkers.Builders.mutateBad(codetoanalyze.java.checkers.Builders$Obj):codetoanalyze.java.checkers.Builders$Obj, 81, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `o.g`] +codetoanalyze/java/racerd/Builders.java, codetoanalyze.java.checkers.TopLevelBuilder.setG(java.lang.String):void, 99, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.g`] +codetoanalyze/java/racerd/Constructors.java, Constructors.(), 20, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `Constructors.staticField`] +codetoanalyze/java/racerd/Constructors.java, Constructors.(Constructors), 28, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `o.field`] +codetoanalyze/java/racerd/Constructors.java, Constructors.FP_singleton2Ok():Constructors, 52, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `Constructors.sSingleton1`,,access to `Constructors.sSingleton1`] +codetoanalyze/java/racerd/Constructors.java, Constructors.singleton1Bad():Constructors, 57, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to Constructors.(Object),access to `Constructors.staticField`] +codetoanalyze/java/racerd/Constructors.java, Constructors.singleton2Bad():Constructors, 63, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `Constructors.sSingleton2`,,access to `Constructors.sSingleton2`] +codetoanalyze/java/racerd/Constructors.java, Constructors.singleton2Bad():Constructors, 64, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `Constructors.sSingleton2`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.addToSimpleArrayMapBad(android.support.v4.util.SimpleArrayMap):void, 279, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `map` via call to `put`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.addToSparseArrayBad(android.util.SparseArray):void, 269, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `sparseArray` via call to `put`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.addToSparseArrayCompatBad(android.support.v4.util.SparseArrayCompat):void, 260, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `sparseArray` via call to `put`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.containerWrapperUnownedWriteBad(java.lang.Object):void, 167, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to Object ContainerWrapper.write(Object),call to Object ContainerWrapper._write(Object),Write to container `this.children` via call to `add`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listAddAllBad(java.util.Collection):void, 55, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `this.mList` via call to `addAll`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listAddBad1(java.lang.String):void, 47, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `this.mList` via call to `add`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listAddBad2(int,java.lang.String):void, 51, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `this.mList` via call to `add`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listClearBad():void, 59, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `this.mList` via call to `clear`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listReadBad(java.lang.String):boolean, 98, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,Read of container `this.mListSyncWrites` via call to `contains`,,Write to container `this.mListSyncWrites` via call to `add`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listRemoveBad1(int):void, 63, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `this.mList` via call to `remove`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listRemoveBad2(java.lang.String):void, 67, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `this.mList` via call to `remove`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listSetBad(int,java.lang.String):void, 75, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `this.mList` via call to `set`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.listSubclassWriteBad(java.util.ArrayList,int):void, 79, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `list` via call to `remove`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.mapClearBad():void, 115, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `this.mMap` via call to `clear`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.mapPutAllBad(java.util.Map):void, 119, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `this.mMap` via call to `putAll`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.mapPutBad(java.lang.String,java.lang.String):void, 107, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `this.mMap` via call to `put`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.mapRemoveBad(java.lang.String):void, 111, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `this.mMap` via call to `remove`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.mapSubclassWriteBad(java.util.HashMap,java.lang.String):void, 137, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `m` via call to `remove`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.poolBad():void, 298, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [Write to container `this.simplePool` via call to `release`] +codetoanalyze/java/racerd/Containers.java, codetoanalyze.java.checkers.Containers.readSimpleArrayMap():int, 284, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,Read of container `this.si_map` via call to `get`,,Write to container `this.si_map` via call to `put`] +codetoanalyze/java/racerd/DeepOwnership.java, DeepOwnership.globalNotOwnedBad():void, 16, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `DeepOwnership.global.next`] +codetoanalyze/java/racerd/DeepOwnership.java, DeepOwnership.reassignBaseToGlobalBad():void, 22, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `x.next`] +codetoanalyze/java/racerd/Dispatch.java, codetoanalyze.java.checkers.Dispatch.callUnannotatedInterfaceBad(codetoanalyze.java.checkers.UnannotatedInterface):void, 49, INTERFACE_NOT_THREAD_SAFE, no_bucket, WARNING, [Call to un-annotated interface method void UnannotatedInterface.foo()] +codetoanalyze/java/racerd/Dispatch.java, codetoanalyze.java.checkers.Dispatch.callUnannotatedInterfaceIndirectBad(codetoanalyze.java.checkers.NotThreadSafe,codetoanalyze.java.checkers.UnannotatedInterface):void, 53, INTERFACE_NOT_THREAD_SAFE, no_bucket, WARNING, [call to void NotThreadSafe.notThreadSafeOk(UnannotatedInterface),Call to un-annotated interface method void UnannotatedInterface.foo()] +codetoanalyze/java/racerd/Dispatch.java, codetoanalyze.java.checkers.ThreadConfinedField.interfaceCallOnNormalFieldBad():void, 102, INTERFACE_NOT_THREAD_SAFE, no_bucket, WARNING, [Call to un-annotated interface method void UnannotatedInterface.foo()] +codetoanalyze/java/racerd/GuardedByTests.java, codetoanalyze.java.infer.GuardedByOther.accessBad():void, 128, GUARDEDBY_VIOLATION, no_bucket, WARNING, [access to `this.x`] +codetoanalyze/java/racerd/GuardedByTests.java, codetoanalyze.java.infer.GuardedByTests.interprocUnlockedWriteBad():void, 60, GUARDEDBY_VIOLATION, no_bucket, WARNING, [call to void GuardedByTests.privateUnlockedWriteOk(),access to `this.d`] +codetoanalyze/java/racerd/GuardedByTests.java, codetoanalyze.java.infer.GuardedByTests.unlockedWriteBad():void, 35, GUARDEDBY_VIOLATION, no_bucket, WARNING, [access to `this.b`] +codetoanalyze/java/racerd/Inference.java, codetoanalyze.java.checkers.Inference.read4OutsideSyncBad():int, 64, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.mField4`,,access to `this.mField4`] +codetoanalyze/java/racerd/Inference.java, codetoanalyze.java.checkers.Inference.unprotectedRead1Bad():int, 21, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.mField1`,,access to `this.mField1`] +codetoanalyze/java/racerd/Inference.java, codetoanalyze.java.checkers.Inference.unprotectedRead2Bad():int, 34, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.mField2`,,access to `this.mField2`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.afterReentrantLockUnlockBad():void, 45, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.afterUnlockBad():void, 39, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.afterWriteLockUnlockBad():void, 51, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.lockInLoopLexicalBad(int):void, 247, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.negatedReentrantLockTryLockBad():void, 112, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.nested1Bad():void, 195, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.nested2Bad():void, 201, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.nested3Bad():void, 211, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.readOutsideLock1Bad():boolean, 307, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.mField`,,access to `this.mField`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.readOutsideLock2Bad():boolean, 311, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.mField`,,access to `this.mField`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.tryLockNoCheckBad():void, 92, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.tryLockWrongBranchBad():void, 98, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.unownedReadBad():java.lang.Object, 362, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.mField3`,,call to void Locks.lockedWriteInCallee2(),access to `this.mField3`] +codetoanalyze/java/racerd/Locks.java, codetoanalyze.java.checkers.Locks.useLockInCalleeBad():void, 221, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.(codetoanalyze.java.checkers.Obj,java.lang.Object), 65, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `obj.f`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.cantOwnThisBad():void, 170, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void Ownership.setField(Obj),access to `this.field`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.castThenCallBad():void, 343, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void Ownership.castThenCall(Obj),call to void Subclass.doWrite(),access to `this.f`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.conditionalAliasBad(codetoanalyze.java.checkers.Obj):void, 510, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void Ownership.conditionalAlias(Obj,Obj),access to `alias.f`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.notOwnedInCalleeBad(codetoanalyze.java.checkers.Obj):void, 232, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void Ownership.mutateIfNotNull(Obj),access to `o.f`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.notPropagatingOwnershipToAccessPathRootedAtFormalBad(codetoanalyze.java.checkers.Obj):void, 420, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `m.g`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.notPropagatingOwnershipToUnownedLocalAccessPathBad():void, 427, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.field`,,call to void Ownership.setField(Obj),access to `this.field`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.notPropagatingOwnershipToUnownedLocalAccessPathBad():void, 429, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `m.g`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.ownInOneBranchBad(codetoanalyze.java.checkers.Obj,boolean):void, 81, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `formal.f`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.readGlobalBad():int, 402, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `checkers.Ownership.global`,,access to `checkers.Ownership.global`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.reassignToFormalBad(codetoanalyze.java.checkers.Obj):void, 86, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `formal.g`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.reassignToFormalBad(codetoanalyze.java.checkers.Obj):void, 87, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `formal.g`,,access to `formal.g`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.writeToNotOwnedInCalleeBad1(codetoanalyze.java.checkers.Obj):void, 156, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void Ownership.writeToFormal(Obj),access to `formal.f`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.writeToNotOwnedInCalleeBad2():void, 161, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void Ownership.writeToFormal(Obj),access to `formal.f`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.writeToNotOwnedInCalleeBad3(codetoanalyze.java.checkers.Obj):void, 165, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void Ownership.callWriteToFormal(Obj),call to void Ownership.writeToFormal(Obj),access to `formal.f`] +codetoanalyze/java/racerd/Ownership.java, codetoanalyze.java.checkers.Ownership.writeToOwnedInCalleeOk2():void, 182, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.field`,,access to `this.field`] +codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.conditional2_bad(boolean):void, 130, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.ff`] +codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.conditionalMainThreadWriteBad():void, 219, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void RaceWithMainThread.conditionalMainThreadWrite2(boolean),access to `this.mOnlyWrittenOnMain`] +codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.conditional_isMainThread_ElseBranch_Bad():void, 152, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.ff`] +codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.conditional_isMainThread_Negation_Bad():void, 168, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.ff`] +codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.conditional_isUiThread_ElseBranch_Bad():void, 162, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.ff`] +codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.confusedAssertBad(boolean):void, 191, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.mFld`] +codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.readProtectedUnthreadedBad():void, 98, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f`,,call to void RaceWithMainThread.main_thread_OK(),access to `this.f`] +codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.read_unprotected_unthreaded1_Bad():void, 64, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f1`,,access to `this.f1`] +codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.read_unprotected_unthreaded_Bad():void, 59, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.f`,,call to void RaceWithMainThread.main_thread_OK(),access to `this.f`] +codetoanalyze/java/racerd/RaceWithMainThread.java, codetoanalyze.java.checkers.RaceWithMainThread.writeAfterConditionalMainThreadInCalleeBad():void, 228, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.mSharedField`] +codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.callUnprotecteReadInCallee():java.lang.Object, 74, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,call to Object ReadWriteRaces.unprotectedReadInCallee(),access to `this.field1`,,access to `this.field1`] +codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.m1():void, 44, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.racy`,,access to `this.racy`] +codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.m2():void, 48, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.racy`] +codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.m3():void, 52, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.racy`] +codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.readInCalleeOutsideSyncBad(int):void, 103, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,call to int C.get(),access to `this.x`,,call to void C.set(int),access to `this.x`] +codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.unprotectedRead1():java.lang.Object, 66, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.field1`,,access to `this.field1`] +codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.unprotectedRead2():java.lang.Object, 84, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.field2`,,access to `this.field2`] +codetoanalyze/java/racerd/ReadWriteRaces.java, codetoanalyze.java.checkers.ReadWriteRaces.unprotectedRead3():java.lang.Object, 96, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.field3`,,call to void ReadWriteRaces.syncWrite3(),access to `this.field3`] +codetoanalyze/java/racerd/SubFld.java, SubFld.getG():int, 28, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,call to int SuperFld.getG(),access to `this.g`,,access to `this.g`] +codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ExtendsThreadSafeExample.newmethodBad():void, 141, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.field`] +codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ExtendsThreadSafeExample.tsOK():void, 146, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.field`] +codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.FP_lazyInitOk():java.lang.Object, 130, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.sStaticField`,,access to `this.sStaticField`] +codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.callPublicMethodBad():void, 57, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void ThreadSafeExample.assignInPrivateMethodOk(),access to `this.f`] +codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.callVisibleForTestingBad():void, 109, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void ThreadSafeExample.visibleForTestingNotPublicOk(),access to `this.f`] +codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.deeperTraceBad():void, 66, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void ThreadSafeExample.callAssignInPrivateMethod(),call to void ThreadSafeExample.assignInPrivateMethodOk(),access to `this.f`] +codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.oddBad():void, 47, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [call to void ThreadSafeExample.evenOk(),access to `this.f`] +codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.recursiveBad():void, 37, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.ThreadSafeExample.tsBad():void, 33, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.f`] +codetoanalyze/java/racerd/ThreadSafeExample.java, codetoanalyze.java.checkers.YesThreadSafeExtendsNotThreadSafeExample.subsubmethodBad():void, 168, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.subsubfield`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.readSameFieldAsThreadSafeMethod1Bad():java.lang.Object, 54, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.field1`,,access to `this.field1`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.readSameFieldAsThreadSafeMethod2Bad():java.lang.Object, 78, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.field4`,,access to `this.field4`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.readSameFieldAsThreadSafeMethodWhileSynchronized1Bad():java.lang.Object, 63, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.field1`,,access to `this.field1`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.threadSafeMethodReadBad():java.lang.Object, 28, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.field2`,,access to `this.field2`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.threadSafeMethodWriteBad():void, 23, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.field1`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.threadSafePrivateMethodBad():void, 33, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.field2`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.threadSafeVisibleForTestingMethodBad():void, 39, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.field3`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.writeSameFieldAsThreadSafeMethod1Bad():void, 49, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.field1`,,access to `this.field1`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethods.writeSameFieldAsThreadSafeMethod2Bad():void, 73, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.field4`,,access to `this.field4`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.readThreadSafeFieldOfOverrideBad():java.lang.Object, 123, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.subclassField`,,access to `this.subclassField`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.safeMethodOverride():void, 107, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [access to `this.subclassField`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.writeThreadSafeFieldOfOverrideBad():void, 119, THREAD_SAFETY_VIOLATION, no_bucket, WARNING, [,access to `this.subclassField`,,access to `this.subclassField`] diff --git a/infer/tests/codetoanalyze/objcpp/racerd/issues.exp b/infer/tests/codetoanalyze/objcpp/racerd/issues.exp index 769bc4287..7eae5ce97 100644 --- a/infer/tests/codetoanalyze/objcpp/racerd/issues.exp +++ b/infer/tests/codetoanalyze/objcpp/racerd/issues.exp @@ -1,2 +1,2 @@ -codetoanalyze/objcpp/racerd/Basic.mm, Basic::read_bad, 21, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `self._data`,,access to `self._data`] -codetoanalyze/objcpp/racerd/Private.mm, Private::read_other_bad, 28, LOCK_CONSISTENCY_VIOLATION, no_bucket, ERROR, [,access to `self._other_data`,,access to `self._other_data`] +codetoanalyze/objcpp/racerd/Basic.mm, Basic::read_bad, 21, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `self._data`,,access to `self._data`] +codetoanalyze/objcpp/racerd/Private.mm, Private::read_other_bad, 28, LOCK_CONSISTENCY_VIOLATION, no_bucket, WARNING, [,access to `self._other_data`,,access to `self._other_data`]