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 2016/02/11 15:13:12 UTC

svn commit: r1729841 - in /qpid/java/trunk: broker-core/src/main/java/org/apache/qpid/server/logging/messages/ broker-core/src/main/java/org/apache/qpid/server/transport/ broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v...

Author: rgodfrey
Date: Thu Feb 11 14:13:11 2016
New Revision: 1729841

URL: http://svn.apache.org/viewvc?rev=1729841&view=rev
Log:
QPID-7058 : Log the connection state in the case where connection establishment times out

Modified:
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngine.java
    qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java
    qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8.java
    qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java
    qpid/java/trunk/client/src/main/java/org/apache/qpid/client/state/AMQState.java
    qpid/java/trunk/client/src/main/java/org/apache/qpid/client/state/StateWaiter.java

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java?rev=1729841&r1=1729840&r2=1729841&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java Thu Feb 11 14:13:11 2016
@@ -69,7 +69,7 @@ public class ConnectionMessages
 
     /**
      * Log a Connection message of the Format:
-     * <pre>CON-1001 : Open : Port : {0}({1}) Protocol Version {2}[ : SSL][ : Client ID : {3}][ : Client Version : {4}][ : Client Product : {5}]</pre>
+     * <pre>CON-1001 : Open : Destination : {0}({1}) : Protocol Version : {2}[ : SSL][ : Client ID : {3}][ : Client Version : {4}][ : Client Product : {5}]</pre>
      * Optional values are contained in [square brackets] and are numbered
      * sequentially in the method call.
      *
@@ -349,16 +349,44 @@ public class ConnectionMessages
 
     /**
      * Log a Connection message of the Format:
-     * <pre>CON-1003 : Closed due to inactivity</pre>
+     * <pre>CON-1003 : Closed due to inactivity [: {0}]</pre>
      * Optional values are contained in [square brackets] and are numbered
      * sequentially in the method call.
      *
      */
