You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by py...@apache.org on 2007/08/21 04:33:57 UTC
svn commit: r567914 - in /harmony/enhanced/classlib/trunk/modules/math/src:
main/java/java/math/Logical.java
test/java/tests/api/java/math/BigDecimalTest.java
test/java/tests/api/java/math/BigIntegerTest.java
Author: pyang
Date: Mon Aug 20 19:33:56 2007
New Revision: 567914
URL: http://svn.apache.org/viewvc?rev=567914&view=rev
Log:
Fix HARMONY-4653(BigInteger andNot() fails to throw NullPointerException on null paramer)
Modified:
harmony/enhanced/classlib/trunk/modules/math/src/main/java/java/math/Logical.java
harmony/enhanced/classlib/trunk/modules/math/src/test/java/tests/api/java/math/BigDecimalTest.java
harmony/enhanced/classlib/trunk/modules/math/src/test/java/tests/api/java/math/BigIntegerTest.java
Modified: harmony/enhanced/classlib/trunk/modules/math/src/main/java/java/math/Logical.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/math/src/main/java/java/math/Logical.java?rev=567914&r1=567913&r2=567914&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/math/src/main/java/java/math/Logical.java (original)
+++ harmony/enhanced/classlib/trunk/modules/math/src/main/java/java/math/Logical.java Mon Aug 20 19:33:56 2007
@@ -224,12 +224,12 @@
/** @see BigInteger#andNot(BigInteger) */
static BigInteger andNot(BigInteger val, BigInteger that) {
- if (val.sign == 0) {
- return BigInteger.ZERO;
- }
if (that.sign == 0 ) {
return val;
}
+ if (val.sign == 0) {
+ return BigInteger.ZERO;
+ }
if (val.equals(BigInteger.MINUS_ONE)) {
return that.not();
}
@@ -239,7 +239,7 @@
//if val == that, return 0
- if (val.sign > 0) {
+ if (val.sign > 0) {
if (that.sign > 0) {
return andNotPositive(val, that);
} else {
Modified: harmony/enhanced/classlib/trunk/modules/math/src/test/java/tests/api/java/math/BigDecimalTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/math/src/test/java/tests/api/java/math/BigDecimalTest.java?rev=567914&r1=567913&r2=567914&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/math/src/test/java/tests/api/java/math/BigDecimalTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/math/src/test/java/tests/api/java/math/BigDecimalTest.java Mon Aug 20 19:33:56 2007
@@ -911,6 +911,7 @@
);
/* Zero */
+ //regression for HARMONY-4623, NON-BUG DIFF with RI
BigDecimal zerotest = new BigDecimal("0.0000");
assertTrue("stripTrailingZero failed for 0.0000",
((zerotest.stripTrailingZeros()).scale() == 0)
Modified: harmony/enhanced/classlib/trunk/modules/math/src/test/java/tests/api/java/math/BigIntegerTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/math/src/test/java/tests/api/java/math/BigIntegerTest.java?rev=567914&r1=567913&r2=567914&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/math/src/test/java/tests/api/java/math/BigIntegerTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/math/src/test/java/tests/api/java/math/BigIntegerTest.java Mon Aug 20 19:33:56 2007
@@ -857,6 +857,15 @@
(i1.testBit(i) && !i2.testBit(i)) == res.testBit(i));
}
}
+ //regression for HARMONY-4653
+ try{
+ BigInteger.ZERO.andNot(null);
+ fail("should throw NPE");
+ }catch(Exception e){
+ //expected
+ }
+ BigInteger bi = new BigInteger(0, new byte[]{});
+ assertEquals(BigInteger.ZERO, bi.andNot(BigInteger.ZERO));
}