[Improvement] Possible NPE in SchemaOperations#createSchema
#10,164 opened on Mar 3, 2026
Repository metrics
- Stars
- (3,058 stars)
- PR merge metrics
- (PR metrics pending)
Description
What would you like to be improved?
SchemaOperations#createSchema logs request.getName() before entering its try/catch. If request is null (for example, empty/missing POST body), this causes an immediate NullPointerException outside the error-handling path. Result: inconsistent 500 behavior.
How should we improve?
Move all request field access behind a null-safe check inside the try path, and fail fast with a controlled validation error when request == null (for example, treat as bad request). Also, make the catch path null-safe (don’t call request.getName() unless request is non-null). Add/keep a unit test for null request input to ensure the endpoint never throws uncaught exceptions.
Here's a unit test to help:
@Test
public void testCreateSchemaWithNullRequestShouldNotThrow() {
SchemaOperations operations = new SchemaOperations(dispatcher);
Assertions.assertDoesNotThrow(() -> operations.createSchema(metalake, catalog, null));
}