Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4104856

AbstractMethodError instead of IllegalAccessError

XMLWordPrintable

    • 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

      ======================================================================

            sliangsunw Sheng Liang (Inactive)
            zsssunw Zss Zss (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: