diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/SchemaRegistryServiceImpl.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/SchemaRegistryServiceImpl.java index c1a394dcfbbb7..286d0e3ca7368 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/SchemaRegistryServiceImpl.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/SchemaRegistryServiceImpl.java @@ -89,13 +89,7 @@ public class SchemaRegistryServiceImpl implements SchemaRegistryService { @Override @NotNull public CompletableFuture getSchema(String schemaId) { - return getSchema(schemaId, SchemaVersion.Latest).thenApply((schema) -> { - if (schema != null && schema.schema.isDeleted()) { - return null; - } else { - return schema; - } - }); + return getSchema(schemaId, SchemaVersion.Latest); } @Override @@ -133,7 +127,17 @@ public CompletableFuture getSchema(String schemaId, SchemaVer } else { return Functions.bytesToSchemaInfo(stored.data) .thenApply(Functions::schemaInfoToSchema) - .thenApply(schema -> new SchemaAndMetadata(schemaId, schema, stored.version)); + .thenApply(schema -> new SchemaAndMetadata(schemaId, schema, stored.version)) + .thenApply((schema) -> { + if (version == SchemaVersion.Latest) { + if (schema != null && schema.schema.isDeleted()) { + return null; + } else { + return schema; + } + } + return schema; + }); } }) .whenComplete((v, t) -> {