-
Bug
-
Resolution: Fixed
-
P3
-
1.2.0
-
1.2beta3
-
sparc
-
solaris_2.5
-
Not verified
Name: szC45993 Date: 01/19/98
The JCK invokeinterface02001 test (see source below) discovers
that inappropriate AbstractMethodError exception is thrown under
the interface nonpublic method invocation for 1.2b3C JVM on WinNT.
The jvm spec (6.4 The Java Virtual Machine Instruction Set) demands
the rising of the IllegalAccessError in this case.
LOG:
? export CLASSPATH="H:\\ld32\\sqe\\harness_win\\classes;H:\\ld32\\for_WinNT\\classes"
? H:\\ld14\\java\\dest\\jdk1.2b3C\\win32\\bin\\java -verify javasoft.sqe.tests.vm.invokeinterface.invokeinterface020.invokeinterface02001.invokeinterface02001
java.lang.AbstractMethodError: f1
at javasoft.sqe.tests.vm.invokeinterface.invokeinterface020.invokeinterface02001.invokeinterface02001.run(invokeinterface02001.jasm)
at javasoft.sqe.tests.vm.invokeinterface.invokeinterface020.invokeinterface02001.invokeinterface02001.main(invokeinterface02001.jasm)
SOURCES:
--------------------- invokeinterface02001.jasm
// Ident: @(#)invokeinterface02001.jasm 1.9 97/05/24
// Copyright 05/24/97 Sun Microsystems, Inc. All Rights Reserved
package javasoft/sqe/tests/vm/invokeinterface/invokeinterface020/invokeinterface02001;
public interface i {
public abstract Method f1:"(IF)I";
} // end class i
public class clss implements i {
private Method f1:"(IF)I"
stack 1 locals 3
{
iconst_0;
ireturn;
}
public Method <init>:"()V"
stack 1 locals 1
{
aload_0;
invokenonvirtual Method java/lang/Object.<init>:"()V";
return;
}
} // end class clss
public class invokeinterface02001 {
public static Method run:"([Ljava/lang/String;Ljava/io/PrintStream;)I"
stack 6 locals 4
{
try t1;
new class clss;
dup;
invokenonvirtual Method clss.<init>:"()V";
iconst_1;
fconst_1;
invokeinterface InterfaceMethod i.f1:"(IF)I", 3;
iconst_2; // no exception - test failed
ireturn;
endtry t1;
catch t1 java/lang/IllegalAccessError;
iconst_0; // passed
ireturn;
}
public static Method main:"([Ljava/lang/String;)V"
stack 2 locals 1
{
aload_0;
getstatic Field java/lang/System.out:"Ljava/io/PrintStream;";
invokestatic Method run:"([Ljava/lang/String;Ljava/io/PrintStream;)I";
bipush 95/*STATUS_TEMP*/;
iadd;
invokestatic Method java/lang/System.exit:"(I)V";
return;
}
} // end Class invokeinterface02001
---------------------
Hook 5(hook5): test
======================================================================
- relates to
-
JDK-4168130 (jit) AbstractMethodError instead of IllegalAccessError
- Closed