diff --git a/google-http-client-test/src/main/java/com/google/api/client/test/json/AbstractJsonFactoryTest.java b/google-http-client-test/src/main/java/com/google/api/client/test/json/AbstractJsonFactoryTest.java index 1f11dfd38..8bf518109 100644 --- a/google-http-client-test/src/main/java/com/google/api/client/test/json/AbstractJsonFactoryTest.java +++ b/google-http-client-test/src/main/java/com/google/api/client/test/json/AbstractJsonFactoryTest.java @@ -482,8 +482,6 @@ public static class MapOfMapType { static final String MAP_TYPE = "{\"value\":[{\"map1\":{\"k1\":1,\"k2\":2},\"map2\":{\"kk1\":3,\"kk2\":4}}]}"; - static final String BIGDECIMAL_MAP_TYPE = - "{\"value\":[{\"map1\":{\"k1\":1.14566,\"k2\":2.14},\"map2\":{\"kk1\":3.29,\"kk2\":4.69}}]}"; public void testParser_mapType() throws Exception { // parse @@ -512,35 +510,16 @@ public void testParser_hashmapForMapType() throws Exception { parser = factory.createJsonParser(MAP_TYPE); parser.nextToken(); @SuppressWarnings("unchecked") - HashMap>>> result = - parser.parse(HashMap.class); - // serialize - assertEquals(MAP_TYPE, factory.toString(result)); - // check parsed result - ArrayList>> value = result.get("value"); - ArrayMap> firstMap = value.get(0); - ArrayMap map1 = firstMap.get("map1"); - Integer integer = map1.get("k1"); - assertEquals(1, integer.intValue()); - } - - public void testParser_hashmapForMapTypeWithBigDecimal() throws Exception { - // parse - JsonFactory factory = newFactory(); - JsonParser parser; - parser = factory.createJsonParser(BIGDECIMAL_MAP_TYPE); - parser.nextToken(); - @SuppressWarnings("unchecked") HashMap>>> result = parser.parse(HashMap.class); // serialize - assertEquals(BIGDECIMAL_MAP_TYPE, factory.toString(result)); + assertEquals(MAP_TYPE, factory.toString(result)); // check parsed result ArrayList>> value = result.get("value"); ArrayMap> firstMap = value.get(0); ArrayMap map1 = firstMap.get("map1"); - BigDecimal bigDecimal = map1.get("k1"); - assertEquals(BigDecimal.valueOf(1.14566).setScale(5), bigDecimal); + BigDecimal integer = map1.get("k1"); + assertEquals(1, integer.intValue()); } public static class WildCardTypes { @@ -568,8 +547,8 @@ public void testParser_wildCardType() throws Exception { assertEquals(WILDCARD_TYPE, factory.toString(result)); // check parsed result Collection[] simple = result.simple; - ArrayList wildcard = (ArrayList) simple[0]; - Integer wildcardFirstValue = wildcard.get(0); + ArrayList wildcard = (ArrayList) simple[0]; + BigDecimal wildcardFirstValue = wildcard.get(0); assertEquals(1, wildcardFirstValue.intValue()); Collection[] upper = result.upper; ArrayList wildcardUpper = (ArrayList) upper[0]; @@ -579,8 +558,8 @@ public void testParser_wildCardType() throws Exception { ArrayList wildcardLower = (ArrayList) lower[0]; Integer wildcardFirstValueLower = wildcardLower.get(0); assertEquals(1, wildcardFirstValueLower.intValue()); - Map map = (Map) result.map; - Integer mapValue = map.get("v"); + Map map = (Map) result.map; + BigDecimal mapValue = map.get("v"); assertEquals(1, mapValue.intValue()); Map mapUpper = (Map) result.mapUpper; Integer mapUpperValue = mapUpper.get("v"); @@ -792,16 +771,16 @@ public void testParser_treemapForTypeVariableType() throws Exception { ArrayList arr = (ArrayList) result.get("arr"); assertEquals(2, arr.size()); assertEquals(Data.nullOf(Object.class), arr.get(0)); - ArrayList subArr = (ArrayList) arr.get(1); + ArrayList subArr = (ArrayList) arr.get(1); assertEquals(2, subArr.size()); assertEquals(Data.nullOf(Object.class), subArr.get(0)); - Integer arrValue = subArr.get(1); + BigDecimal arrValue = subArr.get(1); assertEquals(1, arrValue.intValue()); // null value Object nullValue = result.get("nullValue"); assertEquals(Data.nullOf(Object.class), nullValue); // value - Integer value = (Integer) result.get("value"); + BigDecimal value = (BigDecimal) result.get("value"); assertEquals(1, value.intValue()); } @@ -1540,7 +1519,7 @@ public void testParser_heterogeneousSchema_genericJson() throws Exception { assertEquals(4, dog.numberOfLegs); assertEquals(3, ((DogGenericJson) dog).tricksKnown); assertEquals("this is not being used!", dog.get("unusedInfo")); - Integer foo = ((Integer) ((ArrayMap) dog.get("unused")).get("foo")); + BigDecimal foo = ((BigDecimal) ((ArrayMap) dog.get("unused")).get("foo")); assertEquals(200, foo.intValue()); } diff --git a/google-http-client/src/main/java/com/google/api/client/json/JsonParser.java b/google-http-client/src/main/java/com/google/api/client/json/JsonParser.java index 44bec3f51..75972a16c 100644 --- a/google-http-client/src/main/java/com/google/api/client/json/JsonParser.java +++ b/google-http-client/src/main/java/com/google/api/client/json/JsonParser.java @@ -828,10 +828,6 @@ private final Object parseValue( Preconditions.checkArgument( fieldContext == null || fieldContext.getAnnotation(JsonString.class) == null, "number type formatted as a JSON number cannot use @JsonString annotation"); - if (getCurrentToken() == JsonToken.VALUE_NUMBER_INT - && (valueClass == null || valueClass.isAssignableFrom(Integer.class))) { - return getIntValue(); - } if (valueClass == null || valueClass.isAssignableFrom(BigDecimal.class)) { return getDecimalValue(); }