diff --git a/src/java/com/threerings/presents/client/ClientDObjectMgr.java b/src/java/com/threerings/presents/client/ClientDObjectMgr.java index cbf879308..3526809ac 100644 --- a/src/java/com/threerings/presents/client/ClientDObjectMgr.java +++ b/src/java/com/threerings/presents/client/ClientDObjectMgr.java @@ -233,6 +233,9 @@ public class ClientDObjectMgr // apply the event to the object boolean notify = event.applyToObject(target); + // forward to any proxies + target.notifyProxies(event); + // if this is an object destroyed event, we need to remove the object from our table if (event instanceof ObjectDestroyedEvent) { // Log.info("Pitching destroyed object [oid=" + toid + diff --git a/src/java/com/threerings/presents/peer/server/PeerManager.java b/src/java/com/threerings/presents/peer/server/PeerManager.java index be8646709..d833e152b 100644 --- a/src/java/com/threerings/presents/peer/server/PeerManager.java +++ b/src/java/com/threerings/presents/peer/server/PeerManager.java @@ -399,7 +399,7 @@ public class PeerManager // then in our peers for (PeerNode peer : _peers.values()) { - if (peer.nodeobj.locks.contains(lock)) { + if (peer.nodeobj != null && peer.nodeobj.locks.contains(lock)) { return peer._record.nodeName; } } @@ -670,7 +670,7 @@ public class PeerManager } // otherwise configure our client with the right bits and logon - _client.setCredentials(new PeerCreds(_record.nodeName, _sharedSecret)); + _client.setCredentials(new PeerCreds(_nodeName, _sharedSecret)); _client.setServer(record.hostName, new int[] { _record.port }); _client.logon(); _lastConnectStamp = System.currentTimeMillis();