4GEcom/hazelcast/internal/partition/operation/FinalizeMigrationOperationEcom/hazelcast/internal/partition/operation/AbstractPartitionOperation)com/hazelcast/spi/PartitionAwareOperation8com/hazelcast/internal/partition/MigrationCycleOperationFinalizeMigrationOperation.java migrationInfo0Lcom/hazelcast/internal/partition/MigrationInfo;endpoint/Lcom/hazelcast/spi/partition/MigrationEndpoint;successZ()V      thisGLcom/hazelcast/internal/partition/operation/FinalizeMigrationOperation;c(Lcom/hazelcast/internal/partition/MigrationInfo;Lcom/hazelcast/spi/partition/MigrationEndpoint;Z)Vrun getService()Ljava/lang/Object;   Bcom/hazelcast/internal/partition/impl/InternalPartitionServiceImpl"getPartitionStateManager?()Lcom/hazelcast/internal/partition/impl/PartitionStateManager; $% #&.com/hazelcast/internal/partition/MigrationInfo(getPartitionId()I *+ ),getMigrationManager:()Lcom/hazelcast/internal/partition/impl/MigrationManager; ./ #06com/hazelcast/internal/partition/impl/MigrationManager2removeFinalizingMigration3(Lcom/hazelcast/internal/partition/MigrationInfo;)Z 45 36java/lang/IllegalStateException8java/lang/StringBuilder: ;0This migration is not registered as finalizing: =append-(Ljava/lang/String;)Ljava/lang/StringBuilder; ?@ ;A-(Ljava/lang/Object;)Ljava/lang/StringBuilder; ?C ;DtoString()Ljava/lang/String; FG ;H(Ljava/lang/String;)V J 9K;com/hazelcast/internal/partition/impl/PartitionStateManagerMisOldBackupReplicaOwner()Z OP Q isMigrating(I)Z ST NUMAnother replica migration is started on the same partition before finalizing W getNodeEngine ()Lcom/hazelcast/spi/NodeEngine; YZ [%com/hazelcast/spi/impl/NodeEngineImpl]notifyServices*(Lcom/hazelcast/spi/impl/NodeEngineImpl;)V _` a-com/hazelcast/spi/partition/MigrationEndpointcSOURCE e df commitSource h i DESTINATION k dlrollbackDestination n oclearMigratingFlag(I)V qr NsonPartitionMigrate3(Lcom/hazelcast/internal/partition/MigrationInfo;)V uv ^wpartitionServiceDLcom/hazelcast/internal/partition/impl/InternalPartitionServiceImpl;partitionStateManager=Lcom/hazelcast/internal/partition/impl/PartitionStateManager; partitionIdI nodeEngine'Lcom/hazelcast/spi/impl/NodeEngineImpl;getPartitionMigrationEvent-()Lcom/hazelcast/spi/PartitionMigrationEvent; getMigrationAwareServices()Ljava/util/Collection; java/util/Collectioniterator()Ljava/util/Iterator; )com/hazelcast/spi/PartitionMigrationEventjava/util/IteratorhasNext P next  'com/hazelcast/spi/MigrationAwareServicebeforeMigrationW(Lcom/hazelcast/spi/PartitionMigrationEvent;Lcom/hazelcast/spi/MigrationAwareService;)V finishMigration service)Lcom/hazelcast/spi/MigrationAwareService;event+Lcom/hazelcast/spi/PartitionMigrationEvent;migrationAwareServicesALjava/util/Collection;Ljava/util/Collection; ,getSourceCurrentReplicaIndex + )!getDestinationCurrentReplicaIndex + )getSourceNewReplicaIndex + )getDestinationNewReplicaIndex + )5(Lcom/hazelcast/spi/partition/MigrationEndpoint;III)V  getReplicaManagerA()Lcom/hazelcast/internal/partition/impl/PartitionReplicaManager; # getLogger!()Lcom/hazelcast/logging/ILogger; clearPartitionReplicaVersions r com/hazelcast/logging/ILoggerisFinestEnabled P DReplica versions are cleared in source after migration. partitionId=(I)Ljava/lang/StringBuilder; ? ;finest J =com/hazelcast/internal/partition/impl/PartitionReplicaManager getNamespaces(I)Ljava/util/Collection; "com/hazelcast/spi/ServiceNamespaceupdatePartitionReplicaVersionsi(Lcom/hazelcast/internal/partition/impl/PartitionReplicaManager;ILcom/hazelcast/spi/ServiceNamespace;I)[J AReplica versions are set after SHIFT DOWN migration. partitionId= namespace:  replica versions=java/util/Arrays([J)Ljava/lang/String; F versions[J namespace$Lcom/hazelcast/spi/ServiceNamespace;replicaManager?Lcom/hazelcast/internal/partition/impl/PartitionReplicaManager;loggerLcom/hazelcast/logging/ILogger;sourceNewReplicaIndex((ILcom/hazelcast/spi/ServiceNamespace;)V PReplica versions are cleared in destination after failed migration. partitionId=java/lang/Mathmax(II)I TReplica versions are rolled back in destination after failed migration. partitionId= replicaOffsetdestinationCurrentReplicaIndexgetPartitionReplicaVersions)(ILcom/hazelcast/spi/ServiceNamespace;)[J  fill([JIIJ)V   replicaIndexjava/lang/Throwable .(Lcom/hazelcast/spi/PartitionMigrationEvent;)V   Error before migration -> warning*(Ljava/lang/String;Ljava/lang/Throwable;)V  eLjava/lang/Throwable;commitMigration  rollbackMigration  $Error while finalizing migration ->  getSource5()Lcom/hazelcast/internal/partition/PartitionReplica;  ) com/hazelcast/spi/NodeEngine"getLocalMember()Lcom/hazelcast/core/Member; $% #&1com/hazelcast/internal/partition/PartitionReplica( isIdentical(Lcom/hazelcast/core/Member;)Z *+ ),source3Lcom/hazelcast/internal/partition/PartitionReplica;returnsResponsevalidatesTarget readInternal&(Lcom/hazelcast/nio/ObjectDataInput;)Vjava/io/IOException4'java/lang/UnsupportedOperationException6 7in#Lcom/hazelcast/nio/ObjectDataInput; writeInternal'(Lcom/hazelcast/nio/ObjectDataOutput;)Vout$Lcom/hazelcast/nio/ObjectDataOutput;getIdCodeLineNumberTableLocalVariableTable StackMapTableLocalVariableTypeTable Exceptions SourceFile1  @N****A9: ;<=B @l**+*,*A?@ ABCB*  @m*!#L+'M*->+1*7!9Y;Y<>B*EIL*R),V!9Y;Y<XB*EIL*\^:*b*g* *j*m**p,t* *xCA#N,&^AFGH IK#LAOPVnZw[}]^_`cdegB4yz {|}~wI_`@b*M*N*R+-::*,-::*,CA* oq vx/y6z9}W~^aB>/Wbb] XD  X@H*<Y**g * **g * *CZ"ddddA7GBHC}~h@ *<*!#M,N*:*6/*;Y<ʶBͶI*wq-ֹ:[:*-d:4;Y<޶BBEBBIC#R#^AJ !&+5RdBR;I}~ yz!~r@:*!#M,N-ֹ::-C#A /69B4/::}~2yz -n@ *<*!#M,N*:*6/*;Y<BͶI~*6-ֹ:[:*-d: 4;Y<BBEB BIC$S#^AJ !',6S`B\ ; I`n~}~ yz!~@x+-: AB>}~~ @*,+ "N*;Y<B+EI-  CJ A )B* ***@;* ,+ ,+"N*;Y<B+EI- C B A:B*;;;OP@|,*!L+!*+*\'-C *)@A+B,$./0P@,AB 1P@,AB 23@<7Y8AB9:E5;<@<7Y8AB=>E5?+@27Y8AB F