Harmony
  1. Harmony
  2. HARMONY-1103

[classlib][io] compatibility: different checks order for DataInputStream(null).readFully(byte[], int, int)

    Details

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

      Description

      The harmony method java.io.DataInputStream(null).readFully(byte[], int, int) initially checks boundary values while RI checks stream.
      It leads to different exceptions: NPE for RI and IndexOutOfBoundsException for Harmony.

      ================= test.java =======================
      import java.io.DataInputStream;

      public class test {
      public static void main(String args[]) throws Exception {
      new DataInputStream(null).readFully(new byte[]

      {2, 2, 2, 2}

      , 1, 18);
      }
      }
      ===============================================

      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))

      java.lang.NullPointerException
      at java.io.DataInputStream.readFully(DataInputStream.java:176)
      at test.main(test.java:5)

      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.
      Exception in thread "main" java.lang.IndexOutOfBoundsException
      at java.io.DataInputStream.readFully(DataInputStream.java:205)
      at test.main(test.java:5)

      1. DataInputStream.patch
        2 kB
        Vladimir Ivanov
      2. harmony-1103.diff
        12 kB
        Tony Wu

        Activity

        Hide
        Vladimir Ivanov added a comment -

        unit test + patch

        Show
        Vladimir Ivanov added a comment - unit test + patch
        Hide
        Tony Wu added a comment -

        Because this patch is out of date, I rewrite one and add more testcases.
        Would you please try my patch?

        Show
        Tony Wu added a comment - Because this patch is out of date, I rewrite one and add more testcases. Would you please try my patch?
        Hide
        Paulex Yang added a comment -

        Tony, patch applied at revision r447286, thanks a lot for this enhancement.

        Vladimir, please verify that the problem is fully fixed as you expected.

        Show
        Paulex Yang added a comment - Tony, patch applied at revision r447286, thanks a lot for this enhancement. Vladimir, please verify that the problem is fully fixed as you expected.
        Hide
        Vladimir Ivanov added a comment -

        verified, thanks

        Show
        Vladimir Ivanov added a comment - verified, thanks
        Hide
        Paulex Yang added a comment -

        Verified by Vladimir.

        Show
        Paulex Yang added a comment - Verified by Vladimir.

          People

          • Assignee:
            Paulex Yang
            Reporter:
            Vladimir Ivanov
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development