Author: markt
Date: Thu Oct 22 18:48:35 2015
New Revision: 1710074

URL: http://svn.apache.org/viewvc?rev=1710074&view=rev
Log:
Improve debug logging for connection settings (include the connection ID)

Modified:
    tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java
    tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java
    tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java
    tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
    tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties
    tomcat/trunk/test/org/apache/coyote/http2/Http2TestBase.java

Modified: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java?rev=1710074&r1=1710073&r2=1710074&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsBase.java Thu 
Oct 22 18:48:35 2015
@@ -28,6 +28,8 @@ public abstract class ConnectionSettings
     private final Log log = LogFactory.getLog(ConnectionSettingsBase.class);
     private final StringManager sm = 
StringManager.getManager(ConnectionSettingsBase.class);
 
+    private final String connectionId;
+
     // Limits
     protected static final int MAX_WINDOW_SIZE = (1 << 31) - 1;
     protected static final int MIN_MAX_FRAME_SIZE = 1 << 14;
@@ -46,7 +48,8 @@ public abstract class ConnectionSettings
     protected Map<Setting,Long> pending = new HashMap<>();
 
 
-    public ConnectionSettingsBase() {
+    public ConnectionSettingsBase(String connectionId) {
+        this.connectionId = connectionId;
         // Set up the defaults
         current.put(Setting.HEADER_TABLE_SIZE,      
Long.valueOf(DEFAULT_HEADER_TABLE_SIZE));
         current.put(Setting.ENABLE_PUSH,            
Long.valueOf(DEFAULT_ENABLE_PUSH ? 1 : 0));
@@ -59,7 +62,8 @@ public abstract class ConnectionSettings
 
     public void set(Setting setting, long value) throws T {
         if (log.isDebugEnabled()) {
-            log.debug(sm.getString("connectionSettings.debug", setting, 
Long.toString(value)));
+            log.debug(sm.getString("connectionSettings.debug",
+                    connectionId, setting, Long.toString(value)));
         }
 
         switch(setting) {
@@ -83,7 +87,8 @@ public abstract class ConnectionSettings
             break;
         case UNKNOWN:
             // Unrecognised. Ignore it.
-            log.warn(sm.getString("connectionSettings.unknown", setting, 
Long.toString(value)));
+            log.warn(sm.getString("connectionSettings.unknown",
+                    connectionId, setting, Long.toString(value)));
             return;
         }
 
@@ -173,7 +178,7 @@ public abstract class ConnectionSettings
         // Need to put a sensible limit on this. Start with 16k (default is 4k)
         if (headerTableSize > (16 * 1024)) {
             String msg = 
sm.getString("connectionSettings.headerTableSizeLimit",
-                    Long.toString(headerTableSize));
+                    connectionId, Long.toString(headerTableSize));
             throwException(msg, Http2Error.PROTOCOL_ERROR);
         }
     }
@@ -184,7 +189,7 @@ public abstract class ConnectionSettings
         // will never be negative
         if (enablePush > 1) {
             String msg = sm.getString("connectionSettings.enablePushInvalid",
-                    Long.toString(enablePush));
+                    connectionId, Long.toString(enablePush));
             throwException(msg, Http2Error.PROTOCOL_ERROR);
         }
     }
@@ -193,7 +198,7 @@ public abstract class ConnectionSettings
     private void validateInitialWindowSize(long initialWindowSize) throws T {
         if (initialWindowSize > MAX_WINDOW_SIZE) {
             String msg = sm.getString("connectionSettings.windowSizeTooBig",
-                    Long.toString(initialWindowSize), 
Long.toString(MAX_WINDOW_SIZE));
+                    connectionId, Long.toString(initialWindowSize), 
Long.toString(MAX_WINDOW_SIZE));
             throwException(msg, Http2Error.FLOW_CONTROL_ERROR);
         }
     }
