mirror of
https://github.com/openjdk/jdk.git
synced 2026-01-28 12:09:14 +00:00
8242802: javac crashes when checking equals and hashCode in unresolvable anonymous class
Preventing NullPointerException when a class has an erroneous supertype and does not have an implementation of the equals method. Reviewed-by: darcy, vromero
This commit is contained in:
parent
f08b5a8006
commit
df82d9a4b5
@ -2145,8 +2145,10 @@ public class Check {
|
||||
.tsym.members().findFirst(names.equals);
|
||||
MethodSymbol hashCodeAtObject = (MethodSymbol)syms.objectType
|
||||
.tsym.members().findFirst(names.hashCode);
|
||||
boolean overridesEquals = types.implementation(equalsAtObject,
|
||||
someClass, false, equalsHasCodeFilter).owner == someClass;
|
||||
MethodSymbol equalsImpl = types.implementation(equalsAtObject,
|
||||
someClass, false, equalsHasCodeFilter);
|
||||
boolean overridesEquals = equalsImpl != null &&
|
||||
equalsImpl.owner == someClass;
|
||||
boolean overridesHashCode = types.implementation(hashCodeAtObject,
|
||||
someClass, false, equalsHasCodeFilter) != hashCodeAtObject;
|
||||
|
||||
|
||||
12
test/langtools/tools/javac/6563143/InvalidAnonymous.java
Normal file
12
test/langtools/tools/javac/6563143/InvalidAnonymous.java
Normal file
@ -0,0 +1,12 @@
|
||||
/*
|
||||
* @test /nodynamiccopyright/
|
||||
* @bug 8242802
|
||||
* @summary Verify javac does not crash while checking for equals/hashCode overrides
|
||||
* @compile/fail/ref=InvalidAnonymous.out -XDrawDiagnostics InvalidAnonymous.java
|
||||
* @compile/fail/ref=InvalidAnonymous.out -XDrawDiagnostics -Xlint:overrides InvalidAnonymous.java
|
||||
*/
|
||||
public class InvalidAnonymous {
|
||||
private void t() {
|
||||
new Undefined() {};
|
||||
}
|
||||
}
|
||||
2
test/langtools/tools/javac/6563143/InvalidAnonymous.out
Normal file
2
test/langtools/tools/javac/6563143/InvalidAnonymous.out
Normal file
@ -0,0 +1,2 @@
|
||||
InvalidAnonymous.java:10:13: compiler.err.cant.resolve.location: kindname.class, Undefined, , , (compiler.misc.location: kindname.class, InvalidAnonymous, null)
|
||||
1 error
|
||||
Loading…
x
Reference in New Issue
Block a user