-    public static LogMessage IDLE_CLOSE()
+    public static LogMessage IDLE_CLOSE(String param1, boolean opt1)
     {
         String rawMessage = _messages.getString("IDLE_CLOSE");
+        StringBuffer msg = new StringBuffer();
 
-        final String message = rawMessage;
+        // Split the formatted message up on the option values so we can
+        // rebuild the message based on the configured options.
+        String[] parts = rawMessage.split("\\[");
+        msg.append(parts[0]);
+
+        int end;
+        if (parts.length > 1)
+        {
+
+            // Add Option : : {0}.
+            end = parts[1].indexOf(']');
+            if (opt1)
+            {
+                msg.append(parts[1].substring(0, end));
+            }
+
+            // Use 'end + 1' to remove the ']' from the output
+            msg.append(parts[1].substring(end + 1));
+        }
+
+        rawMessage = msg.toString();
+
+        final Object[] messageArguments = {param1};
+        // Create a new MessageFormat to ensure thread safety.
+        // Sharing a MessageFormat and using applyPattern is not thread safe
+        MessageFormat formatter = new MessageFormat(rawMessage, _currentLocale);
+
+        final String message = formatter.format(messageArguments);
 
         return new LogMessage()
         {

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties?rev=1729841&r1=1729840&r2=1729841&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties Thu Feb 11 14:13:11 2016
@@ -20,7 +20,7 @@
 
 OPEN = CON-1001 : Open : Destination : {0}({1}) : Protocol Version : {2}[ : SSL][ : Client ID : {3}][ : Client Version : {4}][ : Client Product : {5}]
 CLOSE = CON-1002 : Close
-IDLE_CLOSE = CON-1003 : Closed due to inactivity
+IDLE_CLOSE = CON-1003 : Closed due to inactivity [: {0}]
 DROPPED_CONNECTION = CON-1004 : Connection dropped
 CLIENT_VERSION_LOG = CON-1005 : Client version "{0}" logged by validation
 CLIENT_VERSION_REJECT = CON-1006 : Client version "{0}" rejected by validation

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java?rev=1729841&r1=1729840&r2=1729841&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java Thu Feb 11 14:13:11 2016
@@ -708,7 +708,7 @@ public abstract class AbstractAMQPConnec
                 {
                     _logger.warn("Connection has taken more than {} ms to establish identity.  Closing as possible DoS.",
                                  _allowedTime);
-                    getEventLogger().message(ConnectionMessages.IDLE_CLOSE());
+                    getEventLogger().message(ConnectionMessages.IDLE_CLOSE("Protocol authentication not established within timeout period", true));
                     _network.close();
                 }
                 else

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngine.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngine.java?rev=1729841&r1=1729840&r2=1729841&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngine.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngine.java Thu Feb 11 14:13:11 2016
@@ -592,7 +592,7 @@ public class MultiVersionProtocolEngine
         @Override
         public void readerIdle()
         {
-            _broker.getEventLogger().message(ConnectionMessages.IDLE_CLOSE());
+            _broker.getEventLogger().message(ConnectionMessages.IDLE_CLOSE("Protocol header not sent within timeout period", true));
             _network.close();
         }
 

Modified: qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java?rev=1729841&r1=1729840&r2=1729841&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java Thu Feb 11 14:13:11 2016
@@ -201,7 +201,7 @@ public class AMQPConnection_0_10 extends
             @Override
             public Object run()
             {
-                _connection.getEventLogger().message(ConnectionMessages.IDLE_CLOSE());
+                _connection.getEventLogger().message(ConnectionMessages.IDLE_CLOSE("", false));
                 _network.close();
                 return null;
             }

Modified: qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8.java?rev=1729841&r1=1729840&r2=1729841&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8.java Thu Feb 11 14:13:11 2016
@@ -833,7 +833,7 @@ public class AMQPConnection_0_8
             @Override
             public Object run()
             {
-                getEventLogger().message(ConnectionMessages.IDLE_CLOSE());
+                getEventLogger().message(ConnectionMessages.IDLE_CLOSE("Current connection state: " + _state, true));
                 _network.close();
                 return null;
             }

Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java?rev=1729841&r1=1729840&r2=1729841&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java Thu Feb 11 14:13:11 2016
@@ -281,7 +281,7 @@ public class AMQPConnection_1_0 extends
             @Override
             public Object run()
             {
-                getEventLogger().message(ConnectionMessages.IDLE_CLOSE());
+                getEventLogger().message(ConnectionMessages.IDLE_CLOSE("", false));
                 getNetwork().close();
                 return null;
             }

Modified: qpid/java/trunk/client/src/main/java/org/apache/qpid/client/state/AMQState.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/state/AMQState.java?rev=1729841&r1=1729840&r2=1729841&view=diff
==============================================================================
--- qpid/java/trunk/client/src/main/java/org/apache/qpid/client/state/AMQState.java (original)
+++ qpid/java/trunk/client/src/main/java/org/apache/qpid/client/state/AMQState.java Thu Feb 11 14:13:11 2016
@@ -26,35 +26,10 @@ package org.apache.qpid.client.state;
  */
 public enum AMQState
 {
-
-    CONNECTION_NOT_STARTED(1, "CONNECTION_NOT_STARTED"),
-
-    CONNECTION_NOT_TUNED(2, "CONNECTION_NOT_TUNED"),
-
-    CONNECTION_NOT_OPENED(3, "CONNECTION_NOT_OPENED"),
-
-    CONNECTION_OPEN(4, "CONNECTION_OPEN"),
-
-    CONNECTION_CLOSING(5, "CONNECTION_CLOSING"),
-
-    CONNECTION_CLOSED(6, "CONNECTION_CLOSED");
-
-
-    private final int _id;
-
-    private final String _name;
-
-    private AMQState(int id, String name)
-    {
-        _id = id;
-        _name = name;
-    }
-
-    public String toString()
-    {
-        return "AMQState: id = " + _id + " name: " + _name;
-    }
-
-
-
+    CONNECTION_NOT_STARTED,
+    CONNECTION_NOT_TUNED,
+    CONNECTION_NOT_OPENED,
+    CONNECTION_OPEN,
+    CONNECTION_CLOSING,
+    CONNECTION_CLOSED;
 }

Modified: qpid/java/trunk/client/src/main/java/org/apache/qpid/client/state/StateWaiter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/state/StateWaiter.java?rev=1729841&r1=1729840&r2=1729841&view=diff
==============================================================================
--- qpid/java/trunk/client/src/main/java/org/apache/qpid/client/state/StateWaiter.java (original)
+++ qpid/java/trunk/client/src/main/java/org/apache/qpid/client/state/StateWaiter.java Thu Feb 11 14:13:11 2016
@@ -23,6 +23,7 @@ package org.apache.qpid.client.state;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.qpid.AMQTimeoutException;
 import org.apache.qpid.QpidException;
 import org.apache.qpid.client.failover.FailoverException;
 import org.apache.qpid.client.util.BlockingWaiter;
@@ -113,9 +114,13 @@ public class StateWaiter extends Blockin
             {
                 return (AMQState) block(timeout);
             }
+            catch (AMQTimeoutException e)
+            {
+                throw new AMQTimeoutException("Waiting for " + timeout + "ms to attain one of the states " + _awaitStates + "; current state is " + _stateManager.getCurrentState(), e);
+            }
             catch (FailoverException e)
             {
-                _logger.error("Failover occured whilst waiting for states:" + _awaitStates);
+                _logger.error("Failover occurred whilst waiting for states:" + _awaitStates);
 
                 return null;
             }
@@ -125,7 +130,7 @@ public class StateWaiter extends Blockin
             //Prevent any more errors being notified to this waiter.
             close();
 
-            //Remove the waiter from the notifcation list in the statee manager
+            //Remove the waiter from the notification list in the state manager
             _stateManager.removeWaiter(this);
         }
     }



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