harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Ellison <t.p.elli...@gmail.com>
Subject Re: [classlib][math] one more non-bug diff ? ([jira] (HARMONY-1499) BigDecimal((BigInteger)null, MathContext) throws NPE on Harmony and ArithmeticException on RI
Date Wed, 20 Sep 2006 19:35:59 GMT
I can't imagine any app depending upon the RI behavior, so I'll close
this as a non-bug difference.

Regards,
Tim

Daniel Fridlender wrote:
> On 9/20/06, Tony Wu <wuyuehao@gmail.com> wrote:
>> RI disobeys spec because all constructors of BigDecimal do not throw
>> any NPE
>> when encounter a null parameter.
>> I incline to follow spec and mark this issue as an non-bug difference.
> 
> I agree.
> We should keep the current behavior of Harmony implementation since it
> obeys the spec.
> 
> Daniel
> 
>>
>> On 9/20/06, Vladimir Ivanov <ivavladimir@gmail.com> wrote:
>> >
>> > As pointed in the HARMONY-1499 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 requires NPE and BEA throws NPE in this case also as
>> Harmony. I
>> > suggest following the spec in this case.
>> > Any objection?
>> >
>> > thanks, Vladimir
>> >
>> >
>> > ---------- Forwarded message ----------
>> > From: Vladimir Ivanov (JIRA) <jira@apache.org>
>> > Date: Sep 20, 2006 2:05 PM
>> > Subject: [jira] Created: (HARMONY-1499) [classlib][math]
>> > BigDecimal((BigInteger)null, MathContext) throws NPE on Harmony and
>> > ArithmeticException on RI
>> > To: ivavladimir@gmail.com
>> >
>> > [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: Classlib
>> >           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
>> >
>> >
>>
>>
>> -- 
>> Tony Wu
>> China Software Development Lab, IBM
>>
>>
> 
> ---------------------------------------------------------------------
> 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
> 
> 

-- 

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


Mime
View raw message