You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2015/07/26 21:39:21 UTC

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

Author: kwall
Date: Sun Jul 26 19:39:21 2015
New Revision: 1692752

URL: http://svn.apache.org/r1692752
Log:
QPID-6657: Add operational message to record an operator initiated connection close

* Corrected the logging levels of a number of debug type logging that was being logged at INFO
* Corrected the log subject of connection close operational messages

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/queue/AbstractQueue.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.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-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.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/systests/src/test/java/org/apache/qpid/server/logging/ConnectionLoggingTest.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=1692752&r1=1692751&r2=1692752&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 Sun Jul 26 19:39:21 2015
@@ -51,6 +51,7 @@ public class ConnectionMessages
     public static final String CLIENT_VERSION_LOG_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "connection.client_version_log";
     public static final String IDLE_CLOSE_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "connection.idle_close";
     public static final String CLOSE_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "connection.close";
+    public static final String MODEL_DELETE_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "connection.model_delete";
 
     static
     {
@@ -61,6 +62,7 @@ public class ConnectionMessages
         LoggerFactory.getLogger(CLIENT_VERSION_LOG_LOG_HIERARCHY);
         LoggerFactory.getLogger(IDLE_CLOSE_LOG_HIERARCHY);
         LoggerFactory.getLogger(CLOSE_LOG_HIERARCHY);
+        LoggerFactory.getLogger(MODEL_DELETE_LOG_HIERARCHY);
 
         _messages = ResourceBundle.getBundle("org.apache.qpid.server.logging.messages.Connection_logmessages", _currentLocale);
     }
@@ -424,6 +426,59 @@ public class ConnectionMessages
             }
 
             @Override
