Modified prepareResponse() to call queueOutboundClientMessage instead of directly setting the currentOutboundMessage.
This commit is contained in:
@@ -232,7 +232,8 @@ public boolean isSsl() {
|
|||||||
private void queueOutboundClientMessage(MessageBuffer messageBuffer) {
|
private void queueOutboundClientMessage(MessageBuffer messageBuffer) {
|
||||||
boolean notify = false;
|
boolean notify = false;
|
||||||
|
|
||||||
synchronized(this) {
|
if(messageBuffer != null) {
|
||||||
|
synchronized(getLock()) {
|
||||||
if(currentOutboundMessage == null) {
|
if(currentOutboundMessage == null) {
|
||||||
lastOutboundMessage = currentOutboundMessage = messageBuffer;
|
lastOutboundMessage = currentOutboundMessage = messageBuffer;
|
||||||
notify = true;
|
notify = true;
|
||||||
@@ -246,6 +247,7 @@ private void queueOutboundClientMessage(MessageBuffer messageBuffer) {
|
|||||||
if(notify) {
|
if(notify) {
|
||||||
notifyListenerOfPendingWrite();
|
notifyListenerOfPendingWrite();
|
||||||
}//if//
|
}//if//
|
||||||
|
}//if//
|
||||||
}//queueOutboundClientMessage()//
|
}//queueOutboundClientMessage()//
|
||||||
private void writeSessionCookies(Response response, PrintStream pout) {
|
private void writeSessionCookies(Response response, PrintStream pout) {
|
||||||
ISession session = response.getSession();
|
ISession session = response.getSession();
|
||||||
@@ -515,7 +517,8 @@ private void prepareResponse(Response response) {
|
|||||||
// }//if//
|
// }//if//
|
||||||
|
|
||||||
//Save the buffer as the current pending outbound message for this socket context.//
|
//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//
|
}//try//
|
||||||
catch(Throwable e) {
|
catch(Throwable e) {
|
||||||
Debug.log("Fatal Error: Failed to build and send the response message due to an exception.", 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