We made modifications to the IndirectStarvation.java file, where we converted anonymous classes to lambda expressions. After making this change, we ran the Infer analysis using the following command: sudo make direct_java_starvation-whole-program_test. However, we observed inconsistencies between the results in issues.exp.test and the expected results in issues.exp.
We expect Infer to detect certain converted code to get results in the issues.exp.test file similar to the ones mentioned in issues.exp. However, the result for IndirectStarvation.java is different. The STARVATION issue does not appear in issues.exp.test. Therefore, we consider it a false negative.
Steps to Reproduce:
Convert anonymous classes to lambda expressions in IndirectStarvation.java.
Run the command: sudo make direct_java_starvation-whole-program_test.
Compare the analysis results in issues.exp.test with the expected results in issues.exp.
Code Samples:
Original code in IndirectStarvation.java:
class IndirectStarvation {
static Binder binder;
@ForUiThread
private final Executor mUiThreadExecutor = null;
@ForNonUiThread
private final Executor mNonUiThreadExecutor = null;
private static void doTransact() {
try {
binder.transact(0, null, null, 0);
} catch (RemoteException e) {
}
}
Object monitorA;
public void postBlockingCallToBackgroundThreadAndLockBad() {
mUiThreadExecutor.execute(
new Runnable() {
@Override
public void run() {
synchronized (monitorA) {
}
}
});
mNonUiThreadExecutor.execute(
new Runnable() {
@Override
public void run() {
synchronized (monitorA) {
doTransact();
}
}
});
}
}
This issue is similar with issue #1775 .
Environment
Infer Version: v1.1.0-f93cb281ed
Operating System: Ubuntu 20.04.5 LTS
Description:
We made modifications to the
IndirectStarvation.java
file, where we converted anonymous classes to lambda expressions. After making this change, we ran the Infer analysis using the following command:sudo make direct_java_starvation-whole-program_test
. However, we observed inconsistencies between the results inissues.exp.test
and the expected results inissues.exp
.We expect Infer to detect certain converted code to get results in the
issues.exp.test
file similar to the ones mentioned inissues.exp
. However, the result forIndirectStarvation.java
is different. TheSTARVATION
issue does not appear inissues.exp.test
. Therefore, we consider it a false negative.Steps to Reproduce:
IndirectStarvation.java
.sudo make direct_java_starvation-whole-program_test
.issues.exp.test
with the expected results inissues.exp
.Code Samples:
Original code in
IndirectStarvation.java
:Converted code in
IndirectStarvation.java
:Content in
issue.exp
: