This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
     new f0959fe  Consistent formatting of stream ID in HTTP/2 debug log 
messages
f0959fe is described below

commit f0959fe62c0965600ee2607a2012bf61882275ab
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Mon Sep 21 14:52:33 2020 +0100

    Consistent formatting of stream ID in HTTP/2 debug log messages
---
 java/org/apache/coyote/http2/AbstractStream.java   | 11 ++++-
 .../apache/coyote/http2/Http2UpgradeHandler.java   | 24 +++++-----
 java/org/apache/coyote/http2/Stream.java           | 54 +++++++++++-----------
 java/org/apache/coyote/http2/StreamProcessor.java  | 12 ++---
 .../apache/coyote/http2/StreamStateMachine.java    |  8 ++--
 .../coyote/http2/WindowAllocationManager.java      | 18 ++++----
 webapps/docs/changelog.xml                         |  4 ++
 7 files changed, 71 insertions(+), 60 deletions(-)

diff --git a/java/org/apache/coyote/http2/AbstractStream.java 
b/java/org/apache/coyote/http2/AbstractStream.java
index 55a5c2c..3e4ec73 100644
--- a/java/org/apache/coyote/http2/AbstractStream.java
+++ b/java/org/apache/coyote/http2/AbstractStream.java
@@ -33,6 +33,7 @@ abstract class AbstractStream {
     private static final StringManager sm = 
StringManager.getManager(AbstractStream.class);
 
     private final Integer identifier;
+    private final String idAsString;
 
     private volatile AbstractStream parentStream = null;
     private final Set<Stream> childStreams =
@@ -42,6 +43,7 @@ abstract class AbstractStream {
 
     public AbstractStream(Integer identifier) {
         this.identifier = identifier;
+        this.idAsString = identifier.toString();
     }
 
 
@@ -50,6 +52,11 @@ abstract class AbstractStream {
     }
 
 
+    final String getIdAsString() {
+        return idAsString;
+    }
+
+
     public int getIdAsInt() {
         return identifier.intValue();
     }
@@ -119,7 +126,7 @@ abstract class AbstractStream {
 
         if (log.isDebugEnabled()) {
             log.debug(sm.getString("abstractStream.windowSizeInc", 
getConnectionId(),
-                    getIdentifier(), Integer.toString(increment), 
Long.toString(windowSize)));
+                    getIdAsString(), Integer.toString(increment), 
Long.toString(windowSize)));
         }
 
         if (windowSize > ConnectionSettingsBase.MAX_WINDOW_SIZE) {
@@ -142,7 +149,7 @@ abstract class AbstractStream {
         windowSize -= decrement;
         if (log.isDebugEnabled()) {
             log.debug(sm.getString("abstractStream.windowSizeDec", 
getConnectionId(),
-                    getIdentifier(), Integer.toString(decrement), 
Long.toString(windowSize)));
+                    getIdAsString(), Integer.toString(decrement), 
Long.toString(windowSize)));
         }
     }
 
diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
index 4bc31fb..1ff8b3e 100644
--- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java
+++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
@@ -661,10 +661,10 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
         if (log.isDebugEnabled()) {
             if (pushedStreamId == 0) {
                 log.debug(sm.getString("upgradeHandler.writeHeaders", 
connectionId,
-                        stream.getIdentifier()));
+                        stream.getIdAsString()));
             } else {
                 log.debug(sm.getString("upgradeHandler.writePushHeaders", 
connectionId,
-                        stream.getIdentifier(), 
Integer.valueOf(pushedStreamId),
+                        stream.getIdAsString(), 
Integer.valueOf(pushedStreamId),
                         Boolean.valueOf(endOfStream)));
             }
         }
@@ -740,7 +740,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
 
     void writeBody(Stream stream, ByteBuffer data, int len, boolean finished) 
throws IOException {
         if (log.isDebugEnabled()) {
-            log.debug(sm.getString("upgradeHandler.writeBody", connectionId, 
stream.getIdentifier(),
+            log.debug(sm.getString("upgradeHandler.writeBody", connectionId, 
stream.getIdAsString(),
                     Integer.toString(len)));
         }
 
@@ -908,7 +908,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
                                 if (stream.isActive()) {
                                     if (log.isDebugEnabled()) {
                                         
log.debug(sm.getString("upgradeHandler.noAllocation",
-                                                connectionId, 
stream.getIdentifier()));
+                                                connectionId, 
stream.getIdAsString()));
                                     }
                                     // No allocation
                                     // Close the connection. Do this first 
since
@@ -929,7 +929,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
                         } catch (InterruptedException e) {
                             throw new IOException(sm.getString(
                                     
"upgradeHandler.windowSizeReservationInterrupted", connectionId,
-                                    stream.getIdentifier(), 
Integer.toString(reservation)), e);
+                                    stream.getIdAsString(), 
Integer.toString(reservation)), e);
                         }
                     } else {
                         stream.waitForConnectionAllocationNonBlocking();
@@ -961,7 +961,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
             for (AbstractStream stream : streamsToNotify) {
                 if (log.isDebugEnabled()) {
                     log.debug(sm.getString("upgradeHandler.releaseBacklog",
-                            connectionId, stream.getIdentifier()));
+                            connectionId, stream.getIdAsString()));
                 }
                 // There is never any O/P on stream zero but it is included in
                 // the backlog as it simplifies the code. Skip it if it appears
@@ -1013,7 +1013,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
     private int allocate(AbstractStream stream, int allocation) {
         if (log.isDebugEnabled()) {
             log.debug(sm.getString("upgradeHandler.allocate.debug", 
getConnectionId(),
-                    stream.getIdentifier(), Integer.toString(allocation)));
+                    stream.getIdAsString(), Integer.toString(allocation)));
         }
         // Allocate to the specified stream
         BacklogTracker tracker = backLogStreams.get(stream);
@@ -1026,7 +1026,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
 
         if (log.isDebugEnabled()) {
             log.debug(sm.getString("upgradeHandler.allocate.left",
-                    getConnectionId(), stream.getIdentifier(), 
Integer.toString(leftToAllocate)));
+                    getConnectionId(), stream.getIdAsString(), 
Integer.toString(leftToAllocate)));
         }
 
         // Recipients are children of the current stream that are in the
@@ -1046,7 +1046,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
             for (AbstractStream recipient : recipients) {
                 if (log.isDebugEnabled()) {
                     log.debug(sm.getString("upgradeHandler.allocate.recipient",
-                            getConnectionId(), stream.getIdentifier(), 
recipient.getIdentifier(),
+                            getConnectionId(), stream.getIdAsString(), 
recipient.getIdAsString(),
                             Integer.toString(recipient.getWeight())));
                 }
                 totalWeight += recipient.getWeight();
@@ -1085,7 +1085,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
         Stream result = streams.get(key);
         if (result == null && unknownIsError) {
             // Stream has been closed and removed from the map
-            throw new 
ConnectionException(sm.getString("upgradeHandler.stream.closed", key),
+            throw new 
ConnectionException(sm.getString("upgradeHandler.stream.closed", 
key.toString()),
                     Http2Error.PROTOCOL_ERROR);
         }
         return result;
@@ -1711,7 +1711,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
                 } catch (Http2Exception h2e) {
                     stream.close(new StreamException(sm.getString(
                             "upgradeHandler.windowSizeTooBig", connectionId,
-                            stream.getIdentifier()),
+                            stream.getIdAsString()),
                             h2e.getError(), stream.getIdAsInt()));
                }
             }
@@ -1727,7 +1727,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
             if (!localSettings.ack()) {
                 // Ack was unexpected
                 log.warn(sm.getString(
-                        "upgradeHandler.unexpectedAck", connectionId, 
getIdentifier()));
+                        "upgradeHandler.unexpectedAck", connectionId, 
getIdAsString()));
             }
         } else {
             synchronized (socketWrapper) {
diff --git a/java/org/apache/coyote/http2/Stream.java 
b/java/org/apache/coyote/http2/Stream.java
index 813980c..b78d55a 100644
--- a/java/org/apache/coyote/http2/Stream.java
+++ b/java/org/apache/coyote/http2/Stream.java
@@ -176,8 +176,8 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
     void rePrioritise(AbstractStream parent, boolean exclusive, int weight) {
         if (log.isDebugEnabled()) {
             log.debug(sm.getString("stream.reprioritisation.debug",
-                    getConnectionId(), getIdentifier(), 
Boolean.toString(exclusive),
-                    parent.getIdentifier(), Integer.toString(weight)));
+                    getConnectionId(), getIdAsString(), 
Boolean.toString(exclusive),
+                    parent.getIdAsString(), Integer.toString(weight)));
         }
 
         // Check if new parent is a descendant of this stream
@@ -211,8 +211,8 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
     final void rePrioritise(AbstractStream parent, int weight) {
         if (log.isDebugEnabled()) {
             log.debug(sm.getString("stream.reprioritisation.debug",
-                    getConnectionId(), getIdentifier(), Boolean.FALSE,
-                    parent.getIdentifier(), Integer.toString(weight)));
+                    getConnectionId(), getIdAsString(), Boolean.FALSE,
+                    parent.getIdAsString(), Integer.toString(weight)));
         }
 
         parent.addChild(this);
@@ -222,7 +222,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
 
     void receiveReset(long errorCode) {
         if (log.isDebugEnabled()) {
-            log.debug(sm.getString("stream.reset.receive", getConnectionId(), 
getIdentifier(),
+            log.debug(sm.getString("stream.reset.receive", getConnectionId(), 
getIdAsString(),
                     Long.toString(errorCode)));
         }
         // Set the new state first since read and write both check this
@@ -264,7 +264,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
         while (windowSize < 1) {
             if (!canWrite()) {
                 throw new CloseNowException(sm.getString("stream.notWritable",
-                        getConnectionId(), getIdentifier()));
+                        getConnectionId(), getIdAsString()));
             }
             if (block) {
                 try {
@@ -334,25 +334,25 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
     @Override
     public final void emitHeader(String name, String value) throws 
HpackException {
         if (log.isDebugEnabled()) {
-            log.debug(sm.getString("stream.header.debug", getConnectionId(), 
getIdentifier(),
+            log.debug(sm.getString("stream.header.debug", getConnectionId(), 
getIdAsString(),
                     name, value));
         }
 
         // Header names must be lower case
         if (!name.toLowerCase(Locale.US).equals(name)) {
             throw new HpackException(sm.getString("stream.header.case",
-                    getConnectionId(), getIdentifier(), name));
+                    getConnectionId(), getIdAsString(), name));
         }
 
         if ("connection".equals(name)) {
             throw new HpackException(sm.getString("stream.header.connection",
-                    getConnectionId(), getIdentifier()));
+                    getConnectionId(), getIdAsString()));
         }
 
         if ("te".equals(name)) {
             if (!"trailers".equals(value)) {
                 throw new HpackException(sm.getString("stream.header.te",
-                        getConnectionId(), getIdentifier(), value));
+                        getConnectionId(), getIdAsString(), value));
             }
         }
 
@@ -364,14 +364,14 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
 
         if (name.length() == 0) {
             throw new HpackException(sm.getString("stream.header.empty",
-                    getConnectionId(), getIdentifier()));
+                    getConnectionId(), getIdAsString()));
         }
 
         boolean pseudoHeader = name.charAt(0) == ':';
 
         if (pseudoHeader && headerState != HEADER_STATE_PSEUDO) {
             headerException = new StreamException(sm.getString(
-                    "stream.header.unexpectedPseudoHeader", getConnectionId(), 
getIdentifier(),
+                    "stream.header.unexpectedPseudoHeader", getConnectionId(), 
getIdAsString(),
                     name), Http2Error.PROTOCOL_ERROR, getIdAsInt());
             // No need for further processing. The stream will be reset.
             return;
@@ -387,7 +387,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
                 coyoteRequest.method().setString(value);
             } else {
                 throw new 
HpackException(sm.getString("stream.header.duplicate",
-                        getConnectionId(), getIdentifier(), ":method" ));
+                        getConnectionId(), getIdAsString(), ":method" ));
             }
             break;
         }
@@ -396,18 +396,18 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
                 coyoteRequest.scheme().setString(value);
             } else {
                 throw new 
HpackException(sm.getString("stream.header.duplicate",
-                        getConnectionId(), getIdentifier(), ":scheme" ));
+                        getConnectionId(), getIdAsString(), ":scheme" ));
             }
             break;
         }
         case ":path": {
             if (!coyoteRequest.requestURI().isNull()) {
                 throw new 
HpackException(sm.getString("stream.header.duplicate",
-                        getConnectionId(), getIdentifier(), ":path" ));
+                        getConnectionId(), getIdAsString(), ":path" ));
             }
             if (value.length() == 0) {
                 throw new HpackException(sm.getString("stream.header.noPath",
-                        getConnectionId(), getIdentifier()));
+                        getConnectionId(), getIdAsString()));
             }
             int queryStart = value.indexOf('?');
             String uri;
@@ -434,7 +434,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
                 } catch (IllegalArgumentException iae) {
                     // Host value invalid
                     throw new 
HpackException(sm.getString("stream.header.invalid",
-                            getConnectionId(), getIdentifier(), ":authority", 
value));
+                            getConnectionId(), getIdAsString(), ":authority", 
value));
                 }
                 if (i > -1) {
                     coyoteRequest.serverName().setString(value.substring(0, 
i));
@@ -444,7 +444,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
                 }
             } else {
                 throw new 
HpackException(sm.getString("stream.header.duplicate",
-                        getConnectionId(), getIdentifier(), ":authority" ));
+                        getConnectionId(), getIdAsString(), ":authority" ));
             }
             break;
         }
@@ -468,7 +468,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
             }
             if (pseudoHeader) {
                 headerException = new StreamException(sm.getString(
-                        "stream.header.unknownPseudoHeader", 
getConnectionId(), getIdentifier(),
+                        "stream.header.unknownPseudoHeader", 
getConnectionId(), getIdAsString(),
                         name), Http2Error.PROTOCOL_ERROR, getIdAsInt());
             }
 
@@ -500,7 +500,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
         if (coyoteRequest.method().isNull() || coyoteRequest.scheme().isNull() 
||
                 coyoteRequest.requestURI().isNull()) {
             throw new 
ConnectionException(sm.getString("stream.header.required",
-                    getConnectionId(), getIdentifier()), 
Http2Error.PROTOCOL_ERROR);
+                    getConnectionId(), getIdAsString()), 
Http2Error.PROTOCOL_ERROR);
         }
         // Cookie headers need to be concatenated into a single header
         // See RFC 7540 8.1.2.5
@@ -573,7 +573,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
                 
handler.getHpackDecoder().setMaxHeaderSize(handler.getMaxTrailerSize());
             } else {
                 throw new 
ConnectionException(sm.getString("stream.trailerHeader.noEndOfStream",
-                        getConnectionId(), getIdentifier()), 
Http2Error.PROTOCOL_ERROR);
+                        getConnectionId(), getIdAsString()), 
Http2Error.PROTOCOL_ERROR);
             }
         }
         // Parser will catch attempt to send a headers frame after the stream
@@ -592,7 +592,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
         long contentLengthHeader = coyoteRequest.getContentLengthLong();
         if (contentLengthHeader > -1 && contentLengthReceived > 
contentLengthHeader) {
             throw new 
ConnectionException(sm.getString("stream.header.contentLength",
-                    getConnectionId(), getIdentifier(), 
Long.valueOf(contentLengthHeader),
+                    getConnectionId(), getIdAsString(), 
Long.valueOf(contentLengthHeader),
                     Long.valueOf(contentLengthReceived)), 
Http2Error.PROTOCOL_ERROR);
         }
     }
