GuardedBy check doesn't like incorrect class names
- Dominant language
- Java
- Stars
- 7.2k
- Forks
- 820
- Avg merge
- 5h 9m
- Merged PRs (30d)
- 50
Description
### Description of the problem / feature request:
While running error prone the following error was printed after a refactor:
```
:25: error: [GuardedBy] Invalid @GuardedBy expression: could not resolve guard
private static AisrvHttpClientFactory instance;
^
(see https://errorprone.info/bugpattern/GuardedBy)
:126: error: An unhandled exception was thrown by the Error Prone static analysis plugin.
public CloseableHttpClient getHttpClient() {
^
Please report this at https://github.com/google/error-prone/issues/new and include the following:
error-prone version: 2.3.3
BugPattern: InvalidThrows
Stack Trace:
java.lang.NullPointerException
at com.google.errorprone.bugpatterns.javadoc.InvalidThrows$ThrowsChecker.visitThrows(InvalidThrows.java:78)
at com.google.errorprone.bugpatterns.javadoc.InvalidThrows$ThrowsChecker.visitThrows(InvalidThrows.java:62)
at com.sun.tools.javac.tree.DCTree$DCThrows.accept(DCTree.java:871)
at com.sun.source.util.DocTreePathScanner.scan(DocTreePathScanner.java:71)
at com.sun.source.util.DocTreeScanner.scan(DocTreeScanner.java:98)
at com.sun.source.util.DocTreeScanner.scanAndReduce(DocTreeScanner.java:106)
at com.sun.source.util.DocTreeScanner.visitDocComment(DocTreeScanner.java:185)
at com.sun.tools.javac.tree.DCTree$DCDocComment.accept(DCTree.java:132)
at com.sun.source.util.DocTreePathScanner.scan(DocTreePathScanner.java:50)
at com.google.errorprone.bugpatterns.javadoc.InvalidThrows.matchMethod(InvalidThrows.java:57)
at com.google.errorprone.scanner.ErrorProneScanner.processMatchers(ErrorProneScanner.java:433)
at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:725)
at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:150)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:898)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
at com.google.errorprone.scanner.Scanner.scan(Scanner.java:71)
at com.google.errorprone.scanner.Scanner.scan(Scanner.java:45)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
at com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:187)
at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:535)
at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:150)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:808)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
at com.google.errorprone.scanner.Scanner.scan(Scanner.java:71)
at com.google.errorprone.scanner.Scanner.scan(Scanner.java:45)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
at com.sun.source.util.TreeScanner.visitCompilationUnit(TreeScanner.java:144)
at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:546)
at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:150)
at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:591)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:56)
at com.google.errorprone.scanner.Scanner.scan(Scanner.java:55)
at com.google.errorprone.scanner.ErrorProneScannerTransformer.apply(ErrorProneScannerTransformer.java:43)
at com.google.errorprone.ErrorProneAnalyzer.finished(ErrorProneAnalyzer.java:151)
at com.sun.tools.javac.api.MultiTaskListener.finished(MultiTaskListener.java:120)
at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1404)
at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1353)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:946)
at com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:100)
at com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:142)
at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:96)
at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:90)
at org.gradle.api.internal.tasks.compile.AnnotationProcessingCompileTask.call(AnnotationProcessingCompileTask.java:93)
at org.gradle.api.internal.tasks.compile.ResourceCleaningCompilationTask.call(ResourceCleaningCompilationTask.java:57)
at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:54)
at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:39)
at org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerCallable.call(AbstractDaemonCompiler.java:99)
at org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerCallable.call(AbstractDaemonCompiler.java:79)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:44)
at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:34)
at org.gradle.workers.internal.FlatClassLoaderWorker.execute(FlatClassLoaderWorker.java:33)
at org.gradle.workers.internal.WorkerDaemonServer.execute(WorkerDaemonServer.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:116)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:175)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:157)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:748)
2 errors
```
### Bugs: what's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.
The reference in the `GuardedBy` is to `AISRVHttpClientFactory.class` but the class file is named `AisrvHttpClientFactory.class`. When it was changed to `AisrvHttpClientFactory.class` then the second error out of `InvalidThrows` went away.
### What version of Error Prone are you using?
2.3.3
### Have you found anything relevant by searching the web?
Nope.
Contributor guide
Assessment
This issue has not been assessed yet.