google / google/error-prone

Error when multiple qualifier annotations include a qualifier with an array of annotations

Open
#1,105 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.