This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/master by this push:
new 3d73e35 Refactor stream lookups
3d73e35 is described below
commit 3d73e35518c0f16439c33f14533399cc7b60525c
Author: Mark Thomas <[email protected]>
AuthorDate: Fri Mar 12 14:44:02 2021 +0000
Refactor stream lookups
---
.../apache/coyote/http2/Http2UpgradeHandler.java | 46 ++++++++++++++--------
1 file changed, 30 insertions(+), 16 deletions(-)
diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java
b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
index bf48daf..c02d3b0 100644
--- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java
+++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
@@ -1091,27 +1091,39 @@ class Http2UpgradeHandler extends AbstractStream
implements InternalHttpUpgradeH
}
- private Stream getStream(int streamId, boolean unknownIsError) throws
ConnectionException {
+ private Stream getStream(int streamId) {
Integer key = Integer.valueOf(streamId);
AbstractStream result = streams.get(key);
if (result instanceof Stream) {
return (Stream) result;
}
- if (unknownIsError) {
+ return null;
+ }
+
+
+ private Stream getStream(int streamId, boolean unknownIsError) throws
ConnectionException {
+ Stream result = getStream(streamId);
+ if (result == null && unknownIsError) {
// Stream has been closed and removed from the map
- throw new
ConnectionException(sm.getString("upgradeHandler.stream.closed",
key.toString()),
+ throw new
ConnectionException(sm.getString("upgradeHandler.stream.closed",
Integer.toString(streamId)),
Http2Error.PROTOCOL_ERROR);
}
- return null;
+ return result;
}
- private AbstractNonZeroStream getStreamMayBeClosed(int streamId, boolean
unknownIsError) throws ConnectionException {
+ private AbstractNonZeroStream getAbstractNonZeroStream(int streamId) {
Integer key = Integer.valueOf(streamId);
- AbstractNonZeroStream result = streams.get(key);
+ return streams.get(key);
+ }
+
+
+ private AbstractNonZeroStream getAbstractNonZeroStream(int streamId,
boolean unknownIsError)
+ throws ConnectionException {
+ AbstractNonZeroStream result = getAbstractNonZeroStream(streamId);
if (result == null && unknownIsError) {
// Stream has been closed and removed from the map
- throw new
ConnectionException(sm.getString("upgradeHandler.stream.closed",
key.toString()),
+ throw new
ConnectionException(sm.getString("upgradeHandler.stream.closed",
Integer.toString(streamId)),
Http2Error.PROTOCOL_ERROR);
}
return result;
@@ -1454,7 +1466,7 @@ class Http2UpgradeHandler extends AbstractStream
implements InternalHttpUpgradeH
}
}
- AbstractNonZeroStream abstractNonZeroStream =
getStreamMayBeClosed(streamId, true);
+ AbstractNonZeroStream abstractNonZeroStream =
getAbstractNonZeroStream(streamId, true);
if (abstractNonZeroStream instanceof Stream) {
Stream stream = (Stream) abstractNonZeroStream;
stream.checkState(FrameType.DATA);
@@ -1469,7 +1481,7 @@ class Http2UpgradeHandler extends AbstractStream
implements InternalHttpUpgradeH
@Override
public void endRequestBodyFrame(int streamId) throws Http2Exception {
- AbstractNonZeroStream abstractNonZeroStream =
getStreamMayBeClosed(streamId, true);
+ AbstractNonZeroStream abstractNonZeroStream =
getAbstractNonZeroStream(streamId, true);
if (abstractNonZeroStream instanceof Stream) {
((Stream)
abstractNonZeroStream).getInputBuffer().onDataAvailable();
}
@@ -1478,7 +1490,8 @@ class Http2UpgradeHandler extends AbstractStream
implements InternalHttpUpgradeH
@Override
public void receivedEndOfStream(int streamId) throws ConnectionException {
- AbstractNonZeroStream abstractNonZeroStream =
getStreamMayBeClosed(streamId, connectionState.get().isNewStreamAllowed());
+ AbstractNonZeroStream abstractNonZeroStream =
+ getAbstractNonZeroStream(streamId,
connectionState.get().isNewStreamAllowed());
if (abstractNonZeroStream instanceof Stream) {
Stream stream = (Stream) abstractNonZeroStream;
stream.receivedEndOfStream();
@@ -1492,7 +1505,7 @@ class Http2UpgradeHandler extends AbstractStream
implements InternalHttpUpgradeH
@Override
public void swallowedPadding(int streamId, int paddingLength) throws
ConnectionException, IOException {
- AbstractNonZeroStream abstractNonZeroStream =
getStreamMayBeClosed(streamId, true);
+ AbstractNonZeroStream abstractNonZeroStream =
getAbstractNonZeroStream(streamId, true);
// +1 is for the payload byte used to define the padding length
writeWindowUpdate(abstractNonZeroStream, paddingLength + 1, false);
}
@@ -1555,11 +1568,11 @@ class Http2UpgradeHandler extends AbstractStream
implements InternalHttpUpgradeH
increaseOverheadCount();
- AbstractNonZeroStream abstractNonZeroStream =
getStreamMayBeClosed(streamId, false);
+ AbstractNonZeroStream abstractNonZeroStream =
getAbstractNonZeroStream(streamId);
if (abstractNonZeroStream == null) {
abstractNonZeroStream = createRemoteStream(streamId);
}
- AbstractStream parentStream = getStreamMayBeClosed(parentStreamId,
false);
+ AbstractStream parentStream = getAbstractNonZeroStream(parentStreamId);
if (parentStream == null) {
parentStream = this;
}
@@ -1590,7 +1603,8 @@ class Http2UpgradeHandler extends AbstractStream
implements InternalHttpUpgradeH
@Override
public void headersEnd(int streamId) throws Http2Exception {
- AbstractNonZeroStream abstractNonZeroStream =
getStreamMayBeClosed(streamId, connectionState.get().isNewStreamAllowed());
+ AbstractNonZeroStream abstractNonZeroStream =
+ getAbstractNonZeroStream(streamId,
connectionState.get().isNewStreamAllowed());
if (abstractNonZeroStream instanceof Stream) {
setMaxProcessedStream(streamId);
Stream stream = (Stream) abstractNonZeroStream;
@@ -1628,7 +1642,7 @@ class Http2UpgradeHandler extends AbstractStream
implements InternalHttpUpgradeH
log.debug(sm.getString("upgradeHandler.reset.receive",
getConnectionId(), Integer.toString(streamId),
Long.toString(errorCode)));
}
- AbstractNonZeroStream abstractNonZeroStream =
getStreamMayBeClosed(streamId, true);
+ AbstractNonZeroStream abstractNonZeroStream =
getAbstractNonZeroStream(streamId, true);
abstractNonZeroStream.checkState(FrameType.RST);
if (abstractNonZeroStream instanceof Stream) {
Stream stream = (Stream) abstractNonZeroStream;
@@ -1734,7 +1748,7 @@ class Http2UpgradeHandler extends AbstractStream
implements InternalHttpUpgradeH
incrementWindowSize(increment);
} else {
- AbstractNonZeroStream stream = getStreamMayBeClosed(streamId,
true);
+ AbstractNonZeroStream stream = getAbstractNonZeroStream(streamId,
true);
// Check for small increments which are inefficient
if (average < overheadThreshold) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]