< prev index next >
test/hotspot/jtreg/vmTestbase/vm/runtime/defmeth/BasicTest.java
Print this page
rev 50287 : imported patch jep181-rev3
@@ -79,11 +79,11 @@
Class expectedClass;
if (factory.getExecutionMode().equals("REFLECTION")) {
expectedClass = IllegalArgumentException.class;
} else if (factory.getExecutionMode().equals("INVOKE_WITH_ARGS")) {
// Notes from JDK-8029926 which details reasons behind CCE.
- // The code below demonstrates the use of a MethodHandle
+ // The code below demonstrates the use of a MethodHandle
// of kind REF_invokeInterface pointing to method I.m.
// Because 'invoke' is called, this MethodHandle is effectively
// wrapped in the type adaptations necessary to accept a C
// as the first argument. ***Before we even get to the point
// of the invokeinterface call to I.m***, the adaptation
@@ -155,42 +155,42 @@
.run();
}
/*
- * Default method override w/ non-public concrete method
+ * Default method override attempt w/ non-public concrete method.
+ * Private methods never override any other method.
*
- * interface I { void m() default {} }
- * class C implements I {
- * [private/package-private/protected]
- * void m() {}
+ * interface I { int m() default { returns 1; } }
+ * class C/D/E implements I {
+ * [private/protected/package-private]
+ * int m() { returns 2;}
* }
*
*/
- @KnownFailure(modes = {INVOKE_EXACT, INVOKE_GENERIC, INVOKE_WITH_ARGS, INDY}) // NPE, instead of IAE
public void testNonPublicOverride() {
TestBuilder b = factory.getBuilder();
Interface I = b.intf("I")
- .defaultMethod("m","()V").emptyBody().build()
+ .defaultMethod("m", "()I").returns(1).build()
.build();
ConcreteClass C = b.clazz("C").implement(I)
- .concreteMethod("m", "()V").private_().emptyBody().build()
+ .concreteMethod("m", "()I").private_().returns(2).build()
.build();
ConcreteClass D = b.clazz("D").implement(I)
- .concreteMethod("m", "()V").protected_().emptyBody().build()
+ .concreteMethod("m", "()I").protected_().returns(2).build()
.build();
ConcreteClass E = b.clazz("E").implement(I)
- .concreteMethod("m", "()V").package_private().emptyBody().build()
+ .concreteMethod("m", "()I").package_private().returns(2).build()
.build();
- b.test().callSite(I, C, "m", "()V").throws_(IllegalAccessError.class).done()
- .test().callSite(I, D, "m", "()V").throws_(IllegalAccessError.class).done()
- .test().callSite(I, E, "m", "()V").throws_(IllegalAccessError.class).done()
+ b.test().callSite(I, C, "m", "()I").returns(1).done()
+ .test().callSite(I, D, "m", "()I").throws_(IllegalAccessError.class).done()
+ .test().callSite(I, E, "m", "()I").throws_(IllegalAccessError.class).done()
.run();
}
< prev index next >