Error when multiple qualifier annotations include a qualifier with an array of annotations
- Dominant language
- Java
- Stars
- 7.2k
- Forks
- 820
- Avg merge
- 5h 9m
- Merged PRs (30d)
- 50
Description
Please answer these questions before submitting your issue. Thanks!
### What version of Error Prone are you using?
2.3.1
### Does this issue reproduce with the latest release?
Yes
### What did you do?
I built a class with the following pax-cdi-api annotations:
```
@Service
@Component
@Contracts({ @Contract(JobCoordinator.class), @Contract(JobCoordinatorMonitor.class) })
```
(the classes in question are from https://git.opendaylight.org/gerrit/gitweb?p=infrautils.git;a=tree;f=jobcoordinator/jobcoordinator-impl/src/main/java/org/opendaylight/infrautils/jobcoordinator/internal;h=e46e3ad11b11df66b18df6a17b2d49db59e90257;hb=HEAD — replace ``OsgiServiceProvider`` with the above annotations).
### What did you expect to see?
Warnings about multiple qualifier annotations.
### What did you see instead?
```
[ERROR] /home/skitt/ODL/infrautils/jobcoordinator/jobcoordinator-impl/src/main/java/org/opendaylight/infrautils/jobcoordinator/internal/JobCoordinatorImpl.java:[59,14] An unhandled exception was thrown by the Error Prone static analysis plugin.
[ERROR] Please report this at https://github.com/google/error-prone/issues/new and include the following:
[ERROR]
[ERROR] error-prone version: 2.3.1
[ERROR] BugPattern: InjectMoreThanOneQualifier
[ERROR] Stack Trace:
[ERROR] java.lang.ClassCastException: com.sun.tools.javac.tree.JCTree$JCNewArray cannot be cast to com.sun.source.tree.ModifiersTree
[ERROR] at com.google.errorprone.bugpatterns.inject.MoreThanOneQualifier.getSiblingAnnotations(MoreThanOneQualifier.java:68)
[ERROR] at com.google.errorprone.bugpatterns.inject.MoreThanOneQualifier.matchAnnotation(MoreThanOneQualifier.java:55)
[ERROR] at com.google.errorprone.scanner.ErrorProneScanner.visitAnnotation(ErrorProneScanner.java:416)
[ERROR] at com.google.errorprone.scanner.ErrorProneScanner.visitAnnotation(ErrorProneScanner.java:145)
[ERROR] at com.sun.tools.javac.tree.JCTree$JCAnnotation.accept(JCTree.java:2574)
[ERROR] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR] at com.google.errorprone.scanner.Scanner.scan(Scanner.java:82)
[ERROR] at com.google.errorprone.scanner.Scanner.scan(Scanner.java:42)
[ERROR] at com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
[ERROR] at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
[ERROR] at com.sun.source.util.TreeScanner.visitNewArray(TreeScanner.java:541)
[ERROR] at com.google.errorprone.scanner.ErrorProneScanner.visitNewArray(ErrorProneScanner.java:940)
[ERROR] at com.google.errorprone.scanner.ErrorProneScanner.visitNewArray(ErrorProneScanner.java:145)
[ERROR] at com.sun.tools.javac.tree.JCTree$JCNewArray.accept(JCTree.java:1751)
[ERROR] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR] at com.google.errorprone.scanner.Scanner.scan(Scanner.java:82)
[ERROR] at com.google.errorprone.scanner.Scanner.scan(Scanner.java:42)
[ERROR] at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
[ERROR] at com.sun.source.util.TreeScanner.visitAssignment(TreeScanner.java:585)
[ERROR] at com.google.errorprone.scanner.ErrorProneScanner.visitAssignment(ErrorProneScanner.java:497)
[ERROR] at com.google.errorprone.scanner.ErrorProneScanner.visitAssignment(ErrorProneScanner.java:145)
```
Contributor guide
Assessment
This issue has not been assessed yet.