harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tim Ellison (JIRA)" <j...@apache.org>
Subject [jira] Closed: (HARMONY-1499) [classlib][math] BigDecimal((BigInteger)null, MathContext) throws NPE on Harmony and ArithmeticException on RI
Date Wed, 20 Sep 2006 19:41:26 GMT
     [ http://issues.apache.org/jira/browse/HARMONY-1499?page=all ]

Tim Ellison closed HARMONY-1499.
--------------------------------

    Resolution: Fixed

as discussed here:

http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200609.mbox/%3c7273946b0609200021l52ef30c4xc5e406f082a4e72@mail.gmail.com%3e


> [classlib][math] BigDecimal((BigInteger)null, MathContext) throws NPE on Harmony and
ArithmeticException on RI
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-1499
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1499
>             Project: Harmony
>          Issue Type: Bug
>          Components: Non-bug differences from RI
>            Reporter: Vladimir Ivanov
>            Priority: Minor
>
> The constructors BigDecimal((BigInteger)null, new MathContext("precision=14 roundingMode=UNNECESSARY"))
and 
> BigDecimal(BigInteger unscaledVal, int scale, MathContext mc) throws NPE on Harmony and
ArithmeticException on RI.
> The spec says for BigDecimal class: "All methods and constructors for this class throw
NullPointerException when passed a null object reference for any input parameter" and for
the thes constructors: "Throws: ArithmeticException - if the result is inexact but the rounding
mode is UNNECESSARY."
> Seems, that the RI does not check input for 'null' values. While BEA throws NPE in this
case and RI behavior contradicts to the spec it may be 'non-bug diff'.
> ================== test.java =====================
> import java.math.*; 
> public class test { 
>     public static void main(String[] args) { 
>         try {     
>              System.out.println("res = " + new BigDecimal((BigInteger)null, new MathContext("precision=14
roundingMode=DOWN")));
>         } catch (Exception e) {
>              e.printStackTrace();
>         }
>         try {     
>              System.out.println("res = " + new BigDecimal((BigInteger)null, new MathContext("precision=14
roundingMode=UNNECESSARY")));
>         } catch (Exception e) {
>              e.printStackTrace();
>         }
>         try {     
>              System.out.println("res = " + new BigDecimal((BigInteger)null, 1, new MathContext("precision=14
roundingMode=UNNECESSARY")));
>         } catch (Exception e) {
>              e.printStackTrace();
>         } 
>     } 
> } 
> ==============================================
> Output:
> ---------------------------------------------------
> C:\tmp\tmp17>C:\jdk1.5.0_08\bin\java.exe -cp . -showversion test
> java version "1.5.0_08"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)
> Java HotSpot(TM) Client VM (build 1.5.0_08-b03, mixed mode)
> res = -9.2233720368547E+18
> java.lang.ArithmeticException: Rounding necessary
>         at java.math.BigDecimal.divide(BigDecimal.java:1346)
>         at java.math.BigDecimal.dropDigits(BigDecimal.java:3463)
>         at java.math.BigDecimal.doRound(BigDecimal.java:3433)
>         at java.math.BigDecimal.roundThis(BigDecimal.java:3399)
>         at java.math.BigDecimal.<init>(BigDecimal.java:811)
>         at test.main(test.java:11)
> java.lang.ArithmeticException: Rounding necessary
>         at java.math.BigDecimal.divide(BigDecimal.java:1346)
>         at java.math.BigDecimal.dropDigits(BigDecimal.java:3463)
>         at java.math.BigDecimal.doRound(BigDecimal.java:3433)
>         at java.math.BigDecimal.roundThis(BigDecimal.java:3399)
>         at java.math.BigDecimal.<init>(BigDecimal.java:851)
>         at test.main(test.java:16)
> ---------------------------------------------------
> 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.math.BigDecimal.doRound(BigDecimal.java:3066)
>         at java.math.BigDecimal.roundThis(BigDecimal.java:3042)
>         at java.math.BigDecimal.<init>(BigDecimal.java:751)
>         at test.main(test.java:6)
> java.lang.NullPointerException
>         at java.math.BigDecimal.doRound(BigDecimal.java:3066)
>         at java.math.BigDecimal.roundThis(BigDecimal.java:3042)
>         at java.math.BigDecimal.<init>(BigDecimal.java:751)
>         at test.main(test.java:11)
> java.lang.NullPointerException
>         at java.math.BigDecimal.doRound(BigDecimal.java:3066)
>         at java.math.BigDecimal.roundThis(BigDecimal.java:3042)
>         at java.math.BigDecimal.<init>(BigDecimal.java:788)
>         at test.main(test.java:16)
> ---------------------------------------------------
> C:\tmp\tmp17>C:\harmony\classlib1.5\deploy\jdk\jre\bin\java.exe -cp . test
> java.lang.NullPointerException
>         at java.math.BigDecimal.<init>(BigDecimal.java:384)
>         at java.math.BigDecimal.<init>(BigDecimal.java:372)
>         at java.math.BigDecimal.<init>(BigDecimal.java:377)
>         at test.main(test.java:6)
> java.lang.NullPointerException
>         at java.math.BigDecimal.<init>(BigDecimal.java:384)
>         at java.math.BigDecimal.<init>(BigDecimal.java:372)
>         at java.math.BigDecimal.<init>(BigDecimal.java:377)
>         at test.main(test.java:11)
> java.lang.NullPointerException
>         at java.math.BigDecimal.<init>(BigDecimal.java:384)
>         at java.math.BigDecimal.<init>(BigDecimal.java:392)
>         at test.main(test.java:16)
> ---------------------------------------------------
> C:\tmp\tmp17>C:\harmony\drlvm1.5\build\win_ia32_msvc_debug\deploy\jre\bin\java -Dvm.assert_dialog=false
-cp . -showversion test
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or
its licensors, as applicable.
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r448020, (Sep 20 2006), Windows/ia32/msvc 1310, debug build
> http://incubator.apache.org/harmony
> java.lang.NullPointerException
>         at test.main(test.java:6)
> java.lang.NullPointerException
>         at test.main(test.java:11)
> java.lang.NullPointerException
>         at test.main(test.java:16)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message