diff --git a/src/java/com/threerings/presents/peer/server/PeerManager.java b/src/java/com/threerings/presents/peer/server/PeerManager.java index ef0d80277..9b32ca59c 100644 --- a/src/java/com/threerings/presents/peer/server/PeerManager.java +++ b/src/java/com/threerings/presents/peer/server/PeerManager.java @@ -485,7 +485,10 @@ public abstract class PeerManager return; } - // build a set of node names (including the local node) to + // serialize the action to make sure we can + byte[] requestBytes = flattenRequest(request); + + // build a set of node names (including the local node) to which to send the request final Set nodes = Sets.newHashSet(); if (request.isApplicable(_nodeobj)) { nodes.add(_nodeobj.nodeName); @@ -495,15 +498,11 @@ public abstract class PeerManager nodes.add(peer.getNodeName()); } } - if (nodes.isEmpty() && onDropped != null) { onDropped.run(); return; } - // serialize the action to make sure we can - byte[] requestBytes = flattenRequest(request); - for (final String node : nodes) { invokeNodeRequest(node, requestBytes, new InvocationService.ResultListener() { public void requestProcessed (Object result) {