summaryrefslogtreecommitdiff
path: root/java/client/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'java/client/src/main')
-rw-r--r--java/client/src/main/java/org/apache/qpidity/nclient/Client.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/java/client/src/main/java/org/apache/qpidity/nclient/Client.java b/java/client/src/main/java/org/apache/qpidity/nclient/Client.java
index 1bb661c3ef..03294e11e0 100644
--- a/java/client/src/main/java/org/apache/qpidity/nclient/Client.java
+++ b/java/client/src/main/java/org/apache/qpidity/nclient/Client.java
@@ -49,6 +49,8 @@ public class Client implements org.apache.qpidity.nclient.Connection
ConnectionDelegate connectionDelegate = new ConnectionDelegate()
{
+ private boolean receivedClose = false;
+
public SessionDelegate getSessionDelegate()
{
return new ClientSessionDelegate();
@@ -62,7 +64,15 @@ public class Client implements org.apache.qpidity.nclient.Connection
}
else
{
- throw new RuntimeException("Connection closed",t);
+ throw new RuntimeException("connection closed",t);
+ }
+ }
+
+ public void closed()
+ {
+ if (_closedListner != null && !this.receivedClose)
+ {
+ _closedListner.onClosed(ErrorCode.CONNECTION_ERROR,ErrorCode.CONNECTION_ERROR.getDesc());
}
}
@@ -81,6 +91,8 @@ public class Client implements org.apache.qpidity.nclient.Connection
{
_closedListner.onClosed(errorCode, connectionClose.getReplyText());
}
+
+ this.receivedClose = true;
}
};