e.getMessage());
out.println
(protocol.new ProtocolError(e).wireFormat());
continue;
}
ResponseMessage responseMessage = null;
if (requestMessage.getOp() == protocol.PROPOSE) {
responseMessage = process((Propose) requestMessage);
} else if (requestMessage.getOp() == protocol.ACCEPT) {
responseMessage = process((Accept) requestMessage);
} else if (requestMessage.getOp() == protocol.SHUTDOWN) {
break;
} else {
LoggerUtils.logMsg(logger, envImpl,
formatter, Level.SEVERE,
"Unrecognized request: " +
requestLine);
continue;
}
/*
* The request message may be of an earlier version. If so,
* this node transparently read the older version. JE only
* throws out InvalidMesageException when the version of
* the request message is newer than the current protocol.
* To avoid sending a repsonse that the requester cannot
* understand, we send a response in the same version as
* that of the original request message.
*/
responseMessage.setSendVersion
(requestMessage.getSendVersion());
out.println(responseMessage.wireFormat());
} catch (IOException e) {
LoggerUtils.logMsg
(logger, envImpl, formatter, Level.WARNING,
"IO error on socket: " + e.getMessage());
continue;