You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Tim Ellison <t....@gmail.com> on 2006/07/07 21:41:00 UTC

[classlib][nio] java.nio.ByteBuffer.order((ByteOrder) null) throws unspecified NPE

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 (t.p.ellison@gmail.com)
IBM Java technology centre, UK.

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org