This is an automated email from the ASF dual-hosted git repository.
jmclean pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/main by this push:
new 76d3138428 [#9077] fix(dto): Ensure updates list is not null (#9094)
76d3138428 is described below
commit 76d3138428116de9cbb503a0801b917c26b45760
Author: Kwon Taeheon <[email protected]>
AuthorDate: Fri Nov 14 08:38:44 2025 +0900
[#9077] fix(dto): Ensure updates list is not null (#9094)
### What changes were proposed in this pull request?
- Prevent potential `NPE` in the validate method of classes implementing
`RESTRequest`.
- Although not requested, TopicCreateRequest was also included in the PR
since it follows the same structure and should not allow `NPE` either.
### Why are the changes needed?
- Added null check for updates list in request validation.
Fix: #9077
### Does this PR introduce _any_ user-facing change?
- no.
- This change only corrects internal exception handling logic, with no
modification to public APIs or user-visible behavior.
### How was this patch tested?
- No new tests added, since this only fixes the caught exception type.
- Ensured all existing tests continue to pass.
---
.../java/org/apache/gravitino/dto/requests/CatalogUpdatesRequest.java | 2 ++
.../org/apache/gravitino/dto/requests/JobTemplateUpdatesRequest.java | 2 ++
.../java/org/apache/gravitino/dto/requests/MetalakeUpdatesRequest.java | 2 ++
.../java/org/apache/gravitino/dto/requests/ModelUpdatesRequest.java | 2 ++
.../java/org/apache/gravitino/dto/requests/SchemaUpdatesRequest.java | 2 ++
.../java/org/apache/gravitino/dto/requests/TableUpdatesRequest.java | 2 ++
.../java/org/apache/gravitino/dto/requests/TopicUpdatesRequest.java | 2 ++
7 files changed, 14 insertions(+)
diff --git
a/common/src/main/java/org/apache/gravitino/dto/requests/CatalogUpdatesRequest.java
b/common/src/main/java/org/apache/gravitino/dto/requests/CatalogUpdatesRequest.java
index 1aed4bb00e..5eea31a992 100644
---
a/common/src/main/java/org/apache/gravitino/dto/requests/CatalogUpdatesRequest.java
+++
b/common/src/main/java/org/apache/gravitino/dto/requests/CatalogUpdatesRequest.java
@@ -19,6 +19,7 @@
package org.apache.gravitino.dto.requests;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Preconditions;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Getter;
@@ -55,6 +56,7 @@ public class CatalogUpdatesRequest implements RESTRequest {
*/
@Override
public void validate() throws IllegalArgumentException {
+ Preconditions.checkArgument(updates != null, "updates must not be null");
updates.forEach(RESTRequest::validate);
}
}
diff --git
a/common/src/main/java/org/apache/gravitino/dto/requests/JobTemplateUpdatesRequest.java
b/common/src/main/java/org/apache/gravitino/dto/requests/JobTemplateUpdatesRequest.java
index fc3b12c5d6..232e0efb53 100644
---
a/common/src/main/java/org/apache/gravitino/dto/requests/JobTemplateUpdatesRequest.java
+++
b/common/src/main/java/org/apache/gravitino/dto/requests/JobTemplateUpdatesRequest.java
@@ -19,6 +19,7 @@
package org.apache.gravitino.dto.requests;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Preconditions;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Getter;
@@ -55,6 +56,7 @@ public class JobTemplateUpdatesRequest implements RESTRequest
{
*/
@Override
public void validate() throws IllegalArgumentException {
+ Preconditions.checkArgument(updates != null, "updates must not be null");
updates.forEach(RESTRequest::validate);
}
}
diff --git
a/common/src/main/java/org/apache/gravitino/dto/requests/MetalakeUpdatesRequest.java
b/common/src/main/java/org/apache/gravitino/dto/requests/MetalakeUpdatesRequest.java
index 371270df2c..ba985121b0 100644
---
a/common/src/main/java/org/apache/gravitino/dto/requests/MetalakeUpdatesRequest.java
+++
b/common/src/main/java/org/apache/gravitino/dto/requests/MetalakeUpdatesRequest.java
@@ -19,6 +19,7 @@
package org.apache.gravitino.dto.requests;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Preconditions;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Getter;
@@ -55,6 +56,7 @@ public class MetalakeUpdatesRequest implements RESTRequest {
*/
@Override
public void validate() throws IllegalArgumentException {
+ Preconditions.checkArgument(updates != null, "updates must not be null");
updates.forEach(RESTRequest::validate);
}
}
diff --git
a/common/src/main/java/org/apache/gravitino/dto/requests/ModelUpdatesRequest.java
b/common/src/main/java/org/apache/gravitino/dto/requests/ModelUpdatesRequest.java
index ba30149008..a0776c7e11 100644
---
a/common/src/main/java/org/apache/gravitino/dto/requests/ModelUpdatesRequest.java
+++
b/common/src/main/java/org/apache/gravitino/dto/requests/ModelUpdatesRequest.java
@@ -20,6 +20,7 @@
package org.apache.gravitino.dto.requests;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Preconditions;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Getter;
@@ -55,6 +56,7 @@ public class ModelUpdatesRequest implements RESTRequest {
*/
@Override
public void validate() throws IllegalArgumentException {
+ Preconditions.checkArgument(updates != null, "updates must not be null");
updates.forEach(RESTRequest::validate);
}
}
diff --git
a/common/src/main/java/org/apache/gravitino/dto/requests/SchemaUpdatesRequest.java
b/common/src/main/java/org/apache/gravitino/dto/requests/SchemaUpdatesRequest.java
index 614029ee5e..bb5c61c7b5 100644
---
a/common/src/main/java/org/apache/gravitino/dto/requests/SchemaUpdatesRequest.java
+++
b/common/src/main/java/org/apache/gravitino/dto/requests/SchemaUpdatesRequest.java
@@ -19,6 +19,7 @@
package org.apache.gravitino.dto.requests;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Preconditions;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Getter;
@@ -55,6 +56,7 @@ public class SchemaUpdatesRequest implements RESTRequest {
*/
@Override
public void validate() throws IllegalArgumentException {
+ Preconditions.checkArgument(updates != null, "updates must not be null");
updates.forEach(RESTRequest::validate);
}
}
diff --git
a/common/src/main/java/org/apache/gravitino/dto/requests/TableUpdatesRequest.java
b/common/src/main/java/org/apache/gravitino/dto/requests/TableUpdatesRequest.java
index a88b0d8dd2..02db343bed 100644
---
a/common/src/main/java/org/apache/gravitino/dto/requests/TableUpdatesRequest.java
+++
b/common/src/main/java/org/apache/gravitino/dto/requests/TableUpdatesRequest.java
@@ -19,6 +19,7 @@
package org.apache.gravitino.dto.requests;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Preconditions;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Getter;
@@ -55,6 +56,7 @@ public class TableUpdatesRequest implements RESTRequest {
*/
@Override
public void validate() throws IllegalArgumentException {
+ Preconditions.checkArgument(updates != null, "updates must not be null");
updates.forEach(RESTRequest::validate);
}
}
diff --git
a/common/src/main/java/org/apache/gravitino/dto/requests/TopicUpdatesRequest.java
b/common/src/main/java/org/apache/gravitino/dto/requests/TopicUpdatesRequest.java
index 88fd2ab389..2c2a39d5cc 100644
---
a/common/src/main/java/org/apache/gravitino/dto/requests/TopicUpdatesRequest.java
+++
b/common/src/main/java/org/apache/gravitino/dto/requests/TopicUpdatesRequest.java
@@ -19,6 +19,7 @@
package org.apache.gravitino.dto.requests;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Preconditions;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Getter;
@@ -55,6 +56,7 @@ public class TopicUpdatesRequest implements RESTRequest {
*/
@Override
public void validate() throws IllegalArgumentException {
+ Preconditions.checkArgument(updates != null, "Updates list cannot be
null");
updates.forEach(RESTRequest::validate);
}
}