summaryrefslogtreecommitdiff
path: root/java/common
diff options
context:
space:
mode:
authorKim van der Riet <kpvdr@apache.org>2007-01-19 14:05:48 +0000
committerKim van der Riet <kpvdr@apache.org>2007-01-19 14:05:48 +0000
commitdf04f9dcf9d869f146923ac150b7110b1224f690 (patch)
tree2c7c9dcff7fe20c4e1b5efa77759def325f3a457 /java/common
parent380e5b0d75fa8b4a663e39cfed69f81a10ec5980 (diff)
downloadqpid-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')
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/AMQMethodBody.java8
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/RequestManager.java4
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java2
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,