Modified prepareResponse() to call queueOutboundClientMessage instead of directly setting the currentOutboundMessage.
This commit is contained in:
@@ -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(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//
|
||||
else {
|
||||
lastOutboundMessage.setNext(messageBuffer);
|
||||
lastOutboundMessage = messageBuffer;
|
||||
}//else//
|
||||
}//synchronized()//
|
||||
|
||||
if(notify) {
|
||||
notifyListenerOfPendingWrite();
|
||||
}//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);
|
||||
|
||||
Reference in New Issue
Block a user