This is an automated email from the ASF dual-hosted git repository. zhaijia pushed a commit to branch branch-2.5 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit bd4d87979674a2fd6541cf79566cfd29a52ecae0 Author: Fangbin Sun <[email protected]> AuthorDate: Mon Feb 24 21:46:31 2020 +0800 Fix broker to specify a list of bookie groups. (#6349) ### Motivation Fixes #6343 ### Modifications Add a method to cast object value to `String`. (cherry picked from commit e1f7505cbc2cadcba7cb79d8e3ed5b7855688858) --- .../ZkIsolatedBookieEnsemblePlacementPolicy.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pulsar-zookeeper-utils/src/main/java/org/apache/pulsar/zookeeper/ZkIsolatedBookieEnsemblePlacementPolicy.java b/pulsar-zookeeper-utils/src/main/java/org/apache/pulsar/zookeeper/ZkIsolatedBookieEnsemblePlacementPolicy.java index 656b3a2..ef4f72b 100644 --- a/pulsar-zookeeper-utils/src/main/java/org/apache/pulsar/zookeeper/ZkIsolatedBookieEnsemblePlacementPolicy.java +++ b/pulsar-zookeeper-utils/src/main/java/org/apache/pulsar/zookeeper/ZkIsolatedBookieEnsemblePlacementPolicy.java @@ -71,7 +71,7 @@ public class ZkIsolatedBookieEnsemblePlacementPolicy extends RackawareEnsemblePl Optional<DNSToSwitchMapping> optionalDnsResolver, HashedWheelTimer timer, FeatureProvider featureProvider, StatsLogger statsLogger) { if (conf.getProperty(ISOLATION_BOOKIE_GROUPS) != null) { - String isolationGroupsString = (String) conf.getProperty(ISOLATION_BOOKIE_GROUPS); + String isolationGroupsString = castToString(conf.getProperty(ISOLATION_BOOKIE_GROUPS)); if (!isolationGroupsString.isEmpty()) { for (String isolationGroup : isolationGroupsString.split(",")) { primaryIsolationGroups.add(isolationGroup); @@ -80,7 +80,7 @@ public class ZkIsolatedBookieEnsemblePlacementPolicy extends RackawareEnsemblePl } } if (conf.getProperty(SECONDARY_ISOLATION_BOOKIE_GROUPS) != null) { - String secondaryIsolationGroupsString = (String) conf.getProperty(SECONDARY_ISOLATION_BOOKIE_GROUPS); + String secondaryIsolationGroupsString = castToString(conf.getProperty(SECONDARY_ISOLATION_BOOKIE_GROUPS)); if (!secondaryIsolationGroupsString.isEmpty()) { for (String isolationGroup : secondaryIsolationGroupsString.split(",")) { secondaryIsolationGroups.add(isolationGroup); @@ -90,6 +90,18 @@ public class ZkIsolatedBookieEnsemblePlacementPolicy extends RackawareEnsemblePl return super.initialize(conf, optionalDnsResolver, timer, featureProvider, statsLogger); } + private String castToString(Object obj) { + if (obj instanceof List<?>) { + List<String> result = new ArrayList<>(); + for (Object o : (List<?>) obj) { + result.add(String.class.cast(o)); + } + return String.join(",", result); + } else { + return obj.toString(); + } + } + private ZooKeeperCache getAndSetZkCache(Configuration conf) { ZooKeeperCache zkCache = null; if (conf.getProperty(ZooKeeperCache.ZK_CACHE_INSTANCE) != null) {
