diff options
| author | Kim van der Riet <kpvdr@apache.org> | 2007-01-19 14:05:48 +0000 |
|---|---|---|
| committer | Kim van der Riet <kpvdr@apache.org> | 2007-01-19 14:05:48 +0000 |
| commit | df04f9dcf9d869f146923ac150b7110b1224f690 (patch) | |
| tree | 2c7c9dcff7fe20c4e1b5efa77759def325f3a457 /java/common | |
| parent | 380e5b0d75fa8b4a663e39cfed69f81a10ec5980 (diff) | |
| download | qpid-python-df04f9dcf9d869f146923ac150b7110b1224f690.tar.gz | |
Solved multithreading issue in RequestManager where responses would arrive before the request made it into the requestMap. Fixed server's ChannelCloseHandler and ConnectionCloseMethodHandler to work with new write methods.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@497820 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common')
3 files changed, 10 insertions, 4 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBody.java b/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBody.java index b7f9fb4666..40cd041ebf 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBody.java +++ b/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBody.java @@ -82,9 +82,11 @@ public abstract class AMQMethodBody extends AMQBody public String toString() { - StringBuffer buf = new StringBuffer(getClass().toString()); - buf.append(" Class: ").append(getClazz()); - buf.append(" Method: ").append(getMethod()); + String className = getClass().getName(); + StringBuffer buf = new StringBuffer(className.substring(className.lastIndexOf(".") + 1)); + buf.append(" [C").append(getClazz()); + buf.append(" M").append(getMethod()); + buf.append("]"); return buf.toString(); } 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 b567aea37e..be3ba5a344 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 @@ -62,8 +62,9 @@ public class RequestManager long requestId = getNextRequestId(); // Get new request ID AMQFrame requestFrame = AMQRequestBody.createAMQFrame(channel, requestId, lastProcessedResponseId, requestMethodBody); - protocolWriter.writeFrame(requestFrame); requestSentMap.put(requestId, methodListener); + protocolWriter.writeFrame(requestFrame); + // System.out.println("[" + channel + "] SEND REQUEST: requestId = " + requestId + " {" + this.toString().substring(this.toString().lastIndexOf("@")) + "} " + requestMethodBody); return requestId; } @@ -72,6 +73,7 @@ public class RequestManager { long requestIdStart = responseBody.getRequestId(); long requestIdStop = requestIdStart + responseBody.getBatchOffset(); + // System.out.println("[" + channel + "] RECEIVE RESPONSE: " + 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 d6c72290c4..15193637bc 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 @@ -106,6 +106,7 @@ public class ResponseManager public void requestReceived(AMQRequestBody requestBody) throws Exception { long requestId = requestBody.getRequestId(); + // System.out.println("[" + channel + "] RECEIVE REQUEST: " + requestBody + "; " + requestBody.getMethodPayload()); // TODO: responseMark is used in HA, but until then, ignore... long responseMark = requestBody.getResponseMark(); lastReceivedRequestId = requestId; @@ -118,6 +119,7 @@ public class ResponseManager public void sendResponse(long requestId, AMQMethodBody responseMethodBody) throws RequestResponseMappingException { + // System.out.println("[" + channel + "] SEND RESPONSE: requestId = " + requestId + "; " + responseMethodBody); ResponseStatus responseStatus = responseMap.get(requestId); if (responseStatus == null) throw new RequestResponseMappingException(requestId, |
