-
Bug
-
Resolution: Won't Fix
-
P4
-
None
-
1.1.5, 1.1.6
-
x86, sparc
-
solaris_2.4, windows_nt
Name: akC45999 Date: 03/09/98
Java Virtual Machine Specification reads (5.5.3c Method resolution):
If C is an interface, method resolution throws an IncompatibleClassChangeError.
JDK 1.1.6 dumps core instead.
Note JVK 1.2 passes the test.
========================== invokevirtual01801.jasm
// Ident: @(#)invokevirtual01801.jasm 1.1 98/03/10
// Copyright 03/10/98 Sun Microsystems, Inc. All Rights Reserved
//package javasoft/sqe/tests/vm/invokevirtual/invokevirtual018/invokevirtual01801;
interface invokevirtual01801i {
abstract public Method m:"()V";
}
public class invokevirtual01801 implements invokevirtual01801i {
public Method m:"()V"
stack 1 locals 1
{
return;
}
public static Method run:"([Ljava/lang/String;Ljava/io/PrintStream;)I"
stack 2 locals 2
{
new invokevirtual01801;
dup;
invokespecial Method invokevirtual01801.<init>:"()V";
// invokevirtual Method invokevirtual01801.m:"()V"; // right
// following instruction must cause an error:
invokevirtual Method invokevirtual01801i.m:"()V"; // wrong
iconst_0;
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;
}
public Method <init>:"()V"
stack 2 locals 1
{
aload_0;
invokenonvirtual Method java/lang/Object.<init>:"()V";
return;
}
} // end Class invokevirtual01801
================================================
novo64% jasm invokevirtual01801.jasm
novo64% setenv CLASSPATH .
novo64% java invokevirtual01801
SIGSEGV 11* segmentation violation
si_signo [11]: SIGSEGV 11* segmentation violation
si_errno [0]: Error 0
si_code [1]: SEGV_MAPERR [addr: 0x38]
stackbase=EFFFF5F0, stackpointer=EFFFF330
Full thread dump:
"Finalizer thread" (TID:0xee700208, sys_thread_t:0xee2c1db8, state:R) prio=1
"Async Garbage Collector" (TID:0xee700250, sys_thread_t:0xee2f1db8, state:R) prio=1
.....
======================================================================