From ccd61ee677140c7e2067d883441f4c1d6cba6799 Mon Sep 17 00:00:00 2001 From: Wojtek Polcwiartek Date: Wed, 17 Dec 2014 11:20:28 +0100 Subject: [PATCH] If a Method can not be found: a log.warn is enough. It can happen with correct code dealing with interfaces --- pom.xml | 5 +++++ .../oss/findbugs/guava/UnexpectedAccessDetector.java | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 03ff437..b3afaf2 100644 --- a/pom.xml +++ b/pom.xml @@ -175,6 +175,11 @@ mockito-all 1.10.8 + + commons-logging + commons-logging + 1.2 + org.hibernate.javax.persistence diff --git a/src/main/java/jp/co/worksap/oss/findbugs/guava/UnexpectedAccessDetector.java b/src/main/java/jp/co/worksap/oss/findbugs/guava/UnexpectedAccessDetector.java index f88274b..401c53f 100644 --- a/src/main/java/jp/co/worksap/oss/findbugs/guava/UnexpectedAccessDetector.java +++ b/src/main/java/jp/co/worksap/oss/findbugs/guava/UnexpectedAccessDetector.java @@ -8,6 +8,8 @@ import org.apache.bcel.classfile.AnnotationEntry; import org.apache.bcel.classfile.JavaClass; import org.apache.bcel.classfile.Method; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import com.google.common.annotations.VisibleForTesting; @@ -29,6 +31,8 @@ public class UnexpectedAccessDetector extends BytecodeScanningDetector { @Nonnull private final BugReporter bugReporter; + private final transient Log log = LogFactory.getLog(this.getClass()); + /** * @param bugReporter */ @@ -68,7 +72,7 @@ void verifyVisibility(ClassDescriptor invokedClass, MethodDescriptor invokedMeth JavaClass bcelClass = Repository.getRepository().loadClass(invokedClass.getDottedClassName()); Method bcelMethod = findMethod(bcelClass, invokedMethod); - if (checkVisibility(bcelMethod) && checkAnnotated(bcelMethod)) { + if (bcelMethod != null && checkVisibility(bcelMethod) && checkAnnotated(bcelMethod)) { BugInstance bug = new BugInstance(this, "GUAVA_UNEXPECTED_ACCESS_TO_VISIBLE_FOR_TESTING", HIGH_PRIORITY); if (reportCaller) { bug.addCalledMethod(this).addClassAndMethod(this).addSourceLine(this); @@ -85,8 +89,8 @@ Method findMethod(JavaClass bcelClass, MethodDescriptor invokedMethod) { return bcelMethod; } } - - throw new IllegalArgumentException("Method not found: " + invokedMethod); + log.warn("Method not found: " + invokedMethod); + return null; } /**