4j2com/hazelcast/crdt/CRDTReplicationMigrationServicejava/lang/Object com/hazelcast/spi/ManagedService(com/hazelcast/spi/MembershipAwareService.com/hazelcast/spi/GracefulShutdownAwareService $CRDTReplicationMigrationService.java SERVICE_NAMELjava/lang/String;'hz:impl:CRDTReplicationMigrationService#CRDT_REPLICATION_MIGRATION_EXECUTORhz:CRDTReplicationMigrationreplicationTask&Ljava/util/concurrent/ScheduledFuture;)Ljava/util/concurrent/ScheduledFuture<*>; nodeEngineLcom/hazelcast/spi/NodeEngine;loggerLcom/hazelcast/logging/ILogger;replicationVectorClocks+Lcom/hazelcast/crdt/ReplicatedVectorClocks;()V  this4Lcom/hazelcast/crdt/CRDTReplicationMigrationService;init7(Lcom/hazelcast/spi/NodeEngine;Ljava/util/Properties;)Vcom/hazelcast/spi/NodeEngine$ getConfig()Lcom/hazelcast/config/Config; &' %(com/hazelcast/config/Config*getCRDTReplicationConfig.()Lcom/hazelcast/config/CRDTReplicationConfig; ,- +.*com/hazelcast/config/CRDTReplicationConfig0getReplicationPeriodMillis()I 23 14  6getClass()Ljava/lang/Class; 89 : getLogger2(Ljava/lang/Class;)Lcom/hazelcast/logging/ILogger; <= %>  @)com/hazelcast/crdt/ReplicatedVectorClocksB C  E"getMaxConcurrentReplicationTargets G3 1HgetExecutionService&()Lcom/hazelcast/spi/ExecutionService; JK %L&com/hazelcast/crdt/CRDTReplicationTaskNV(Lcom/hazelcast/spi/NodeEngine;ILcom/hazelcast/crdt/CRDTReplicationMigrationService;)V P OQjava/util/concurrent/TimeUnitS MILLISECONDSLjava/util/concurrent/TimeUnit; UV TW"com/hazelcast/spi/ExecutionServiceYscheduleWithRepetitiono(Ljava/lang/String;Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; [\ Z]  _ propertiesLjava/util/Properties;replicationConfig,Lcom/hazelcast/config/CRDTReplicationConfig;replicationPeriodI maxTargetsresetshutdown(Z)V$java/util/concurrent/ScheduledFuturekcancel(Z)Z mn lo terminateZtask onShutdown#(JLjava/util/concurrent/TimeUnit;)ZgetLocalMember()Lcom/hazelcast/core/Member; vw %xcom/hazelcast/core/Memberz isLiteMember()Z |} {~toNanos(J)J TgetReplicationServices()Ljava/util/Collection; java/util/Collectioniterator()Ljava/util/Iterator; java/util/IteratorhasNext } next()Ljava/lang/Object; .com/hazelcast/crdt/CRDTReplicationAwareServiceprepareToSafeShutdown  getName()Ljava/lang/String; getLatestReplicatedVectorClock#(Ljava/lang/String;)Ljava/util/Map; CprepareReplicationOperation?(Ljava/util/Map;I)Lcom/hazelcast/crdt/CRDTReplicationContainer; 3Skipping replication since all CRDTs are replicatedcom/hazelcast/logging/ILoggerfine(Ljava/lang/String;)V +com/hazelcast/crdt/CRDTReplicationContainerjava/lang/SystemnanoTime()J  getOperation()Lcom/hazelcast/spi/Operation; tryProcessOnOtherMembers3(Lcom/hazelcast/spi/Operation;Ljava/lang/String;J)Z java/lang/StringBuilder  Failed replication of CRDTs for append-(Ljava/lang/String;)Ljava/lang/StringBuilder; . CRDT state may be lost.toString warning replicationOperation-Lcom/hazelcast/crdt/CRDTReplicationContainer;startJservice0Lcom/hazelcast/crdt/CRDTReplicationAwareService;timeoutunit timeoutNanosjava/lang/ExceptiongetOperationService&()Lcom/hazelcast/spi/OperationService; %getClusterService1()Lcom/hazelcast/internal/cluster/ClusterService; %4com/hazelcast/cluster/memberselector/MemberSelectorsDATA_MEMBER_SELECTOR#Lcom/hazelcast/core/MemberSelector; -com/hazelcast/internal/cluster/ClusterService getMembers;(Lcom/hazelcast/core/MemberSelector;)Ljava/util/Collection; com/hazelcast/spi/Operationjava/lang/String"com/hazelcast/spi/OperationServiceequals(Ljava/lang/Object;)Z  Replicating  to -(Ljava/lang/Object;)Ljava/lang/StringBuilder;  getAddress()Lcom/hazelcast/nio/Address;  {createInvocationBuilderq(Ljava/lang/String;Lcom/hazelcast/spi/Operation;Lcom/hazelcast/nio/Address;)Lcom/hazelcast/spi/InvocationBuilder;  #com/hazelcast/spi/InvocationBuilder  setTryCount((I)Lcom/hazelcast/spi/InvocationBuilder;     invoke/()Lcom/hazelcast/spi/InternalCompletableFuture;    NANOSECONDS V T+com/hazelcast/spi/InternalCompletableFutureget4(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;  Failed replication of  for target *(Ljava/lang/String;Ljava/lang/Throwable;)V  !futureALcom/hazelcast/spi/InternalCompletableFuture;-Lcom/hazelcast/spi/InternalCompletableFuture;eLjava/lang/Exception;targetLcom/hazelcast/core/Member; operationLcom/hazelcast/spi/Operation; serviceNameoperationService$Lcom/hazelcast/spi/OperationService;targets3Ljava/util/Collection;Ljava/util/Collection; localMemberJ()Ljava/util/Collection; getServices)(Ljava/lang/Class;)Ljava/util/Collection; 45 %6getReplicatedVectorClocks5(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;q(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;getReplicatedVectorClock ;9 C< memberUUIDsetReplicatedVectorClocks6(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Vr(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V ?@ CB vectorClocksKLjava/util/Map;Ljava/util/Map; memberAdded-(Lcom/hazelcast/spi/MembershipServiceEvent;)VscheduleMigrationTask(J)V IJ Kevent*Lcom/hazelcast/spi/MembershipServiceEvent; memberRemovedmemberAttributeChanged2(Lcom/hazelcast/spi/MemberAttributeServiceEvent;)V/Lcom/hazelcast/spi/MemberAttributeServiceEvent;$com/hazelcast/crdt/CRDTMigrationTaskSU(Lcom/hazelcast/spi/NodeEngine;Lcom/hazelcast/crdt/CRDTReplicationMigrationService;)V U TVSECONDS XV TYschedulen(Ljava/lang/String;Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; [\ Z] delaySeconds!CRDTReplicationMigrationService{}` ConstantValue SignatureCodeLineNumberTableLocalVariableTable StackMapTableLocalVariableTypeTable SourceFile!  b bcd/*e<f  !"#d l+)/N- -56*+7*+*;?A*CYDF- -I6*+MOY+*RX^`g1B*@e* J LMOP-Q8S=TFVkYf>l !llab bcdRefF&gfhd+e]f  !ijd*`M,*`,pWgleab cdff  !qrsh stud *7y-7*::*F:*A7 ***AYĶʶȶ͹ ee7 cgG@eN;BJSZ_jmrfHZhrP ; !VdA *7:*7:*7y::{:  7 *AY, ͹+ :  !W: *AY,  "! eeB! MZgO2{"{Q {{=eV )HRUZfp #% *&' Z H() !*+,  -./1)2)h#$ /0d6 *77ef  !c389dH *F+,=ef  ! ,  > c:?@di *F+,-Ce  f* ! ,  >  DFh  DEcAGHd>* Le f !MNOHd>* Le f !MNPQd5ef !MRIJd}4*7y*7MTY*7*WZ^Wge3f4 !4_d.aef  !i