-
Notifications
You must be signed in to change notification settings - Fork 785
Open
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).
@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<ExpressionTree> 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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels