Details
-
Bug
-
Status: Resolved
-
Trivial
-
Resolution: Fixed
-
None
-
None
-
None
-
Patch Available
Description
J2SE API specifications for java.io.BufferedOutputStream.write(byte[], int, int) method says "Throws IOException - if an I/O error occurs."
Spec for the superclass java.io.OutputStream says that "If off is negative, or len is negative, or off+len is greater than the length of the array b, then an IndexOutOfBoundsException is thrown."
Harmony throws ArrayIndexOutOfBoundsException while RI throws NullPointerException.
============== Test9422 .java =====================
import java.io.BufferedOutputStream;
public class Test9422 {
public static void main(String[] argv) {
BufferedOutputStream localBufferedOutputStream = new BufferedOutputStream(
null, 1);
byte[] array0 = new byte[]
;
try
{ localBufferedOutputStream.write(array0, 127, 1); System.out.println("Test filed!"); }catch (IndexOutOfBoundsException e)
{ System.out.println("Test passed: expected " + e); }catch (Exception e)
{ System.out.println("Test filed: " + e); }try
{ localBufferedOutputStream.write(array0, 5, 17); System.out.println("Test filed!"); }catch (IndexOutOfBoundsException e)
{ System.out.println("Test passed: expected " + e); }catch (Exception e)
{ System.out.println("Test filed: " + e); }try
{ localBufferedOutputStream.write(array0, -1, 5); System.out.println("Test filed!"); }catch (IndexOutOfBoundsException e)
{ System.out.println("Test passed: expected " + e); }catch (Exception e)
{ System.out.println("Test filed: " + e); }try
{ localBufferedOutputStream.write(array0, 1, -5); System.out.println("Test filed!"); }catch (IndexOutOfBoundsException e)
{ System.out.println("Test passed: expected " + e); }catch (Exception e)
{ System.out.println("Test filed: " + e); }}
}
==========================================
Output:
Harmony:
java version "1.5.0"
pre-alpha : not complete or compatible
svn = r424571, (Jul 22 2006), Windows/ia32/msvc 1310, release build
http://incubator.apache.org/harmony
Test passed: expected java.lang.ArrayIndexOutOfBoundsException: Arguments out of bounds
Test passed: expected java.lang.ArrayIndexOutOfBoundsException: Arguments out of bounds
Test passed: expected java.lang.ArrayIndexOutOfBoundsException: Arguments out of bounds
Test passed: expected java.lang.ArrayIndexOutOfBoundsException: Arguments out of bounds
RI:
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 filed: java.lang.NullPointerException
Test filed: java.lang.NullPointerException
Test filed: java.lang.NullPointerException
Test passed: expected java.lang.ArrayIndexOutOfBoundsException