Check to be sure that the client is still around before we send the
invocation response. (Better to catch it and report it here than have the dobjmgr complain when it tries to dispatch an event on a non-existent object.) git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@224 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
//
|
||||
// $Id: InvocationProvider.java,v 1.4 2001/08/11 00:05:58 mdb Exp $
|
||||
// $Id: InvocationProvider.java,v 1.5 2001/08/11 02:02:24 mdb Exp $
|
||||
|
||||
package com.threerings.cocktail.cher.server;
|
||||
|
||||
import com.threerings.cocktail.cher.dobj.MessageEvent;
|
||||
import com.samskivert.util.StringUtil;
|
||||
|
||||
import com.threerings.cocktail.cher.Log;
|
||||
import com.threerings.cocktail.cher.data.ClientObject;
|
||||
import com.threerings.cocktail.cher.data.InvocationObject;
|
||||
import com.threerings.cocktail.cher.dobj.MessageEvent;
|
||||
|
||||
/**
|
||||
* Invocation providers should extend this class when implementing
|
||||
@@ -114,10 +117,18 @@ public class InvocationProvider
|
||||
|
||||
protected void deliverResponse (ClientObject source, Object[] args)
|
||||
{
|
||||
// make sure they didn't go away in the meanwhile
|
||||
if (source.isActive()) {
|
||||
// create the response event
|
||||
MessageEvent mevt = new MessageEvent(
|
||||
source.getOid(), InvocationObject.RESPONSE_NAME, args);
|
||||
// and ship it off
|
||||
CherServer.omgr.postEvent(mevt);
|
||||
|
||||
} else {
|
||||
Log.warning("Dropping invrsp due to disappearing client " +
|
||||
"[cloid=" + source.getOid() +
|
||||
", args=" + StringUtil.toString(args) + "].");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user