Vladimir,

My simple tests on the RI show that passing null to
ByteBuffer.order(ByteOrder) causes the order to be set to LITTLE_ENDIAN,
or maybe even the opposite of the natural order.

This is the output from a simple test on my machine:
  Natural order = BIG_ENDIAN
  Set BE order = BIG_ENDIAN
  Set LE order = LITTLE_ENDIAN
  Set null order = LITTLE_ENDIAN
  Set BE order = BIG_ENDIAN
  Set null order = LITTLE_ENDIAN

Harmony currently throws a NPE, and your proposed patch would leave the
proposed order unmodified.

The behavior of passing null is undefined in the spec, but it is
possible that throwing an exception will break apps that inadvertently
pass null to this method, so unless anyone objects I'll take null to
mean LITTLE_ENDIAN.

Regards,
Tim

Vladimir Ivanov (JIRA) wrote:
> [classlib][nio]  java.nio.ByteBuffer.order((ByteOrder) null)  throws 
> unspecified NPE
> ------------------------------------------------------------------------------------
> 
>          Key: HARMONY-798
>          URL: http://issues.apache.org/jira/browse/HARMONY-798
>      Project: Harmony
>         Type: Bug
> 
>   Components: Classlib  
>     Reporter: Vladimir Ivanov
> 
> 
> The Harmony method java.nio.ByteBuffer.order(ByteOrder bo)  throws 
> unspecified NPE for 'null' while RI does not.
> 
> =================== test.java =========================
> import java.nio.*;
> 
> public class test  { 
>     public static void main (String[] args) {   
>        try {         
>            ByteBuffer buf = ByteBuffer.wrap(new byte[10]);
>            System.out.println("buf = " + buf + ", order(null) = " + 
> buf.order(null));
>        } catch (Exception e) {
>            e.printStackTrace();
>        }
>     }
> }
> ===================================================
> 
> Output:
> C:\tmp\tmp17>C:\jrockit-jdk1.5.0-windows-ia32\bin\java.exe -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))
> 
> buf = java.nio.HeapByteBuffer[pos=0 lim=10 cap=10], order(null) = 
> java.nio.HeapByteBuffer[pos=0 lim=10 cap=10]
> 
> C:\tmp\tmp17>C:\harmony\trunk_0427\deploy\jdk\jre\bin\java.exe -showversion 
> test
> java version 1.5 (subset)
> 
> (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as 
> applicable.
> java.lang.NullPointerException
>         at java.nio.ByteBuffer.orderImpl(ByteBuffer.java:699)
>         at java.nio.ByteBuffer.order(ByteBuffer.java:694)
>         at test.main(test.java:7)
> 
> 

-- 

Tim Ellison ([EMAIL PROTECTED])
IBM Java technology centre, UK.

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to