in client/src/main/java/org/apache/rocketmq/schema/registry/client/CachedSchemaRegistryClient.java [102:126]
public DeleteSchemeResponse deleteSchema(String cluster, String tenant,
String subject) throws IOException, RestClientException {
String subjectFullName = String.format("%s/%s/%s", cluster, tenant, subject);
schemaCacheBySubject.invalidate(subjectFullName);
//invalidate schemaCacheBySubjectAndVersion
if (subjectToVersion.get(subjectFullName) != null) {
subjectToVersion.get(subjectFullName).forEach(
version -> schemaCacheBySubjectAndVersion.invalidate(new SubjectAndVersion(cluster, tenant, subject, version)));
}
//invalidate schemaCacheBySubjectAndId
if (subjectToId.get(subjectFullName) != null) {
subjectToId.get(subjectFullName).forEach(
recordId -> schemaCacheBySubjectAndId.invalidate(new SubjectAndId(cluster, tenant, subject, recordId)));
}
// invalidate schemaCache
if (subjectToSchema.get(subjectFullName) != null) {
subjectToSchema.get(subjectFullName).forEach(
schema -> schemaCache.invalidate(new SubjectAndSchema(cluster, tenant, subject, schema)));
}
subjectToVersion.remove(subjectFullName);
subjectToId.remove(subjectFullName);
subjectToSchema.remove(subjectFullName);
return restService.deleteSchema(cluster, tenant, subject);
}