Source:
<code>public CloudToStoreReplicationManager(ReplicationConfig replicationConfig, ClusterMapConfig clusterMapConfig, StoreConfig storeConfig, StoreManager storeManager, StoreKeyFactory storeKeyFactory, ClusterMap clusterMap, ScheduledExecutorService scheduler, DataNodeId currentNode, ConnectionPool connectionPool, MetricRegistry metricRegistry, NotificationSystem requestNotification, StoreKeyConverterFactory storeKeyConverterFactory, String transformerClassName, ClusterSpectator vcrClusterSpectator, ClusterParticipant clusterParticipant) throws ReplicationException { super(replicationConfig, clusterMapConfig, storeKeyFactory, clusterMap, scheduler, currentNode, Collections.emptyList(), connectionPool, metricRegistry, requestNotification, storeKeyConverterFactory, transformerClassName); this.clusterMapConfig = clusterMapConfig; this.storeConfig = storeConfig; this.storeManager = storeManager; this.vcrClusterSpectator = vcrClusterSpectator; this.clusterParticipant = clusterParticipant; this.instanceNameToCloudDataNode = new AtomicReference<>(new ConcurrentHashMap<>()); this.vcrNodes = new AtomicReference<>(new ConcurrentSkipListSet<>()); this.persistor = new DiskTokenPersistor(cloudReplicaTokenFileName, mountPathToPartitionInfos, replicationMetrics, clusterMap, tokenHelper, storeManager); this.localPartitionNameToPartition = mapPartitionNameToPartition(clusterMap, currentNode); this.partitionsToReplicate = replicationConfig.vcrRecoveryPartitions.isEmpty() ? new HashSet<>() <START> : Arrays.stream(replicationConfig.vcrRecoveryPartitions.split(",")).collect(Collectors.toSet()); <END> }</code><technical_language>1. try Utils.splitString split string list, handles edge cases; 2. moving string split operation replicationConfig? is, vcrRecoveryPartitions a list instead of String in config</technical_language>

Target:
public CloudToStoreReplicationManager(ReplicationConfig replicationConfig, ClusterMapConfig clusterMapConfig, StoreConfig storeConfig, StoreManager storeManager, StoreKeyFactory storeKeyFactory, ClusterMap clusterMap, ScheduledExecutorService scheduler, DataNodeId currentNode, ConnectionPool connectionPool, MetricRegistry metricRegistry, NotificationSystem requestNotification, StoreKeyConverterFactory storeKeyConverterFactory, String transformerClassName, ClusterSpectator vcrClusterSpectator, ClusterParticipant clusterParticipant) throws ReplicationException { super(replicationConfig, clusterMapConfig, storeKeyFactory, clusterMap, scheduler, currentNode, Collections.emptyList(), connectionPool, metricRegistry, requestNotification, storeKeyConverterFactory, transformerClassName); this.clusterMapConfig = clusterMapConfig; this.storeConfig = storeConfig; this.storeManager = storeManager; this.vcrClusterSpectator = vcrClusterSpectator; this.clusterParticipant = clusterParticipant; this.instanceNameToCloudDataNode = new AtomicReference<>(new ConcurrentHashMap<>()); this.vcrNodes = new AtomicReference<>(new ConcurrentSkipListSet<>()); this.persistor = new DiskTokenPersistor(cloudReplicaTokenFileName, mountPathToPartitionInfos, replicationMetrics, clusterMap, tokenHelper, storeManager); this.localPartitionNameToPartition = mapPartitionNameToPartition(clusterMap, currentNode); }