Once we've unproxied an object, we need to remap it into our Client's
distributed object space so that the unsubscribe from the remote server is properly handled. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4787 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -365,12 +365,17 @@ public class PeerManager
|
|||||||
// clear out the local object manager's proxy mapping
|
// clear out the local object manager's proxy mapping
|
||||||
PresentsServer.omgr.clearProxyObject(remoteOid, bits.right);
|
PresentsServer.omgr.clearProxyObject(remoteOid, bits.right);
|
||||||
|
|
||||||
// now unsubscribe from the object on our peer
|
|
||||||
final Client peer = getPeerClient(nodeName);
|
final Client peer = getPeerClient(nodeName);
|
||||||
if (peer == null) {
|
if (peer == null) {
|
||||||
log.warning("Unable to unsubscribe from proxy, missing peer [key=" + key + "].");
|
log.warning("Unable to unsubscribe from proxy, missing peer [key=" + key + "].");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// restore the object's omgr reference to our ClientDObjectMgr so that it can properly
|
||||||
|
// finish the unsubscription process
|
||||||
|
bits.right.setManager(peer.getDObjectManager());
|
||||||
|
|
||||||
|
// finally unsubscribe from the object on our peer
|
||||||
peer.getDObjectManager().unsubscribeFromObject(remoteOid, bits.left);
|
peer.getDObjectManager().unsubscribeFromObject(remoteOid, bits.left);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user