@Override public void promoteLocalLiteMember() { MemberImpl member = getLocalMember(); if (!member.isLiteMember()) { throw new IllegalStateException(member + " is not a lite member!"); } MemberImpl master = getMasterMember(); PromoteLiteMemberOp op = new PromoteLiteMemberOp(); op.setCallerUuid(member.getUuid()); InternalCompletableFuture<MembersView> future = nodeEngine.getOperationService().invokeOnTarget(SERVICE_NAME, op, master.getAddress()); MembersView view = future.join(); lock.lock(); try { if (!member.getAddress().equals(master.getAddress())) { updateMembers(view, master.getAddress(), master.getUuid(), getThisUuid()); } MemberImpl localMemberInMemberList = membershipManager.getMember(member.getAddress()); if (localMemberInMemberList.isLiteMember()) { throw new IllegalStateException("Cannot promote to data member! Previous master was: " + master.getAddress() + ", Current master is: " + getMasterAddress()); } } finally { lock.unlock(); } }
@Override public void promoteLocalLiteMember() { MemberImpl member = getLocalMember(); if (!member.isLiteMember()) { throw new IllegalStateException(member + " is not a lite member!"); } MemberImpl master = getMasterMember(); PromoteLiteMemberOp op = new PromoteLiteMemberOp(); op.setCallerUuid(member.getUuid()); InternalCompletableFuture<MembersView> future = nodeEngine.getOperationService().invokeOnTarget(SERVICE_NAME, op, master.getAddress()); MembersView view = future.join(); lock.lock(); try { if (!member.getAddress().equals(master.getAddress())) { updateMembers(view, master.getAddress(), master.getUuid(), getThisUuid()); } MemberImpl localMemberInMemberList = membershipManager.getMember(member.getAddress()); if (localMemberInMemberList.isLiteMember()) { throw new IllegalStateException("Cannot promote to data member! Previous master was: " + master.getAddress() + ", Current master is: " + getMasterAddress()); } } finally { lock.unlock(); } }