@@ -601,7 +601,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
     final void receivedEndOfStream() throws ConnectionException {
         if (isContentLengthInconsistent()) {
             throw new 
ConnectionException(sm.getString("stream.header.contentLength",
-                    getConnectionId(), getIdentifier(),
+                    getConnectionId(), getIdAsString(),
                     Long.valueOf(coyoteRequest.getContentLengthLong()),
                     Long.valueOf(contentLengthReceived)), 
Http2Error.PROTOCOL_ERROR);
         }
@@ -687,7 +687,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
             try {
                 StreamException se = (StreamException) http2Exception;
                 if (log.isDebugEnabled()) {
-                    log.debug(sm.getString("stream.reset.send", 
getConnectionId(), getIdentifier(),
+                    log.debug(sm.getString("stream.reset.send", 
getConnectionId(), getIdAsString(),
                             se.getError()));
                 }
                 state.sendReset();
@@ -719,7 +719,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
      */
     final void recycle() {
         if (log.isDebugEnabled()) {
-            log.debug(sm.getString("stream.recycle", getConnectionId(), 
getIdentifier()));
+            log.debug(sm.getString("stream.recycle", getConnectionId(), 
getIdAsString()));
         }
         /*
          * Temporarily disabled due to multiple regressions (NPEs)
@@ -869,7 +869,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
         public synchronized int doWrite(ByteBuffer chunk) throws IOException {
             if (closed) {
                 throw new IllegalStateException(
-                        sm.getString("stream.closed", getConnectionId(), 
getIdentifier()));
+                        sm.getString("stream.closed", getConnectionId(), 
getIdAsString()));
             }
             int totalThisTime = 0;
             if (writeBuffer.isEmpty()) {
@@ -938,7 +938,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
                 throws IOException {
             if (log.isDebugEnabled()) {
                 log.debug(sm.getString("stream.outputBuffer.flush.debug", 
getConnectionId(),
-                        getIdentifier(), Integer.toString(buffer.position()),
+                        getIdAsString(), Integer.toString(buffer.position()),
                         Boolean.toString(writeInProgress), 
Boolean.toString(closed)));
             }
             if (buffer.position() == 0) {
diff --git a/java/org/apache/coyote/http2/StreamProcessor.java 
b/java/org/apache/coyote/http2/StreamProcessor.java
index 2c77a64..81ed660 100644
--- a/java/org/apache/coyote/http2/StreamProcessor.java
+++ b/java/org/apache/coyote/http2/StreamProcessor.java
@@ -76,14 +76,14 @@ class StreamProcessor extends AbstractProcessor {
                         if (!getErrorState().isConnectionIoAllowed()) {
                             ConnectionException ce = new 
ConnectionException(sm.getString(
                                     "streamProcessor.error.connection", 
stream.getConnectionId(),
-                                    stream.getIdentifier()), 
Http2Error.INTERNAL_ERROR);
+                                    stream.getIdAsString()), 
Http2Error.INTERNAL_ERROR);
                             stream.close(ce);
                         } else if (!getErrorState().isIoAllowed()) {
                             StreamException se = stream.getResetException();
                             if (se == null) {
                                 se = new StreamException(sm.getString(
                                         "streamProcessor.error.stream", 
stream.getConnectionId(),
-                                        stream.getIdentifier()), 
Http2Error.INTERNAL_ERROR,
+                                        stream.getIdAsString()), 
Http2Error.INTERNAL_ERROR,
                                         stream.getIdAsInt());
                             }
                             stream.close(se);
@@ -96,7 +96,7 @@ class StreamProcessor extends AbstractProcessor {
                     }
                 } catch (Exception e) {
                     String msg = 
sm.getString("streamProcessor.error.connection",
-                            stream.getConnectionId(), stream.getIdentifier());
+                            stream.getConnectionId(), stream.getIdAsString());
                     if (log.isDebugEnabled()) {
                         log.debug(msg, e);
                     }
@@ -326,7 +326,7 @@ class StreamProcessor extends AbstractProcessor {
 
     @Override
     protected Object getStreamID() {
-        return stream.getIdentifier().toString();
+        return stream.getIdAsString().toString();
     }
 
 
@@ -389,7 +389,7 @@ class StreamProcessor extends AbstractProcessor {
     protected boolean flushBufferedWrite() throws IOException {
         if (log.isDebugEnabled()) {
             log.debug(sm.getString("streamProcessor.flushBufferedWrite.entry",
-                    stream.getConnectionId(), stream.getIdentifier()));
+                    stream.getConnectionId(), stream.getIdAsString()));
         }
         if (stream.flush(false)) {
             // The buffer wasn't fully flushed so re-register the
@@ -425,7 +425,7 @@ class StreamProcessor extends AbstractProcessor {
             // triggered.
             StreamException se = new StreamException(
                     sm.getString("streamProcessor.cancel", 
stream.getConnectionId(),
-                            stream.getIdentifier()), Http2Error.CANCEL, 
stream.getIdAsInt());
+                            stream.getIdAsString()), Http2Error.CANCEL, 
stream.getIdAsInt());
             handler.sendStreamReset(se);
         }
     }
diff --git a/java/org/apache/coyote/http2/StreamStateMachine.java 
b/java/org/apache/coyote/http2/StreamStateMachine.java
index d63e56e..66aee45 100644
--- a/java/org/apache/coyote/http2/StreamStateMachine.java
+++ b/java/org/apache/coyote/http2/StreamStateMachine.java
@@ -97,7 +97,7 @@ public class StreamStateMachine {
     public synchronized void sendReset() {
         if (state == State.IDLE) {
             throw new 
IllegalStateException(sm.getString("streamStateMachine.debug.change",
-                    stream.getConnectionId(), stream.getIdentifier(), state));
+                    stream.getConnectionId(), stream.getIdAsString(), state));
         }
         if (state.canReset()) {
             stateChange(state, State.CLOSED_RST_TX);
@@ -115,7 +115,7 @@ public class StreamStateMachine {
             state = newState;
             if (log.isDebugEnabled()) {
                 log.debug(sm.getString("streamStateMachine.debug.change", 
stream.getConnectionId(),
-                        stream.getIdentifier(), oldState, newState));
+                        stream.getIdAsString(), oldState, newState));
             }
         }
     }
@@ -127,11 +127,11 @@ public class StreamStateMachine {
         if (!isFrameTypePermitted(frameType)) {
             if (state.connectionErrorForInvalidFrame) {
                 throw new 
ConnectionException(sm.getString("streamStateMachine.invalidFrame",
-                        stream.getConnectionId(), stream.getIdentifier(), 
state, frameType),
+                        stream.getConnectionId(), stream.getIdAsString(), 
state, frameType),
                         state.errorCodeForInvalidFrame);
             } else {
                 throw new 
StreamException(sm.getString("streamStateMachine.invalidFrame",
-                        stream.getConnectionId(), stream.getIdentifier(), 
state, frameType),
+                        stream.getConnectionId(), stream.getIdAsString(), 
state, frameType),
                         state.errorCodeForInvalidFrame, stream.getIdAsInt());
             }
         }
diff --git a/java/org/apache/coyote/http2/WindowAllocationManager.java 
b/java/org/apache/coyote/http2/WindowAllocationManager.java
index 973ce59..96016cc 100644
--- a/java/org/apache/coyote/http2/WindowAllocationManager.java
+++ b/java/org/apache/coyote/http2/WindowAllocationManager.java
@@ -68,7 +68,7 @@ class WindowAllocationManager {
     void waitForStream(long timeout) throws InterruptedException {
         if (log.isDebugEnabled()) {
             log.debug(sm.getString("windowAllocationManager.waitFor.stream",
-                    stream.getConnectionId(), stream.getIdentifier(), 
Long.toString(timeout)));
+                    stream.getConnectionId(), stream.getIdAsString(), 
Long.toString(timeout)));
         }
 
         waitFor(STREAM, timeout);
@@ -78,7 +78,7 @@ class WindowAllocationManager {
     void waitForConnection(long timeout) throws InterruptedException {
         if (log.isDebugEnabled()) {
             
log.debug(sm.getString("windowAllocationManager.waitFor.connection",
-                    stream.getConnectionId(), stream.getIdentifier(), 
Long.toString(timeout)));
+                    stream.getConnectionId(), stream.getIdAsString(), 
Long.toString(timeout)));
         }
 
         waitFor(CONNECTION, timeout);
@@ -88,7 +88,7 @@ class WindowAllocationManager {
     void waitForStreamNonBlocking() {
         if (log.isDebugEnabled()) {
             
log.debug(sm.getString("windowAllocationManager.waitForNonBlocking.stream",
-                    stream.getConnectionId(), stream.getIdentifier()));
+                    stream.getConnectionId(), stream.getIdAsString()));
         }
 
         waitForNonBlocking(STREAM);
@@ -98,7 +98,7 @@ class WindowAllocationManager {
     void waitForConnectionNonBlocking() {
         if (log.isDebugEnabled()) {
             
log.debug(sm.getString("windowAllocationManager.waitForNonBlocking.connection",
-                    stream.getConnectionId(), stream.getIdentifier()));
+                    stream.getConnectionId(), stream.getIdAsString()));
         }
 
         waitForNonBlocking(CONNECTION);
@@ -141,7 +141,7 @@ class WindowAllocationManager {
         synchronized (stream) {
             if (waitingFor != NONE) {
                 throw new 
IllegalStateException(sm.getString("windowAllocationManager.waitFor.ise",
-                        stream.getConnectionId(), stream.getIdentifier()));
+                        stream.getConnectionId(), stream.getIdAsString()));
             }
 
             waitingFor = waitTarget;
@@ -164,7 +164,7 @@ class WindowAllocationManager {
                 // Non-blocking post-processing may attempt to flush
             } else {
                 throw new 
IllegalStateException(sm.getString("windowAllocationManager.waitFor.ise",
-                        stream.getConnectionId(), stream.getIdentifier()));
+                        stream.getConnectionId(), stream.getIdAsString()));
             }
 
         }
@@ -174,7 +174,7 @@ class WindowAllocationManager {
     private void notify(int notifyTarget) {
         if (log.isDebugEnabled()) {
             log.debug(sm.getString("windowAllocationManager.notify", 
stream.getConnectionId(),
-                    stream.getIdentifier(), Integer.toString(waitingFor), 
Integer.toString(notifyTarget)));
+                    stream.getIdAsString(), Integer.toString(waitingFor), 
Integer.toString(notifyTarget)));
         }
 
         synchronized (stream) {
@@ -191,14 +191,14 @@ class WindowAllocationManager {
                         // Blocking, so use notify to release 
StreamOutputBuffer
                         if (log.isDebugEnabled()) {
                             
log.debug(sm.getString("windowAllocationManager.notified",
-                                    stream.getConnectionId(), 
stream.getIdentifier()));
+                                    stream.getConnectionId(), 
stream.getIdAsString()));
                         }
                         stream.notify();
                     } else {
                         // Non-blocking so dispatch
                         if (log.isDebugEnabled()) {
                             
log.debug(sm.getString("windowAllocationManager.dispatched",
-                                    stream.getConnectionId(), 
stream.getIdentifier()));
+                                    stream.getConnectionId(), 
stream.getIdAsString()));
                         }
                         response.action(ActionCode.DISPATCH_WRITE, null);
                         // Need to explicitly execute dispatches on the 
StreamProcessor
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index ac004dc..8ecd987 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -76,6 +76,10 @@
         response if the Connector was configured with
         <code>maxSwallowSize=-1</code>. (markt)
       </fix>
+      <fix>
+        When logging HTTP/2 debug messages, use consistent formatting for 
stream
+        idnetifiers. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Jasper">


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

Reply via email to