From 210aacb8d90319e0a643836fc55a6717f54ddb05 Mon Sep 17 00:00:00 2001 From: Kim van der Riet Date: Mon, 22 Jan 2007 14:53:43 +0000 Subject: Improvements to debugging messages from Request/ResponseManager. Added timed wait for Channel.CloseOk massage in broker's closeChannelRequest method. Added checks for illegal frames that would open a closed channel git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@498631 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/qpid/framing/RequestManager.java | 15 +++++++++++---- .../java/org/apache/qpid/framing/ResponseManager.java | 17 ++++++++++++----- 2 files changed, 23 insertions(+), 9 deletions(-) (limited to 'java/common/src') diff --git a/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java b/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java index a3379484bd..1bad249bc2 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java +++ b/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java @@ -29,7 +29,13 @@ import org.apache.qpid.protocol.AMQProtocolWriter; public class RequestManager { private int channel; - AMQProtocolWriter protocolWriter; + private AMQProtocolWriter protocolWriter; + + /** + * Used for logging and debugging only - allows the context of this instance + * to be known. + */ + private boolean serverFlag; /** * Request and response frames must have a requestID and responseID which @@ -45,10 +51,11 @@ public class RequestManager private ConcurrentHashMap requestSentMap; - public RequestManager(int channel, AMQProtocolWriter protocolWriter) + public RequestManager(int channel, AMQProtocolWriter protocolWriter, boolean serverFlag) { this.channel = channel; this.protocolWriter = protocolWriter; + this.serverFlag = serverFlag; requestIdCount = 1L; lastProcessedResponseId = 0L; requestSentMap = new ConcurrentHashMap(); @@ -64,7 +71,7 @@ public class RequestManager lastProcessedResponseId, requestMethodBody); requestSentMap.put(requestId, methodListener); protocolWriter.writeFrame(requestFrame); - // System.out.println("[" + channel + "] SEND REQUEST: requestId = " + requestId + " {" + this.toString().substring(this.toString().lastIndexOf("@")) + "} " + requestMethodBody); + // System.out.println((serverFlag ? "SRV" : "CLI") + " TX REQ: ch=" + channel + " Req[" + requestId + " " + lastProcessedResponseId + "]; " + requestMethodBody); return requestId; } @@ -73,7 +80,7 @@ public class RequestManager { long requestIdStart = responseBody.getRequestId(); long requestIdStop = requestIdStart + responseBody.getBatchOffset(); - // System.out.println("[" + channel + "] RECEIVE RESPONSE: " + responseBody + "; " + responseBody.getMethodPayload()); + // System.out.println((serverFlag ? "SRV" : "CLI") + " RX RES: ch=" + channel + " " + responseBody + "; " + responseBody.getMethodPayload()); for (long requestId = requestIdStart; requestId <= requestIdStop; requestId++) { AMQMethodListener methodListener = requestSentMap.get(requestId); diff --git a/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java b/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java index 43c6de74c5..90f33a08c0 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java +++ b/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java @@ -31,8 +31,14 @@ import org.apache.qpid.protocol.AMQProtocolWriter; public class ResponseManager { private int channel; - AMQMethodListener methodListener; - AMQProtocolWriter protocolWriter; + private AMQMethodListener methodListener; + private AMQProtocolWriter protocolWriter; + + /** + * Used for logging and debugging only - allows the context of this instance + * to be known. + */ + private boolean serverFlag; /** * Determines the batch behaviour of the manager. @@ -91,11 +97,12 @@ public class ResponseManager private ConcurrentHashMap responseMap; public ResponseManager(int channel, AMQMethodListener methodListener, - AMQProtocolWriter protocolWriter) + AMQProtocolWriter protocolWriter, boolean serverFlag) { this.channel = channel; this.methodListener = methodListener; this.protocolWriter = protocolWriter; + this.serverFlag = serverFlag; responseIdCount = 1L; lastReceivedRequestId = 0L; responseMap = new ConcurrentHashMap(); @@ -106,7 +113,7 @@ public class ResponseManager public void requestReceived(AMQRequestBody requestBody) throws Exception { long requestId = requestBody.getRequestId(); - // System.out.println("[" + channel + "] RECEIVE REQUEST: " + requestBody + "; " + requestBody.getMethodPayload()); + // System.out.println((serverFlag ? "SRV" : "CLI") + " RX REQ: ch=" + channel + " " + requestBody + "; " + requestBody.getMethodPayload()); // TODO: responseMark is used in HA, but until then, ignore... long responseMark = requestBody.getResponseMark(); lastReceivedRequestId = requestId; @@ -119,7 +126,7 @@ public class ResponseManager public void sendResponse(long requestId, AMQMethodBody responseMethodBody) throws RequestResponseMappingException { - // System.out.println("[" + channel + "] SEND RESPONSE: requestId = " + requestId + "; " + responseMethodBody); + // System.out.println((serverFlag ? "SRV" : "CLI") + " TX RES: ch=" + channel + " Res[# " + requestId + "]; " + responseMethodBody); ResponseStatus responseStatus = responseMap.get(requestId); if (responseStatus == null) throw new RequestResponseMappingException(requestId, -- cgit v1.2.1