You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2013/09/29 14:42:33 UTC

svn commit: r1527319 - in /qpid/trunk/qpid/java: amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/ amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/

Author: rgodfrey
Date: Sun Sep 29 12:42:33 2013
New Revision: 1527319

URL: http://svn.apache.org/r1527319
Log:
QPID-5190 : [JMS AMQP 1.0 CLient] Notify the connection endpoint when the socket is remotely closed

Modified:
    qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
    qpid/trunk/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Connection.java
    qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/ConnectionEndpoint.java

Modified: qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java?rev=1527319&r1=1527318&r2=1527319&view=diff
==============================================================================
--- qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java (original)
+++ qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java Sun Sep 29 12:42:33 2013
@@ -110,7 +110,7 @@ public class SessionImpl implements Sess
                     }
                     try
                     {
-                        final Error error = end.getError();
+                        final Error error = end == null ? null : end.getError();
                         final ExceptionListener exceptionListener = _connection.getExceptionListener();
                         if(exceptionListener != null)
                         {

Modified: qpid/trunk/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Connection.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Connection.java?rev=1527319&r1=1527318&r2=1527319&view=diff
==============================================================================
--- qpid/trunk/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Connection.java (original)
+++ qpid/trunk/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Connection.java Sun Sep 29 12:42:33 2013
@@ -390,9 +390,18 @@ public class Connection implements Socke
 
 
             }
+            if(!handler.isDone())
+            {
+                _conn.inputClosed();
+                if(_conn.getConnectionEventListener() != null)
+                {
+                    _conn.getConnectionEventListener().closeReceived();
+                }
+            }
         }
         catch (IOException e)
         {
+            _conn.inputClosed();
             e.printStackTrace();
         }
     }

Modified: qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/ConnectionEndpoint.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/ConnectionEndpoint.java?rev=1527319&r1=1527318&r2=1527319&view=diff
==============================================================================
--- qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/ConnectionEndpoint.java (original)
+++ qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/ConnectionEndpoint.java Sun Sep 29 12:42:33 2013
@@ -380,6 +380,20 @@ public class ConnectionEndpoint implemen
         if (!_closedForInput)
         {
             _closedForInput = true;
+            switch(_state)
+            {
+                case UNOPENED:
+                case AWAITING_OPEN:
+                case CLOSE_SENT:
+                    _state = ConnectionState.CLOSED;
+                case OPEN:
+                    _state = ConnectionState.CLOSE_RECEIVED;
+                case CLOSED:
+                    // already sent our close - too late to do anything more
+                    break;
+                default:
+            }
+
             for (int i = 0; i < _receivingSessions.length; i++)
             {
                 if (_receivingSessions[i] != null)



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org