diff options
3 files changed, 13 insertions, 2 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java b/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java index 1bf1c5bc7f..e3c12a3f50 100644 --- a/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java +++ b/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java @@ -111,6 +111,7 @@ public class AMQConnectionDelegate_0_10 implements AMQConnectionDelegate, Closed } _qpidConnection.connect(brokerDetail.getHost(), brokerDetail.getPort(), _conn.getVirtualHost(), _conn.getUsername(), _conn.getPassword()); + _qpidConnection.setClosedListener(this); } catch (QpidException e) { 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 08ad27fd54..1bb661c3ef 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 @@ -56,7 +56,14 @@ public class Client implements org.apache.qpidity.nclient.Connection public void exception(Throwable t) { - // XXX: need to propogate exception + if (_closedListner != null) + { + _closedListner.onClosed(ErrorCode.CONNECTION_ERROR,ErrorCode.CONNECTION_ERROR.getDesc()); + } + else + { + throw new RuntimeException("Connection closed",t); + } } @Override public void connectionClose(Channel context, ConnectionClose connectionClose) @@ -185,7 +192,9 @@ public class Client implements org.apache.qpidity.nclient.Connection public void setClosedListener(ClosedListener closedListner) { + _closedListner = closedListner; + System.out.println("setting connection listener " + _closedListner); } } diff --git a/java/common/src/main/java/org/apache/qpidity/ErrorCode.java b/java/common/src/main/java/org/apache/qpidity/ErrorCode.java index 3f6308622a..4ff6939139 100644 --- a/java/common/src/main/java/org/apache/qpidity/ErrorCode.java +++ b/java/common/src/main/java/org/apache/qpidity/ErrorCode.java @@ -4,7 +4,8 @@ public enum ErrorCode { //Qpid specific - for the time being UNDEFINED(1,"undefined",true), - MESSAGE_REJECTED(1,"message_rejected",true), + MESSAGE_REJECTED(2,"message_rejected",true), + CONNECTION_ERROR(3,"connection was closed",true), //This might change in the spec, the error class is not applicable NO_ERROR(200,"reply-success",true), |