+            public boolean equals(final Object o)
+            {
+                if (this == o)
+                {
+                    return true;
+                }
+                if (o == null || getClass() != o.getClass())
+                {
+                    return false;
+                }
+
+                final LogMessage that = (LogMessage) o;
+
+                return getLogHierarchy().equals(that.getLogHierarchy()) && toString().equals(that.toString());
+
+            }
+
+            @Override
+            public int hashCode()
+            {
+                int result = toString().hashCode();
+                result = 31 * result + getLogHierarchy().hashCode();
+                return result;
+            }
+        };
+    }
+
+    /**
+     * Log a Connection message of the Format:
+     * <pre>CON-1007 : Connection close initiated by operator</pre>
+     * Optional values are contained in [square brackets] and are numbered
+     * sequentially in the method call.
+     *
+     */
+    public static LogMessage MODEL_DELETE()
+    {
+        String rawMessage = _messages.getString("MODEL_DELETE");
+
+        final String message = rawMessage;
+
+        return new LogMessage()
+        {
+            public String toString()
+            {
+                return message;
+            }
+
+            public String getLogHierarchy()
+            {
+                return MODEL_DELETE_LOG_HIERARCHY;
+            }
+
+            @Override
             public boolean equals(final Object o)
             {
                 if (this == o)

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=1692752&r1=1692751&r2=1692752&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 Sun Jul 26 19:39:21 2015
@@ -27,3 +27,4 @@ IDLE_CLOSE = CON-1003 : Closed due to in
 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
+MODEL_DELETE = CON-1007 : Connection close initiated by operator

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java?rev=1692752&r1=1692751&r2=1692752&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java Sun Jul 26 19:39:21 2015
@@ -937,10 +937,7 @@ public abstract class AbstractQueue<X ex
                && !(consumer.isDurable() && _closing))
             {
 
-                if (_logger.isInfoEnabled())
-                {
-                    _logger.info("Auto-deleting queue:" + this);
-                }
+                _logger.debug("Auto-deleting queue: {}", this);
 
                 Subject.doAs(SecurityManager.getSubjectWithAddedSystemRights(), new PrivilegedAction<Object>()
                              {

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=1692752&r1=1692751&r2=1692752&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 Sun Jul 26 19:39:21 2015
@@ -42,7 +42,9 @@ import org.slf4j.LoggerFactory;
 import org.apache.qpid.protocol.AMQConstant;
 import org.apache.qpid.server.connection.ConnectionPrincipal;
 import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.LogSubject;
 import org.apache.qpid.server.logging.messages.ConnectionMessages;
+import org.apache.qpid.server.logging.subjects.ConnectionLogSubject;
 import org.apache.qpid.server.model.AbstractConfiguredObject;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
@@ -77,6 +79,7 @@ public abstract class AbstractAMQPConnec
     private final Subject _subject = new Subject();
     private final List<Action<? super C>> _connectionCloseTaskList =
             new CopyOnWriteArrayList<>();
+    private final LogSubject _logSubject;
 
     private String _clientProduct;
     private String _clientVersion;
@@ -131,6 +134,7 @@ public abstract class AbstractAMQPConnec
                 }, getTaskExecutor().getExecutor());
 
         setState(State.ACTIVE);
+        _logSubject = new ConnectionLogSubject(this);
     }
 
     private static Map<String, Object> createAttributes(long connectionId, NetworkConnection network)
@@ -434,6 +438,7 @@ public abstract class AbstractAMQPConnec
     @StateTransition( currentState = State.ACTIVE, desiredState = State.DELETED)
     private ListenableFuture<Void> doDelete()
     {
+        getEventLogger().message(_logSubject, ConnectionMessages.MODEL_DELETE());
         return closeAsyncIfNotAlreadyClosing();
     }
 
@@ -509,6 +514,11 @@ public abstract class AbstractAMQPConnec
         _transportClosedFuture.set(null);
     }
 
+    public LogSubject getLogSubject()
+    {
+        return _logSubject;
+    }
+
     protected abstract EventLogger getEventLogger();
 
     private class SlowConnectionOpenTicker implements Ticker

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=1692752&r1=1692751&r2=1692752&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 Sun Jul 26 19:39:21 2015
@@ -252,7 +252,15 @@ public class AMQPConnection_0_10 extends
     {
         try
         {
-            _inputHandler.closed();
+            Subject.doAs(_connection.getAuthorizedSubject(), new PrivilegedAction<Void>()
+            {
+                @Override
+                public Void run()
+                {
+                    _inputHandler.closed();
+                    return null;
+                }
+            });
         }
         finally
         {

Modified: qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.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/ServerConnection.java?rev=1692752&r1=1692751&r2=1692752&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java Sun Jul 26 19:39:21 2015
@@ -67,8 +67,7 @@ import org.apache.qpid.transport.Option;
 import org.apache.qpid.transport.ProtocolEvent;
 import org.apache.qpid.transport.Session;
 
-public class ServerConnection extends Connection implements //AMQConnectionModel<ServerConnection, ServerSession>,
-                                                            LogSubject, AuthorizationHolder
+public class ServerConnection extends Connection implements AuthorizationHolder
 {
     private static final Logger LOGGER = LoggerFactory.getLogger(ServerConnection.class);
     public static final long CLOSE_OK_TIMEOUT = 10000l;
@@ -235,11 +234,6 @@ public class ServerConnection extends Co
 
     }
 
-    public LogSubject getLogSubject()
-    {
-        return this;
-    }
-
     @Override
     public void exception(final Throwable t)
     {
@@ -478,7 +472,7 @@ public class ServerConnection extends Co
         closeSubscriptions();
         super.closed();
 
-        getEventLogger().message(this, isConnectionLost() ? ConnectionMessages.DROPPED_CONNECTION() : ConnectionMessages.CLOSE());
+        getEventLogger().message(isConnectionLost() ? ConnectionMessages.DROPPED_CONNECTION() : ConnectionMessages.CLOSE());
     }
 
     private void closeSubscriptions()

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=1692752&r1=1692751&r2=1692752&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 Sun Jul 26 19:39:21 2015
@@ -66,9 +66,7 @@ import org.apache.qpid.server.configurat
 import org.apache.qpid.server.connection.ConnectionPrincipal;
 import org.apache.qpid.server.consumer.ConsumerImpl;
 import org.apache.qpid.server.logging.EventLogger;
-import org.apache.qpid.server.logging.LogSubject;
 import org.apache.qpid.server.logging.messages.ConnectionMessages;
-import org.apache.qpid.server.logging.subjects.ConnectionLogSubject;
 import org.apache.qpid.server.message.InstanceProperties;
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.Broker;
@@ -151,8 +149,6 @@ public class AMQPConnection_0_8
 
     private final Object _reference = new Object();
 
-    private LogSubject _logSubject;
-
     private int _maxFrameSize;
     private final AtomicBoolean _orderlyClose = new AtomicBoolean(false);
 
@@ -181,7 +177,6 @@ public class AMQPConnection_0_8
         super(broker, network, port, transport, connectionId, aggregateTicker);
         _maxNoOfChannels = broker.getConnection_sessionCountLimit();
         _decoder = new BrokerDecoder(this);
-        _logSubject = new ConnectionLogSubject(this);
         _binaryDataLimit = getBroker().getContextKeys(false).contains(BROKER_DEBUG_BINARY_DATA_LENGTH)
                 ? getBroker().getContextValue(Integer.class, BROKER_DEBUG_BINARY_DATA_LENGTH)
                 : DEFAULT_DEBUG_BINARY_DATA_LENGTH;
@@ -417,7 +412,7 @@ public class AMQPConnection_0_8
         }
         catch (QpidException e)
         {
-            _logger.info("Received unsupported protocol initiation for protocol version: " + getProtocolVersion());
+            _logger.debug("Received unsupported protocol initiation for protocol version: {} ", getProtocolVersion());
 
             writeFrame(new ProtocolInitiation(ProtocolVersion.getLatestSupportedVersion()));
             _sender.flush();
@@ -648,11 +643,6 @@ public class AMQPConnection_0_8
     void sendConnectionClose(AMQConstant errorCode,
                              String message, int channelId)
     {
-
-        if (_logger.isInfoEnabled())
-        {
-            _logger.info("Closing connection due to: " + message);
-        }
         sendConnectionClose(channelId, new AMQFrame(0, new ConnectionCloseBody(getProtocolVersion(), errorCode.getCode(), AMQShortString.validValueOf(message), _currentClassId, _currentMethodId)));
     }
 
@@ -867,7 +857,18 @@ public class AMQPConnection_0_8
         finally
         {
             markTransportClosed();
-            getEventLogger().message(_logSubject, _orderlyClose.get() ? ConnectionMessages.CLOSE() : ConnectionMessages.DROPPED_CONNECTION());
+
+            runAsSubject(new PrivilegedAction<Void>()
+            {
+                @Override
+                public Void run()
+                {
+                    getEventLogger().message(_orderlyClose.get()
+                                                     ? ConnectionMessages.CLOSE()
+                                                     : ConnectionMessages.DROPPED_CONNECTION());
+                    return null;
+                }
+            });
         }
     }
 
@@ -941,11 +942,6 @@ public class AMQPConnection_0_8
                 AMQConnectionException e = new AMQConnectionException(cause, message, 0, 0,
                         getMethodRegistry(),
                         null);
-
-                if (_logger.isInfoEnabled())
-                {
-                    _logger.info("Closing connection due to: " + e);
-                }
                 sendConnectionClose(0, e.getCloseFrame());
             }
         };
