diff --git a/src/test/java/com/virtuslab/archunit/UiThreadUnsafeMethodInvocationsTestSuite.java b/src/test/java/com/virtuslab/archunit/UiThreadUnsafeMethodInvocationsTestSuite.java index 59c78091cb..71d164eb87 100644 --- a/src/test/java/com/virtuslab/archunit/UiThreadUnsafeMethodInvocationsTestSuite.java +++ b/src/test/java/com/virtuslab/archunit/UiThreadUnsafeMethodInvocationsTestSuite.java @@ -73,9 +73,11 @@ public void check(JavaMethod method, ConditionEvents events) { } } - method.getCallsFromSelf().forEach(access -> { - AccessTarget accessTarget = access.getTarget(); - if (accessTarget.isAnnotatedWith(UIThreadUnsafe.class)) { + method.getCallsFromSelf().forEach(call -> { + AccessTarget accessTarget = call.getTarget(); + if (call.isDeclaredInLambda()) { + // ignore + } else if (accessTarget.isAnnotatedWith(UIThreadUnsafe.class)) { String message = "a non-${UIThreadUnsafeName} method ${method.getFullName()} " + "calls a ${UIThreadUnsafeName} method ${accessTarget.getFullName()}"; events.add(SimpleConditionEvent.violated(method, message)); @@ -156,7 +158,9 @@ public void check(JavaMethod method, ConditionEvents events) { AccessTarget.CodeUnitCallTarget callTarget = call.getTarget(); String callTargetPackageName = callTarget.getOwner().getPackageName(); String calledMethodFullName = callTarget.getFullName(); - if (callTargetPackageName.startsWith("git4idea")) { + if (call.isDeclaredInLambda()) { + // ignore + } else if (callTargetPackageName.startsWith("git4idea")) { if (!Arrays.asList(whitelistedMethodFullNames_git4idea).contains(calledMethodFullName)) { String message = "a non-${UIThreadUnsafeName} method ${method.getFullName()} " + "calls method ${calledMethodFullName} from git4idea";