@Override protected synchronized Set addAllObjectIDs(Set oids, final NodeID remoteNode) { oids = super.addAllObjectIDs(oids, remoteNode); this.objectLookupTable.retainObjectsFrom(remoteNode, oids); return oids; } }
@Override protected synchronized Set addAllObjectIDs(Set oids, final NodeID remoteNode) { oids = super.addAllObjectIDs(oids, remoteNode); this.objectLookupTable.retainObjectsFrom(remoteNode, oids); return oids; } }
@Override public synchronized void initializeHandshake(final NodeID thisNode, final NodeID remoteNode, final ClientHandshakeMessage handshakeMessage) { if (isShutdown()) return; assertPausedOrRejoinInProgress("Attempt to initiateHandshake " + thisNode + " <--> " + remoteNode); changeStateToStarting(); addAllObjectIDs(handshakeMessage.getObjectIDs(), remoteNode); // Ignore objects reaped before handshaking otherwise those won't be in the list sent to L2 at handshaking. // Leave an inconsistent state between L1 and L2. Reaped object is in L1 removeObjects but L2 doesn't aware // and send objects over. This can happen when L2 restarted and other L1 makes object requests before this // L1's first object request to L2. this.remoteObjectManager.clear((GroupID) remoteNode); }
@Override public synchronized void initializeHandshake(final NodeID thisNode, final NodeID remoteNode, final ClientHandshakeMessage handshakeMessage) { if (isShutdown()) return; assertPausedOrRejoinInProgress("Attempt to initiateHandshake " + thisNode + " <--> " + remoteNode); changeStateToStarting(); addAllObjectIDs(handshakeMessage.getObjectIDs(), remoteNode); // Ignore objects reaped before handshaking otherwise those won't be in the list sent to L2 at handshaking. // Leave an inconsistent state between L1 and L2. Reaped object is in L1 removeObjects but L2 doesn't aware // and send objects over. This can happen when L2 restarted and other L1 makes object requests before this // L1's first object request to L2. this.remoteObjectManager.clear((GroupID) remoteNode); }
@Override public synchronized void initializeHandshake(final NodeID thisNode, final NodeID remoteNode, final ClientHandshakeMessage handshakeMessage) { if (isShutdown()) return; assertPausedOrRejoinInProgress("Attempt to initiateHandshake " + thisNode + " <--> " + remoteNode); changeStateToStarting(); ObjectIDSet oids = new BitSetObjectIDSet(); addAllObjectIDs(oids, remoteNode); handshakeMessage.setObjectIDs(oids); // Ignore objects reaped before handshaking otherwise those won't be in the list sent to L2 at handshaking. // Leave an inconsistent state between L1 and L2. Reaped object is in L1 removeObjects but L2 doesn't aware // and send objects over. This can happen when L2 restarted and other L1 makes object requests before this // L1's first object request to L2. this.remoteObjectManager.clear((GroupID) remoteNode); }