From c2b44deb2d9bf689d474255989c3397fcfa2a080 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Fri, 27 Jul 2007 02:38:14 +0000 Subject: [PATCH] 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 --- .../com/threerings/presents/peer/server/PeerManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/java/com/threerings/presents/peer/server/PeerManager.java b/src/java/com/threerings/presents/peer/server/PeerManager.java index d926db41b..7c630a2c7 100644 --- a/src/java/com/threerings/presents/peer/server/PeerManager.java +++ b/src/java/com/threerings/presents/peer/server/PeerManager.java @@ -365,12 +365,17 @@ public class PeerManager // clear out the local object manager's proxy mapping PresentsServer.omgr.clearProxyObject(remoteOid, bits.right); - // now unsubscribe from the object on our peer final Client peer = getPeerClient(nodeName); if (peer == null) { log.warning("Unable to unsubscribe from proxy, missing peer [key=" + key + "]."); 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); }