@@ -993,11 +989,6 @@ public class AMQPConnection_0_8
 		return new ArrayList<>(getChannels());
     }
 
-    public LogSubject getLogSubject()
-    {
-        return _logSubject;
-    }
-
     @Override
     public String getRemoteContainerName()
     {
@@ -1044,7 +1035,7 @@ public class AMQPConnection_0_8
         }
         else
         {
-            _logger.info("Connecting to: " + _virtualHost.getName());
+            _logger.debug("Connecting to: {}", _virtualHost.getName());
 
             final AMQChannel channel = new AMQChannel(this, channelId, _virtualHost.getMessageStore());
 
@@ -1148,11 +1139,6 @@ public class AMQPConnection_0_8
             _logger.debug("RECV ConnectionClose[" +" replyCode: " + replyCode + " replyText: " + replyText + " classId: " + classId + " methodId: " + methodId + " ]");
         }
 
-        if (_logger.isInfoEnabled())
-        {
-            _logger.info("ConnectionClose received with reply code/reply text " + replyCode + "/" +
-                         replyText + " for " + this);
-        }
         try
         {
             if (_orderlyClose.compareAndSet(false, true))
@@ -1211,17 +1197,14 @@ public class AMQPConnection_0_8
             case ERROR:
                 Exception cause = authResult.getCause();
 
-                _logger.info("Authentication failed:" + (cause == null ? "" : cause.getMessage()));
+                _logger.debug("Authentication failed: {}", (cause == null ? "" : cause.getMessage()));
 
                 sendConnectionClose(AMQConstant.NOT_ALLOWED, "Authentication failed", 0);
 
                 disposeSaslServer();
                 break;
             case SUCCESS:
-                if (_logger.isInfoEnabled())
-                {
-                    _logger.info("Connected as: " + authResult.getSubject());
-                }
+                _logger.debug("Connected as: {} ", authResult.getSubject());
 
                 int frameMax = broker.getContextValue(Integer.class, Broker.BROKER_FRAME_SIZE);
 
@@ -1288,8 +1271,7 @@ public class AMQPConnection_0_8
 
         Broker<?> broker = getBroker();
 
-        _logger.info("SASL Mechanism selected: " + mechanism);
-        _logger.info("Locale selected: " + locale);
+        _logger.debug("SASL Mechanism selected: {} Locale : {}", mechanism, locale);
 
         SubjectCreator subjectCreator = getSubjectCreator();
         SaslServer ss;
@@ -1320,7 +1302,7 @@ public class AMQPConnection_0_8
                     case ERROR:
                         Exception cause = authResult.getCause();
 
-                        _logger.info("Authentication failed:" + (cause == null ? "" : cause.getMessage()));
+                        _logger.debug("Authentication failed: {}", (cause == null ? "" : cause.getMessage()));
 
                         sendConnectionClose(AMQConstant.NOT_ALLOWED, "Authentication failed", 0);
 
@@ -1328,10 +1310,7 @@ public class AMQPConnection_0_8
                         break;
 
                     case SUCCESS:
-                        if (_logger.isInfoEnabled())
-                        {
-                            _logger.info("Connected as: " + authResult.getSubject());
-                        }
+                        _logger.debug("Connected as: {}", authResult.getSubject());
                         setAuthorizedSubject(authResult.getSubject());
 
                         int frameMax = broker.getContextValue(Integer.class, Broker.BROKER_FRAME_SIZE);

Modified: qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java?rev=1692752&r1=1692751&r2=1692752&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java (original)
+++ qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java Sun Jul 26 19:39:21 2015
@@ -179,7 +179,7 @@ public class ConnectionLoggingTest exten
         assertTrue("Message does not end with close:" + log, log.endsWith("Close"));
 
         // Extract connection ID to validate there is a CON-1001 messasge for it
-        final String logSubject = fromSubject(log);
+        final String logSubject = fromActor(log);
         int closeConnectionID = getConnectionID(logSubject);
         assertTrue("Could not get the connection id from CLOSE message: " + logSubject, closeConnectionID != -1);
 



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