apache/gravitino

[Improvement] Possible NPE in SchemaOperations#createSchema

Open

#10.164 geöffnet am 3. März 2026

Auf GitHub ansehen
 (2 Kommentare) (0 Reaktionen) (1 zugewiesene Person)Java (887 Forks)auto 404
good first issueimprovement

Repository-Metriken

Stars
 (3.058 Stars)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

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));
  }

Contributor Guide