more client fixes

This commit is contained in:
BetaSteward 2011-06-02 23:09:21 -04:00
parent 3ef090b6f5
commit d6e239586b
5 changed files with 54 additions and 42 deletions

View file

@ -44,7 +44,7 @@ public class CallbackClientDaemon extends Thread {
private final static Logger logger = Logger.getLogger(CallbackClientDaemon.class);
private static ExecutorService callbackExecutor = Executors.newCachedThreadPool();
private ExecutorService callbackExecutor = Executors.newFixedThreadPool(1);
private final CallbackClient client;
private final Connection connection;
private final UUID id;
@ -67,19 +67,22 @@ public class CallbackClientDaemon extends Thread {
final ClientCallback callback = callbackMethod.makeDirectCall();
Ack ackMethod = new Ack(connection, id, callback.getMessageId());
ackMethod.makeCall();
callbackExecutor.submit(
new Runnable() {
@Override
public void run() {
try {
client.processCallback(callback);
}
catch (Exception ex) {
logger.fatal("CallbackClientDaemon error ", ex);
if (callbackExecutor.isShutdown())
logger.fatal("Attempt to submit callback to shutdown executor");
else
callbackExecutor.submit(
new Runnable() {
@Override
public void run() {
try {
client.processCallback(callback);
}
catch (Exception ex) {
logger.fatal("CallbackClientDaemon error ", ex);
}
}
}
}
);
);
} catch (CallbackException ex) {
logger.fatal("Callback failed ", ex);
}