@@ -24,6 +24,7 @@ public class LambdaHandlerInitedWithRandomValue extends OpcodeStackDetector {
2424
2525 private final BugReporter bugReporter ;
2626 private boolean isLambdaHandlerClass ;
27+ private boolean isLambdaHandlerParentClass ;
2728 private boolean implementsFunctionalInterface ;
2829 private boolean isLambdaHandlerField ;
2930 private boolean isCracResource ;
@@ -36,6 +37,7 @@ public class LambdaHandlerInitedWithRandomValue extends OpcodeStackDetector {
3637 public LambdaHandlerInitedWithRandomValue (BugReporter bugReporter ) {
3738 this .bugReporter = bugReporter ;
3839 this .isLambdaHandlerClass = false ;
40+ this .isLambdaHandlerParentClass = false ;
3941 this .implementsFunctionalInterface = false ;
4042 this .isLambdaHandlerField = false ;
4143 this .isCracResource = false ;
@@ -52,6 +54,7 @@ public void visit(JavaClass obj) {
5254 inCracBeforeCheckpoint = false ;
5355 XClass xClass = getXClass ();
5456 isLambdaHandlerClass = introspector .isLambdaHandler (xClass );
57+ isLambdaHandlerParentClass = introspector .isLambdaHandlerParentClass (xClass );
5558 implementsFunctionalInterface = introspector .implementsFunctionalInterface (xClass );
5659 isLambdaHandlerField = introspector .isLambdaHandlerField (xClass );
5760 isCracResource = introspector .isCracResource (xClass );
@@ -60,7 +63,7 @@ public void visit(JavaClass obj) {
6063 @ Override
6164 public boolean shouldVisitCode (Code code ) {
6265 boolean shouldVisit = false ;
63- if (isLambdaHandlerClass || implementsFunctionalInterface || isLambdaHandlerField ) {
66+ if (isLambdaHandlerClass || implementsFunctionalInterface || isLambdaHandlerField || isLambdaHandlerParentClass ) {
6467 inStaticInitializer = getMethodName ().equals (Const .STATIC_INITIALIZER_NAME );
6568 inInitializer = getMethodName ().equals (Const .CONSTRUCTOR_NAME );
6669 database = Global .getAnalysisCache ().getDatabase (ReturnValueRandomnessPropertyDatabase .class );
0 commit comments