Modified prepareResponse() to call queueOutboundClientMessage instead of directly setting the currentOutboundMessage.

This commit is contained in:
wcrisman
2014-12-28 21:13:24 -08:00
parent c7188095d0
commit 6cbd188867

View File

@@ -232,19 +232,21 @@ public boolean isSsl() {
private void queueOutboundClientMessage(MessageBuffer messageBuffer) {
boolean notify = false;
synchronized(this) {
if(currentOutboundMessage == null) {
lastOutboundMessage = currentOutboundMessage = messageBuffer;
notify = true;
}//if//
else {
lastOutboundMessage.setNext(messageBuffer);
lastOutboundMessage = messageBuffer;
}//else//
}//synchronized()//
if(messageBuffer != null) {
synchronized(getLock()) {
if(currentOutboundMessage == null) {
lastOutboundMessage = currentOutboundMessage = messageBuffer;
notify = true;
}//if//
else {
lastOutboundMessage.setNext(messageBuffer);
lastOutboundMessage = messageBuffer;
}//else//
}//synchronized()//
if(notify) {
notifyListenerOfPendingWrite();
if(notify) {
notifyListenerOfPendingWrite();
}//if//
}//if//
}//queueOutboundClientMessage()//
private void writeSessionCookies(Response response, PrintStream pout) {
@@ -515,7 +517,8 @@ private void prepareResponse(Response response) {
// }//if//
//Save the buffer as the current pending outbound message for this socket context.//
currentOutboundMessage = new MessageBuffer(buffer, response, content != null && request.getRequestType() != Request.TYPE_HEAD ? content : null);
//currentOutboundMessage = new MessageBuffer(buffer, response, content != null && request.getRequestType() != Request.TYPE_HEAD ? content : null);
queueOutboundClientMessage(new MessageBuffer(buffer, response, content != null && request.getRequestType() != Request.TYPE_HEAD ? content : null));
}//try//
catch(Throwable e) {
Debug.log("Fatal Error: Failed to build and send the response message due to an exception.", e);