From 1c4cfe501f8a165b8ec42c1a9f4dbc0b2be65232 Mon Sep 17 00:00:00 2001 From: Charlie Groves Date: Fri, 11 Apr 2008 21:04:48 +0000 Subject: [PATCH] Delay notifying the client about the under ass rug yanking until we're in finishResolved in case UserChangeListener.changeReported performs a long operation off the omgr thread and allows the client to respond before _clobj has actually been switched git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4997 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../com/threerings/presents/server/PresentsClient.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/java/com/threerings/presents/server/PresentsClient.java b/src/java/com/threerings/presents/server/PresentsClient.java index 7e8124a71..cebd42b67 100644 --- a/src/java/com/threerings/presents/server/PresentsClient.java +++ b/src/java/com/threerings/presents/server/PresentsClient.java @@ -24,7 +24,6 @@ package com.threerings.presents.server; import java.io.IOException; import java.net.InetAddress; import java.util.HashMap; -import java.util.Iterator; import java.util.TimeZone; import java.util.logging.Level; @@ -204,10 +203,6 @@ public class PresentsClient return; } - // let the client know that the rug has been yanked out from under their ass - Object[] args = new Object[] { Integer.valueOf(clobj.getOid()) }; - _clobj.postMessage(ClientObject.CLOBJ_CHANGED, args); - // call down to any derived classes clientObjectWillChange(_clobj, clobj); @@ -231,6 +226,10 @@ public class PresentsClient */ protected void finishResolved (Name username, ClientObject clobj) { + // let the client know that the rug has been yanked out from under their ass + Object[] args = new Object[] { Integer.valueOf(clobj.getOid()) }; + _clobj.postMessage(ClientObject.CLOBJ_CHANGED, args); + // release our old client object; this will destroy it _cmgr.releaseClientObject(_username);