diff options
author | joel.leitch@gmail.com <joel.leitch@gmail.com@2534bb62-2c4b-0410-85e8-b5006b95c4ae> | 2013-05-13 20:37:33 +0000 |
---|---|---|
committer | joel.leitch@gmail.com <joel.leitch@gmail.com@2534bb62-2c4b-0410-85e8-b5006b95c4ae> | 2013-05-13 20:37:33 +0000 |
commit | 308003fd40cdfd5ad59642a82b058032fd04a662 (patch) | |
tree | e36275e76981aa05f2d59f4ca9d346d6d8e4c1f3 | |
parent | e79603a6f0e9cbdef577f0db74c5106024cd4b75 (diff) | |
download | android_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.java | 4 | ||||
-rw-r--r-- | src/test/java/com/google/gson/functional/PrimitiveTest.java | 4 |
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() { |