AnonHxy commented on code in PR #17371:
URL: https://github.com/apache/pulsar/pull/17371#discussion_r963536451
##########
pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java:
##########
@@ -1036,6 +1036,14 @@ public CompletableFuture<Void> deleteTopic(String topic,
boolean forceDelete) {
new IllegalStateException("Delete forbidden topic is
replicated on clusters " + clusters));
}
+ // shadow topic should be deleted first.
+ if (t.isShadowReplicated()) {
+ final List<String> shadowTopics =
t.getShadowReplicators().keys();
+ log.error("Delete forbidden. Topic {} is replicated to shadow
topics: {}", topic, shadowTopics);
+ return FutureUtil.failedFuture(new IllegalStateException(
+ "Delete forbidden. Topic {} is replicated to
shadow topics: " + shadowTopics));
Review Comment:
`{}` will not take effect.
```suggestion
"Delete forbidden. Topic " + topic + “ is
replicated to shadow topics: " + shadowTopics));
```
##########
pulsar-broker/src/main/java/org/apache/pulsar/broker/service/Topic.java:
##########
@@ -233,6 +233,7 @@ CompletableFuture<Subscription> createSubscription(String
subscriptionName, Init
boolean getSchemaValidationEnforced();
boolean isReplicated();
+ boolean isShadowReplicated();
Review Comment:
Better and a blank line above line236
```suggestion
boolean isShadowReplicated();
```
##########
pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java:
##########
@@ -1423,6 +1439,38 @@ public CompletableFuture<Void> checkReplication() {
}
});
+ futures.add(checkShadowReplication());
+
+ return FutureUtil.waitForAll(futures);
+ }
+
+ private CompletableFuture<Void> checkShadowReplication() {
+ if (CollectionUtils.isEmpty(shadowTopics)) {
+ return CompletableFuture.completedFuture(null);
+ }
+ List<String> configuredShadowTopics = shadowTopics;
Review Comment:
I wonder is it necessary add new variable `configuredShadowTopics` here.
Becase both `configuredShadowTopics` and `shadowTopics` refers the same object.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]