From 3a767f6e4d795a5dfe5b9e333a225bc81c5b31c4 Mon Sep 17 00:00:00 2001 From: Blake Li Date: Fri, 9 Oct 2026 16:03:47 +0000 Subject: [PATCH 1/2] fix: check field value is non-null in GenericData.containsKey Fixes #2187 --- .../main/java/com/google/api/client/util/GenericData.java | 6 +++--- .../java/com/google/api/client/util/GenericDataTest.java | 8 ++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) 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 From d521483c476452ec741853a644561109661eb7a2 Mon Sep 17 00:00:00 2001 From: Blake Li Date: Fri, 9 Oct 2026 18:21:33 +0000 Subject: [PATCH 2/2] build: remove duplicate maven-source-plugin declaration in pom.xml --- pom.xml | 13 ------------- 1 file changed, 13 deletions(-) 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 - - - -