diff --git a/google-http-client/src/main/java/com/google/api/client/util/GenericData.java b/google-http-client/src/main/java/com/google/api/client/util/GenericData.java index c6635f89e..a2af1eae7 100644 --- a/google-http-client/src/main/java/com/google/api/client/util/GenericData.java +++ b/google-http-client/src/main/java/com/google/api/client/util/GenericData.java @@ -80,9 +80,9 @@ public final boolean containsKey(Object name) { return false; } String fieldName = (String) name; - boolean hasFieldInfo = classInfo.hasFieldInfo(fieldName); - if (hasFieldInfo) { - return true; + FieldInfo fieldInfo = classInfo.getFieldInfo(fieldName); + if (fieldInfo != null) { + return fieldInfo.getValue(this) != null; } if (classInfo.getIgnoreCase()) { fieldName = fieldName.toLowerCase(Locale.US); diff --git a/google-http-client/src/test/java/com/google/api/client/util/GenericDataTest.java b/google-http-client/src/test/java/com/google/api/client/util/GenericDataTest.java index fd6547bb6..828cda414 100644 --- a/google-http-client/src/test/java/com/google/api/client/util/GenericDataTest.java +++ b/google-http-client/src/test/java/com/google/api/client/util/GenericDataTest.java @@ -155,9 +155,17 @@ public void testPutIgnoreCase_class() { @Test public void testGetIgnoreCase_class() { MyData data = new MyData(); + assertFalse(data.containsKey("FIELDA")); + assertFalse(data.containsKey("FieldA")); + assertFalse(data.keySet().contains("FieldA")); data.fieldA = "someValue"; assertTrue(data.containsKey("FIELDA")); + assertTrue(data.containsKey("FieldA")); + assertTrue(data.keySet().contains("FieldA")); assertEquals("someValue", data.get("FIELDA")); + data.fieldA = null; + assertFalse(data.containsKey("FIELDA")); + assertFalse(data.keySet().contains("FieldA")); } @Test diff --git a/pom.xml b/pom.xml index 14941b440..b67f08e88 100644 --- a/pom.xml +++ b/pom.xml @@ -405,19 +405,6 @@ maven-enforcer-plugin 3.5.0 - - org.apache.maven.plugins - maven-source-plugin - 3.3.1 - - - attach-sources - - jar-no-fork - - - -