< prev index next >
test/hotspot/jtreg/runtime/InvocationTests/invokevirtual/Checker.java
Print this page
*** 86,96 ****
// TODO: ? need to find out the right behavior
if (staticTargetMethod == null) {
return null;
}
! // Dynamic target doesn't have desired method, so check it's superclass
if (dynamicTargetMethod == null) {
return getOverriddenMethod(staticTarget, dynamicTarget.getSuperclass());
} else {
// Private method can't override anything
if (Modifier.isPrivate(dynamicTargetMethod.getModifiers())) {
--- 86,96 ----
// TODO: ? need to find out the right behavior
if (staticTargetMethod == null) {
return null;
}
! // Dynamic target doesn't have desired method, so check its superclass
if (dynamicTargetMethod == null) {
return getOverriddenMethod(staticTarget, dynamicTarget.getSuperclass());
} else {
// Private method can't override anything
if (Modifier.isPrivate(dynamicTargetMethod.getModifiers())) {
*** 107,121 ****
boolean isProtected = Modifier.isProtected(staticTargetModifiers);
boolean isPrivate = Modifier.isPrivate(staticTargetModifiers) ;
String staticTargetPkg = getClassPackageName(staticTarget);
String dynamicTargetPkg = getClassPackageName(dynamicTarget);
! if ( isPublic || isProtected
! || ( !isPublic && !isProtected && !isPrivate
! && staticTargetPkg.equals(dynamicTargetPkg)
! ))
! {
return dynamicTargetMethod;
}
}
// OR
//Assertion #3.b: exists m3: C.m1 != B.m3, A.m2 != B.m3, B.m3 overrides A.m2, C.m1 overrides B.m3
--- 107,119 ----
boolean isProtected = Modifier.isProtected(staticTargetModifiers);
boolean isPrivate = Modifier.isPrivate(staticTargetModifiers) ;
String staticTargetPkg = getClassPackageName(staticTarget);
String dynamicTargetPkg = getClassPackageName(dynamicTarget);
! if (isPublic || isProtected
! || (!isPublic && !isProtected && !isPrivate
! && staticTargetPkg.equals(dynamicTargetPkg))) {
return dynamicTargetMethod;
}
}
// OR
//Assertion #3.b: exists m3: C.m1 != B.m3, A.m2 != B.m3, B.m3 overrides A.m2, C.m1 overrides B.m3
< prev index next >