aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjoel.leitch@gmail.com <joel.leitch@gmail.com@2534bb62-2c4b-0410-85e8-b5006b95c4ae>2013-05-13 20:37:33 +0000
committerjoel.leitch@gmail.com <joel.leitch@gmail.com@2534bb62-2c4b-0410-85e8-b5006b95c4ae>2013-05-13 20:37:33 +0000
commit308003fd40cdfd5ad59642a82b058032fd04a662 (patch)
treee36275e76981aa05f2d59f4ca9d346d6d8e4c1f3
parente79603a6f0e9cbdef577f0db74c5106024cd4b75 (diff)
downloadandroid_external_gson-308003fd40cdfd5ad59642a82b058032fd04a662.tar.gz
android_external_gson-308003fd40cdfd5ad59642a82b058032fd04a662.tar.bz2
android_external_gson-308003fd40cdfd5ad59642a82b058032fd04a662.zip
Added test to use BigDecimal to parse number when requesting it as a long.
git-svn-id: http://google-gson.googlecode.com/svn/trunk/gson@1248 2534bb62-2c4b-0410-85e8-b5006b95c4ae
-rw-r--r--src/main/java/com/google/gson/internal/LazilyParsedNumber.java4
-rw-r--r--src/test/java/com/google/gson/functional/PrimitiveTest.java4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/main/java/com/google/gson/internal/LazilyParsedNumber.java b/src/main/java/com/google/gson/internal/LazilyParsedNumber.java
index 42bbaa1b..3486fa10 100644
--- a/src/main/java/com/google/gson/internal/LazilyParsedNumber.java
+++ b/src/main/java/com/google/gson/internal/LazilyParsedNumber.java
@@ -39,7 +39,7 @@ public final class LazilyParsedNumber extends Number {
try {
return (int) Long.parseLong(value);
} catch (NumberFormatException nfe) {
- return new BigInteger(value).intValue();
+ return new BigDecimal(value).intValue();
}
}
}
@@ -49,7 +49,7 @@ public final class LazilyParsedNumber extends Number {
try {
return Long.parseLong(value);
} catch (NumberFormatException e) {
- return new BigInteger(value).longValue();
+ return new BigDecimal(value).longValue();
}
}
diff --git a/src/test/java/com/google/gson/functional/PrimitiveTest.java b/src/test/java/com/google/gson/functional/PrimitiveTest.java
index e6c3f9a3..372a30e6 100644
--- a/src/test/java/com/google/gson/functional/PrimitiveTest.java
+++ b/src/test/java/com/google/gson/functional/PrimitiveTest.java
@@ -152,6 +152,10 @@ public class PrimitiveTest extends TestCase {
expected = new Long(json);
actual = gson.fromJson(json, Number.class);
assertEquals(expected.longValue(), actual.longValue());
+
+ json = "1.0";
+ actual = gson.fromJson(json, Number.class);
+ assertEquals(1L, actual.longValue());
}
public void testPrimitiveDoubleAutoboxedSerialization() {