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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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) <[EMAIL PROTECTED]> >> > 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: [EMAIL PROTECTED] >> > >> > [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: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- 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]