FieldMatchers throws null pointer exception on primitive class literals (e.g. `long.class`)
- Dominant language
- Java
- Stars
- 7.2k
- Forks
- 820
- Avg merge
- 5h 9m
- Merged PRs (30d)
- 50
Description
`FieldMatchers.anyFieldInClass()` (and likely other `FieldMatchers` methods) throws a `NullPointerException` when a `MemberSelectTreeMatcher` checker encounters a primitive class literal such as `long.class`, `int.class`, etc.
## To reproduce
Create a BugChecker that implements `MemberSelectTreeMatcher` and uses `FieldMatchers.anyFieldInClass(...)` in its matcher. Compile any code that contains a primitive class literal (e.g. `long.class`).
```java
@AutoService(BugChecker.class)
@BugPattern(summary = "Example checker", severity = SeverityLevel.ERROR, linkType = LinkType.NONE)
public final class ExampleChecker extends BugChecker implements MemberSelectTreeMatcher {
private static final Matcher MATCHER =
FieldMatchers.anyFieldInClass("com.example.SomeClass");
@Override
public Description matchMemberSelect(MemberSelectTree tree, VisitorState state) {
if (MATCHER.matches(tree, state)) {
return describeMatch(tree);
}
return Description.NO_MATCH;
}
}
```
Compiling any code containing `long.class` (or another primitive `.class` literal) with this checker active will crash with a NPE.
Contributor guide
Assessment
This issue has not been assessed yet.