@@ -202,7 +207,7 @@ public abstract class ConnectionSettings
     private void validateMaxFrameSize(long maxFrameSize) throws T {
         if (maxFrameSize < MIN_MAX_FRAME_SIZE || maxFrameSize > 
MAX_MAX_FRAME_SIZE) {
             String msg = sm.getString("connectionSettings.maxFrameSizeInvalid",
-                    Long.toString(maxFrameSize), 
Integer.toString(MIN_MAX_FRAME_SIZE),
+                    connectionId, Long.toString(maxFrameSize), 
Integer.toString(MIN_MAX_FRAME_SIZE),
                     Integer.toString(MAX_MAX_FRAME_SIZE));
             throwException(msg, Http2Error.PROTOCOL_ERROR);
         }

Modified: tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java?rev=1710074&r1=1710073&r2=1710074&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsLocal.java Thu 
Oct 22 18:48:35 2015
@@ -34,6 +34,12 @@ public class ConnectionSettingsLocal ext
 
     private boolean sendInProgress = false;
 
+
+    public ConnectionSettingsLocal(String connectionId) {
+        super(connectionId);
+    }
+
+
     @Override
     protected synchronized void set(Setting setting, Long value) {
         checkSend();

Modified: 
tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java?rev=1710074&r1=1710073&r2=1710074&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http2/ConnectionSettingsRemote.java Thu 
Oct 22 18:48:35 2015
@@ -22,6 +22,11 @@ package org.apache.coyote.http2;
  */
 public class ConnectionSettingsRemote extends 
ConnectionSettingsBase<ConnectionException> {
 
+    public ConnectionSettingsRemote(String connectionId) {
+        super(connectionId);
+    }
+
+
     @Override
     void throwException(String msg, Http2Error error) throws 
ConnectionException {
         throw new ConnectionException(msg, error);

Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1710074&r1=1710073&r2=1710074&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Thu Oct 
22 18:48:35 2015
@@ -116,12 +116,12 @@ public class Http2UpgradeHandler extends
      * Remote settings are settings defined by the client and sent to Tomcat
      * that Tomcat must use when communicating with the client.
      */
-    private final ConnectionSettingsRemote remoteSettings = new 
ConnectionSettingsRemote();
+    private final ConnectionSettingsRemote remoteSettings;
     /**
      * Local settings are settings defined by Tomcat and sent to the client 
that
      * the client must use when communicating with Tomcat.
      */
-    private final ConnectionSettingsLocal localSettings = new 
ConnectionSettingsLocal();
+    private final ConnectionSettingsLocal localSettings;
 
     private HpackDecoder hpackDecoder;
     private HpackEncoder hpackEncoder;
@@ -150,6 +150,9 @@ public class Http2UpgradeHandler extends
         this.adapter = adapter;
         this.connectionId = 
Integer.toString(connectionIdGenerator.getAndIncrement());
 
+        remoteSettings = new ConnectionSettingsRemote(connectionId);
+        localSettings = new ConnectionSettingsLocal(connectionId);
+
         // Initial HTTP request becomes stream 1.
         if (coyoteRequest != null) {
             if (log.isDebugEnabled()) {

Modified: tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties?rev=1710074&r1=1710073&r2=1710074&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties Thu Oct 
22 18:48:35 2015
@@ -21,12 +21,12 @@ connectionPrefaceParser.eos=Unexpected e
 connectionPrefaceParser.ioError=Failed to read opening client preface byte 
sequence
 connectionPrefaceParser.mismatch=An unexpected byte sequence was received at 
the start of the client preface [{0}]
 
-connectionSettings.debug=Parameter type [{0}] set to [{1}]
-connectionSettings.enablePushInvalid=The requested value for enable push [{0}] 
is not one of the permitted values (zero or one)
-connectionSettings.headerTableSizeLimit=Attempted to set a header table size 
of [{0}] but the limit is 16k
-connectionSettings.maxFrameSizeInvalid=The requested maximum frame size of 
[{0}] is ouside the permitted range of [{1}] to [{2}]
-connectionSettings.unknown=An unknown setting with identifier [{0}] and value 
[{1}] was ignored
-connectionSettings.windowSizeTooBig=The requested window size of [{0}] is 
bigger than the maximum permitted value of [{1}]
+connectionSettings.debug=Connection [{0}], Parameter type [{1}] set to [{2}]
+connectionSettings.enablePushInvalid=Connection [{0}], The requested value for 
enable push [{1}] is not one of the permitted values (zero or one)
+connectionSettings.headerTableSizeLimit=Connection [{0}], Attempted to set a 
header table size of [{1}] but the limit is 16k
+connectionSettings.maxFrameSizeInvalid=Connection [{0}], The requested maximum 
frame size of [{1}] is outside the permitted range of [{2}] to [{3}]
+connectionSettings.unknown=Connection [{0}], An unknown setting with 
identifier [{1}] and value [{2}] was ignored
+connectionSettings.windowSizeTooBig=Connection [{0}], The requested window 
size of [{1}] is bigger than the maximum permitted value of [{2}]
 
 frameType.checkPayloadSize=Payload size of [{0}] is not valid for frame type 
[{1}]
 frameType.checkStream=Invalid frame type [{0}]

Modified: tomcat/trunk/test/org/apache/coyote/http2/Http2TestBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http2/Http2TestBase.java?rev=1710074&r1=1710073&r2=1710074&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/coyote/http2/Http2TestBase.java (original)
+++ tomcat/trunk/test/org/apache/coyote/http2/Http2TestBase.java Thu Oct 22 
18:48:35 2015
@@ -717,7 +717,7 @@ public abstract class Http2TestBase exte
 
         private StringBuffer trace = new StringBuffer();
         private String lastStreamId = "0";
-        private ConnectionSettingsRemote remoteSettings = new 
ConnectionSettingsRemote();
+        private ConnectionSettingsRemote remoteSettings = new 
ConnectionSettingsRemote("-1");
 
 
         @Override



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to