Harmony
  1. Harmony
  2. HARMONY-875

[classlib][ibm vme] unexpected ClassFormatError for the method ClassLoader.defineClass(name, array, 4, -2);

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Classlib
    • Labels:
      None

      Description

      The Harmony API+j9 throws ClassFormatError for the method ClassLoader.defineClass(name, array, 4, -2); while RI and API+DRLVM throws ArrayIndexOutOfBoundsException and IndexOutOfBoundsException.

      ================ test.java ======================
      public class test {

      public static void main(String[] args) {
      try {
      testCL cl = new testCL();
      String name = "0";
      byte[] array0 = new byte[]

      { 2, 2, 2, 2, 2, 2, 2}

      ;
      cl.defineKlass(name, array0, 4, -2);
      System.out.println("Test failed");
      } catch (IndexOutOfBoundsException e)

      { System.out.println("Test passed: "+e); }

      catch (Throwable e)

      { System.out.println("Test failed: "+e); }

      }
      }
      class testCL extends ClassLoader {
      public Class defineKlass(String s, byte[] ar, int i1, int i2) throws ClassFormatError

      { return super.defineClass(s, ar, i1, i2); }

      }
      =============================================

      output:
      C:\tmp\tmp17>C:\jrockit-jdk1.5.0-windows-ia32\bin\java.exe -cp . -showversion test
      java version "1.5.0"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
      BEA WebLogic JRockit(R) (build dra-38972-20041208-2001-win-ia32, R25.0.0-75, GC: System optimized over throughput (initial strategy singleparpar))

      Test passed: java.lang.ArrayIndexOutOfBoundsException

      C:\tmp\tmp17>C:\harmony\trunk_0427\deploy\jdk\jre\bin\java.exe -cp . -showversion test
      java version 1.5 (subset)

      (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
      Test failed: java.lang.ClassFormatError: (0) unexpected EOF at offset=-2

      C:\tmp\tmp17>C:\harmony\drlvm\trunk\build\win_ia32_msvc_debug\deploy\jre\bin\ij -cp . -showversion test
      Apache Harmony DRLVM HEAD-4807 (2006-05-02), Windows/ia32/msvc 1310, debug
      Test passed: java.lang.IndexOutOfBoundsException: Check your arguments

        Activity

        Hide
        Vera Volynets added a comment -

        This bug is not reproduced on windows ia_32.
        Test run results:
        Test passed: java.lang.IndexOutOfBoundsException: Either offset or len is outside of the data array
        I'll check it on other platform.

        Show
        Vera Volynets added a comment - This bug is not reproduced on windows ia_32. Test run results: Test passed: java.lang.IndexOutOfBoundsException: Either offset or len is outside of the data array I'll check it on other platform.

          People

          • Assignee:
            Tim Ellison
            Reporter:
            Vladimir Ivanov
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:

              Development