677 lines
34 KiB
Diff
677 lines
34 KiB
Diff
From 4c64c98f348131e0792ba4a92ce3d0003237d56a Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?=E7=94=B0=E6=AC=A7?= <thinkerou@gmail.com>
|
|
Date: Mon, 4 Feb 2019 22:55:07 +0800
|
|
Subject: [PATCH] use checkPositive/checkPositiveOrZero (#8835)
|
|
|
|
Motivation:
|
|
|
|
We can replace some "hand-rolled" integer checks with our own static utility method to simplify the code.
|
|
|
|
Modifications:
|
|
|
|
Use methods provided by `ObjectUtil`.
|
|
|
|
Result:
|
|
|
|
Cleaner code and less duplication
|
|
---
|
|
.../handler/codec/dns/AbstractDnsRecord.java | 5 ++---
|
|
.../codec/http/DefaultHttpHeaders.java | 3 +--
|
|
.../handler/codec/http/HttpObjectDecoder.java | 21 ++++++-------------
|
|
.../codec/http/HttpResponseStatus.java | 7 +++----
|
|
.../netty/handler/codec/http/HttpVersion.java | 10 ++++-----
|
|
.../multipart/AbstractMemoryHttpData.java | 3 +--
|
|
.../codec/spdy/DefaultSpdyGoAwayFrame.java | 7 +++----
|
|
.../codec/spdy/DefaultSpdyStreamFrame.java | 7 +++----
|
|
.../codec/spdy/DefaultSpdySynReplyFrame.java | 3 +--
|
|
.../codec/spdy/DefaultSpdySynStreamFrame.java | 8 +++----
|
|
.../spdy/DefaultSpdyWindowUpdateFrame.java | 14 +++++--------
|
|
.../handler/codec/spdy/SpdyFrameDecoder.java | 7 +++----
|
|
.../handler/codec/spdy/SpdyHttpDecoder.java | 6 ++----
|
|
.../codec/spdy/SpdySessionHandler.java | 19 ++++++++---------
|
|
.../http2/DefaultHttp2ConnectionEncoder.java | 5 ++---
|
|
.../codec/http2/DefaultHttp2FrameWriter.java | 14 +++++--------
|
|
.../codec/http2/DefaultHttp2GoAwayFrame.java | 6 +++---
|
|
.../DefaultHttp2LocalFlowController.java | 5 ++---
|
|
.../DefaultHttp2RemoteFlowController.java | 5 ++---
|
|
.../DelegatingDecompressorFrameListener.java | 5 ++---
|
|
.../http2/UniformStreamByteDistributor.java | 5 ++---
|
|
.../WeightedFairQueueByteDistributor.java | 11 +++++-----
|
|
.../binary/AbstractBinaryMemcacheDecoder.java | 6 +++---
|
|
.../codec/stomp/StompSubframeDecoder.java | 13 +++---------
|
|
24 files changed, 75 insertions(+), 120 deletions(-)
|
|
|
|
diff --git a/codec-dns/src/main/java/io/netty/handler/codec/dns/AbstractDnsRecord.java b/codec-dns/src/main/java/io/netty/handler/codec/dns/AbstractDnsRecord.java
|
|
index 28b92c27f9..2ba6e573a7 100644
|
|
--- a/codec-dns/src/main/java/io/netty/handler/codec/dns/AbstractDnsRecord.java
|
|
+++ b/codec-dns/src/main/java/io/netty/handler/codec/dns/AbstractDnsRecord.java
|
|
@@ -21,6 +21,7 @@ import io.netty.util.internal.UnstableApi;
|
|
import java.net.IDN;
|
|
|
|
import static io.netty.util.internal.ObjectUtil.checkNotNull;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
|
|
/**
|
|
* A skeletal implementation of {@link DnsRecord}.
|
|
@@ -62,9 +63,7 @@ public abstract class AbstractDnsRecord implements DnsRecord {
|
|
* @param timeToLive the TTL value of the record
|
|
*/
|
|
protected AbstractDnsRecord(String name, DnsRecordType type, int dnsClass, long timeToLive) {
|
|
- if (timeToLive < 0) {
|
|
- throw new IllegalArgumentException("timeToLive: " + timeToLive + " (expected: >= 0)");
|
|
- }
|
|
+ checkPositiveOrZero(timeToLive, "timeToLive");
|
|
// Convert to ASCII which will also check that the length is not too big.
|
|
// See:
|
|
// - https://github.com/netty/netty/issues/4937
|
|
diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/DefaultHttpHeaders.java b/codec-http/src/main/java/io/netty/handler/codec/http/DefaultHttpHeaders.java
|
|
index 6204f3ea7f..d18f196e8f 100644
|
|
--- a/codec-http/src/main/java/io/netty/handler/codec/http/DefaultHttpHeaders.java
|
|
+++ b/codec-http/src/main/java/io/netty/handler/codec/http/DefaultHttpHeaders.java
|
|
@@ -341,8 +341,7 @@ public class DefaultHttpHeaders extends HttpHeaders {
|
|
default:
|
|
// Check to see if the character is not an ASCII character, or invalid
|
|
if (value < 0) {
|
|
- throw new IllegalArgumentException("a header name cannot contain non-ASCII character: " +
|
|
- value);
|
|
+ throw new IllegalArgumentException("a header name cannot contain non-ASCII character: " + value);
|
|
}
|
|
}
|
|
}
|
|
diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectDecoder.java b/codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectDecoder.java
|
|
index d4caf29c6d..ed7caa7801 100644
|
|
--- a/codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectDecoder.java
|
|
+++ b/codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectDecoder.java
|
|
@@ -15,6 +15,8 @@
|
|
*/
|
|
package io.netty.handler.codec.http;
|
|
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositive;
|
|
+
|
|
import io.netty.buffer.ByteBuf;
|
|
import io.netty.buffer.Unpooled;
|
|
import io.netty.channel.ChannelHandlerContext;
|
|
@@ -177,21 +179,10 @@ public abstract class HttpObjectDecoder extends ByteToMessageDecoder {
|
|
protected HttpObjectDecoder(
|
|
int maxInitialLineLength, int maxHeaderSize, int maxChunkSize,
|
|
boolean chunkedSupported, boolean validateHeaders, int initialBufferSize) {
|
|
- if (maxInitialLineLength <= 0) {
|
|
- throw new IllegalArgumentException(
|
|
- "maxInitialLineLength must be a positive integer: " +
|
|
- maxInitialLineLength);
|
|
- }
|
|
- if (maxHeaderSize <= 0) {
|
|
- throw new IllegalArgumentException(
|
|
- "maxHeaderSize must be a positive integer: " +
|
|
- maxHeaderSize);
|
|
- }
|
|
- if (maxChunkSize <= 0) {
|
|
- throw new IllegalArgumentException(
|
|
- "maxChunkSize must be a positive integer: " +
|
|
- maxChunkSize);
|
|
- }
|
|
+ checkPositive(maxInitialLineLength, "maxInitialLineLength");
|
|
+ checkPositive(maxHeaderSize, "maxHeaderSize");
|
|
+ checkPositive(maxChunkSize, "maxChunkSize");
|
|
+
|
|
AppendableCharSequence seq = new AppendableCharSequence(initialBufferSize);
|
|
lineParser = new LineParser(seq, maxInitialLineLength);
|
|
headerParser = new HeaderParser(seq, maxHeaderSize);
|
|
diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/HttpResponseStatus.java b/codec-http/src/main/java/io/netty/handler/codec/http/HttpResponseStatus.java
|
|
index 026866ebcc..9f24e0d3cc 100644
|
|
--- a/codec-http/src/main/java/io/netty/handler/codec/http/HttpResponseStatus.java
|
|
+++ b/codec-http/src/main/java/io/netty/handler/codec/http/HttpResponseStatus.java
|
|
@@ -22,6 +22,8 @@ import io.netty.util.AsciiString;
|
|
import io.netty.util.ByteProcessor;
|
|
import io.netty.util.CharsetUtil;
|
|
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
+
|
|
/**
|
|
* The response code and its description of HTTP or its derived protocols, such as
|
|
* <a href="http://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol">RTSP</a> and
|
|
@@ -577,10 +579,7 @@ public class HttpResponseStatus implements Comparable<HttpResponseStatus> {
|
|
}
|
|
|
|
private HttpResponseStatus(int code, String reasonPhrase, boolean bytes) {
|
|
- if (code < 0) {
|
|
- throw new IllegalArgumentException(
|
|
- "code: " + code + " (expected: 0+)");
|
|
- }
|
|
+ checkPositiveOrZero(code, "code");
|
|
|
|
if (reasonPhrase == null) {
|
|
throw new NullPointerException("reasonPhrase");
|
|
diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/HttpVersion.java b/codec-http/src/main/java/io/netty/handler/codec/http/HttpVersion.java
|
|
index a643f42458..7ba40eed90 100644
|
|
--- a/codec-http/src/main/java/io/netty/handler/codec/http/HttpVersion.java
|
|
+++ b/codec-http/src/main/java/io/netty/handler/codec/http/HttpVersion.java
|
|
@@ -15,6 +15,8 @@
|
|
*/
|
|
package io.netty.handler.codec.http;
|
|
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
+
|
|
import io.netty.buffer.ByteBuf;
|
|
import io.netty.util.CharsetUtil;
|
|
|
|
@@ -165,12 +167,8 @@ public class HttpVersion implements Comparable<HttpVersion> {
|
|
}
|
|
}
|
|
|
|
- if (majorVersion < 0) {
|
|
- throw new IllegalArgumentException("negative majorVersion");
|
|
- }
|
|
- if (minorVersion < 0) {
|
|
- throw new IllegalArgumentException("negative minorVersion");
|
|
- }
|
|
+ checkPositiveOrZero(majorVersion, "majorVersion");
|
|
+ checkPositiveOrZero(minorVersion, "minorVersion");
|
|
|
|
this.protocolName = protocolName;
|
|
this.majorVersion = majorVersion;
|
|
diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/multipart/AbstractMemoryHttpData.java b/codec-http/src/main/java/io/netty/handler/codec/http/multipart/AbstractMemoryHttpData.java
|
|
index 31aa9ce64b..4cb7e567b2 100644
|
|
--- a/codec-http/src/main/java/io/netty/handler/codec/http/multipart/AbstractMemoryHttpData.java
|
|
+++ b/codec-http/src/main/java/io/netty/handler/codec/http/multipart/AbstractMemoryHttpData.java
|
|
@@ -128,8 +128,7 @@ public abstract class AbstractMemoryHttpData extends AbstractHttpData {
|
|
}
|
|
long newsize = file.length();
|
|
if (newsize > Integer.MAX_VALUE) {
|
|
- throw new IllegalArgumentException(
|
|
- "File too big to be loaded in memory");
|
|
+ throw new IllegalArgumentException("File too big to be loaded in memory");
|
|
}
|
|
checkSize(newsize);
|
|
FileInputStream inputStream = new FileInputStream(file);
|
|
diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdyGoAwayFrame.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdyGoAwayFrame.java
|
|
index 4d88875a6e..79c21f2404 100644
|
|
--- a/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdyGoAwayFrame.java
|
|
+++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdyGoAwayFrame.java
|
|
@@ -15,6 +15,8 @@
|
|
*/
|
|
package io.netty.handler.codec.spdy;
|
|
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
+
|
|
import io.netty.util.internal.StringUtil;
|
|
|
|
/**
|
|
@@ -62,10 +64,7 @@ public class DefaultSpdyGoAwayFrame implements SpdyGoAwayFrame {
|
|
|
|
@Override
|
|
public SpdyGoAwayFrame setLastGoodStreamId(int lastGoodStreamId) {
|
|
- if (lastGoodStreamId < 0) {
|
|
- throw new IllegalArgumentException("Last-good-stream-ID"
|
|
- + " cannot be negative: " + lastGoodStreamId);
|
|
- }
|
|
+ checkPositiveOrZero(lastGoodStreamId, "lastGoodStreamId");
|
|
this.lastGoodStreamId = lastGoodStreamId;
|
|
return this;
|
|
}
|
|
diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdyStreamFrame.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdyStreamFrame.java
|
|
index 4618d4d4a9..487844ecd9 100644
|
|
--- a/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdyStreamFrame.java
|
|
+++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdyStreamFrame.java
|
|
@@ -15,6 +15,8 @@
|
|
*/
|
|
package io.netty.handler.codec.spdy;
|
|
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositive;
|
|
+
|
|
/**
|
|
* The default {@link SpdyStreamFrame} implementation.
|
|
*/
|
|
@@ -39,10 +41,7 @@ public abstract class DefaultSpdyStreamFrame implements SpdyStreamFrame {
|
|
|
|
@Override
|
|
public SpdyStreamFrame setStreamId(int streamId) {
|
|
- if (streamId <= 0) {
|
|
- throw new IllegalArgumentException(
|
|
- "Stream-ID must be positive: " + streamId);
|
|
- }
|
|
+ checkPositive(streamId, "streamId");
|
|
this.streamId = streamId;
|
|
return this;
|
|
}
|
|
diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdySynReplyFrame.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdySynReplyFrame.java
|
|
index 7efc905641..f757d1dbd6 100644
|
|
--- a/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdySynReplyFrame.java
|
|
+++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdySynReplyFrame.java
|
|
@@ -20,8 +20,7 @@ import io.netty.util.internal.StringUtil;
|
|
/**
|
|
* The default {@link SpdySynReplyFrame} implementation.
|
|
*/
|
|
-public class DefaultSpdySynReplyFrame extends DefaultSpdyHeadersFrame
|
|
- implements SpdySynReplyFrame {
|
|
+public class DefaultSpdySynReplyFrame extends DefaultSpdyHeadersFrame implements SpdySynReplyFrame {
|
|
|
|
/**
|
|
* Creates a new instance.
|
|
diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdySynStreamFrame.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdySynStreamFrame.java
|
|
index f8adc1c5f1..46fe301636 100644
|
|
--- a/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdySynStreamFrame.java
|
|
+++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdySynStreamFrame.java
|
|
@@ -15,6 +15,8 @@
|
|
*/
|
|
package io.netty.handler.codec.spdy;
|
|
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
+
|
|
import io.netty.util.internal.StringUtil;
|
|
|
|
/**
|
|
@@ -77,11 +79,7 @@ public class DefaultSpdySynStreamFrame extends DefaultSpdyHeadersFrame
|
|
|
|
@Override
|
|
public SpdySynStreamFrame setAssociatedStreamId(int associatedStreamId) {
|
|
- if (associatedStreamId < 0) {
|
|
- throw new IllegalArgumentException(
|
|
- "Associated-To-Stream-ID cannot be negative: " +
|
|
- associatedStreamId);
|
|
- }
|
|
+ checkPositiveOrZero(associatedStreamId, "associatedStreamId");
|
|
this.associatedStreamId = associatedStreamId;
|
|
return this;
|
|
}
|
|
diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdyWindowUpdateFrame.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdyWindowUpdateFrame.java
|
|
index f14611bac6..22b0406c80 100644
|
|
--- a/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdyWindowUpdateFrame.java
|
|
+++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/DefaultSpdyWindowUpdateFrame.java
|
|
@@ -15,6 +15,9 @@
|
|
*/
|
|
package io.netty.handler.codec.spdy;
|
|
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositive;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
+
|
|
import io.netty.util.internal.StringUtil;
|
|
|
|
/**
|
|
@@ -43,10 +46,7 @@ public class DefaultSpdyWindowUpdateFrame implements SpdyWindowUpdateFrame {
|
|
|
|
@Override
|
|
public SpdyWindowUpdateFrame setStreamId(int streamId) {
|
|
- if (streamId < 0) {
|
|
- throw new IllegalArgumentException(
|
|
- "Stream-ID cannot be negative: " + streamId);
|
|
- }
|
|
+ checkPositiveOrZero(streamId, "streamId");
|
|
this.streamId = streamId;
|
|
return this;
|
|
}
|
|
@@ -58,11 +58,7 @@ public class DefaultSpdyWindowUpdateFrame implements SpdyWindowUpdateFrame {
|
|
|
|
@Override
|
|
public SpdyWindowUpdateFrame setDeltaWindowSize(int deltaWindowSize) {
|
|
- if (deltaWindowSize <= 0) {
|
|
- throw new IllegalArgumentException(
|
|
- "Delta-Window-Size must be positive: " +
|
|
- deltaWindowSize);
|
|
- }
|
|
+ checkPositive(deltaWindowSize, "deltaWindowSize");
|
|
this.deltaWindowSize = deltaWindowSize;
|
|
return this;
|
|
}
|
|
diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyFrameDecoder.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyFrameDecoder.java
|
|
index e0d1112813..fc432b6830 100644
|
|
--- a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyFrameDecoder.java
|
|
+++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyFrameDecoder.java
|
|
@@ -38,6 +38,8 @@ import static io.netty.handler.codec.spdy.SpdyCodecUtil.getSignedInt;
|
|
import static io.netty.handler.codec.spdy.SpdyCodecUtil.getUnsignedInt;
|
|
import static io.netty.handler.codec.spdy.SpdyCodecUtil.getUnsignedMedium;
|
|
import static io.netty.handler.codec.spdy.SpdyCodecUtil.getUnsignedShort;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositive;
|
|
+
|
|
import io.netty.buffer.ByteBuf;
|
|
import io.netty.buffer.Unpooled;
|
|
|
|
@@ -95,10 +97,7 @@ public class SpdyFrameDecoder {
|
|
if (delegate == null) {
|
|
throw new NullPointerException("delegate");
|
|
}
|
|
- if (maxChunkSize <= 0) {
|
|
- throw new IllegalArgumentException(
|
|
- "maxChunkSize must be a positive integer: " + maxChunkSize);
|
|
- }
|
|
+ checkPositive(maxChunkSize, "maxChunkSize");
|
|
this.spdyVersion = spdyVersion.getVersion();
|
|
this.delegate = delegate;
|
|
this.maxChunkSize = maxChunkSize;
|
|
diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHttpDecoder.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHttpDecoder.java
|
|
index 366ad15b66..5e16a6f4f2 100644
|
|
--- a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHttpDecoder.java
|
|
+++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHttpDecoder.java
|
|
@@ -38,6 +38,7 @@ import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import static io.netty.handler.codec.spdy.SpdyHeaders.HttpNames.*;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositive;
|
|
|
|
/**
|
|
* Decodes {@link SpdySynStreamFrame}s, {@link SpdySynReplyFrame}s,
|
|
@@ -103,10 +104,7 @@ public class SpdyHttpDecoder extends MessageToMessageDecoder<SpdyFrame> {
|
|
if (version == null) {
|
|
throw new NullPointerException("version");
|
|
}
|
|
- if (maxContentLength <= 0) {
|
|
- throw new IllegalArgumentException(
|
|
- "maxContentLength must be a positive integer: " + maxContentLength);
|
|
- }
|
|
+ checkPositive(maxContentLength, "maxContentLength");
|
|
spdyVersion = version.getVersion();
|
|
this.maxContentLength = maxContentLength;
|
|
this.messageMap = messageMap;
|
|
diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdySessionHandler.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdySessionHandler.java
|
|
index 394f6c2e9a..8f90864151 100644
|
|
--- a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdySessionHandler.java
|
|
+++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdySessionHandler.java
|
|
@@ -26,6 +26,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
import static io.netty.handler.codec.spdy.SpdyCodecUtil.SPDY_SESSION_STREAM_ID;
|
|
import static io.netty.handler.codec.spdy.SpdyCodecUtil.isServerId;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
|
|
/**
|
|
* Manages streams within a SPDY session.
|
|
@@ -77,16 +78,14 @@ public class SpdySessionHandler extends ChannelDuplexHandler {
|
|
}
|
|
|
|
public void setSessionReceiveWindowSize(int sessionReceiveWindowSize) {
|
|
- if (sessionReceiveWindowSize < 0) {
|
|
- throw new IllegalArgumentException("sessionReceiveWindowSize");
|
|
- }
|
|
- // This will not send a window update frame immediately.
|
|
- // If this value increases the allowed receive window size,
|
|
- // a WINDOW_UPDATE frame will be sent when only half of the
|
|
- // session window size remains during data frame processing.
|
|
- // If this value decreases the allowed receive window size,
|
|
- // the window will be reduced as data frames are processed.
|
|
- initialSessionReceiveWindowSize = sessionReceiveWindowSize;
|
|
+ checkPositiveOrZero(sessionReceiveWindowSize, "sessionReceiveWindowSize");
|
|
+ // This will not send a window update frame immediately.
|
|
+ // If this value increases the allowed receive window size,
|
|
+ // a WINDOW_UPDATE frame will be sent when only half of the
|
|
+ // session window size remains during data frame processing.
|
|
+ // If this value decreases the allowed receive window size,
|
|
+ // the window will be reduced as data frames are processed.
|
|
+ initialSessionReceiveWindowSize = sessionReceiveWindowSize;
|
|
}
|
|
|
|
@Override
|
|
diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder.java
|
|
index f0af13b394..18375db76a 100644
|
|
--- a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder.java
|
|
+++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder.java
|
|
@@ -29,6 +29,7 @@ import static io.netty.handler.codec.http2.Http2CodecUtil.DEFAULT_PRIORITY_WEIGH
|
|
import static io.netty.handler.codec.http2.Http2Error.PROTOCOL_ERROR;
|
|
import static io.netty.handler.codec.http2.Http2Exception.connectionError;
|
|
import static io.netty.util.internal.ObjectUtil.checkNotNull;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
import static java.lang.Integer.MAX_VALUE;
|
|
import static java.lang.Math.min;
|
|
|
|
@@ -485,9 +486,7 @@ public class DefaultHttp2ConnectionEncoder implements Http2ConnectionEncoder {
|
|
|
|
FlowControlledBase(final Http2Stream stream, int padding, boolean endOfStream,
|
|
final ChannelPromise promise) {
|
|
- if (padding < 0) {
|
|
- throw new IllegalArgumentException("padding must be >= 0");
|
|
- }
|
|
+ checkPositiveOrZero(padding, "padding");
|
|
this.padding = padding;
|
|
this.endOfStream = endOfStream;
|
|
this.stream = stream;
|
|
diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameWriter.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameWriter.java
|
|
index c7277561d6..77270f8343 100644
|
|
--- a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameWriter.java
|
|
+++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameWriter.java
|
|
@@ -61,6 +61,8 @@ import static io.netty.handler.codec.http2.Http2FrameTypes.RST_STREAM;
|
|
import static io.netty.handler.codec.http2.Http2FrameTypes.SETTINGS;
|
|
import static io.netty.handler.codec.http2.Http2FrameTypes.WINDOW_UPDATE;
|
|
import static io.netty.util.internal.ObjectUtil.checkNotNull;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositive;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
import static java.lang.Math.max;
|
|
import static java.lang.Math.min;
|
|
|
|
@@ -547,15 +549,11 @@ public class DefaultHttp2FrameWriter implements Http2FrameWriter, Http2FrameSize
|
|
}
|
|
|
|
private static void verifyStreamId(int streamId, String argumentName) {
|
|
- if (streamId <= 0) {
|
|
- throw new IllegalArgumentException(argumentName + " must be > 0");
|
|
- }
|
|
+ checkPositive(streamId, "streamId");
|
|
}
|
|
|
|
private static void verifyStreamOrConnectionId(int streamId, String argumentName) {
|
|
- if (streamId < 0) {
|
|
- throw new IllegalArgumentException(argumentName + " must be >= 0");
|
|
- }
|
|
+ checkPositiveOrZero(streamId, "streamId");
|
|
}
|
|
|
|
private static void verifyWeight(short weight) {
|
|
@@ -571,9 +569,7 @@ public class DefaultHttp2FrameWriter implements Http2FrameWriter, Http2FrameSize
|
|
}
|
|
|
|
private static void verifyWindowSizeIncrement(int windowSizeIncrement) {
|
|
- if (windowSizeIncrement < 0) {
|
|
- throw new IllegalArgumentException("WindowSizeIncrement must be >= 0");
|
|
- }
|
|
+ checkPositiveOrZero(windowSizeIncrement, "windowSizeIncrement");
|
|
}
|
|
|
|
private static void verifyPingPayload(ByteBuf data) {
|
|
diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2GoAwayFrame.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2GoAwayFrame.java
|
|
index 8f54b8e329..dc01f37482 100644
|
|
--- a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2GoAwayFrame.java
|
|
+++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2GoAwayFrame.java
|
|
@@ -15,6 +15,8 @@
|
|
*/
|
|
package io.netty.handler.codec.http2;
|
|
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
+
|
|
import io.netty.buffer.ByteBuf;
|
|
import io.netty.buffer.DefaultByteBufHolder;
|
|
import io.netty.buffer.Unpooled;
|
|
@@ -97,9 +99,7 @@ public final class DefaultHttp2GoAwayFrame extends DefaultByteBufHolder implemen
|
|
|
|
@Override
|
|
public Http2GoAwayFrame setExtraStreamIds(int extraStreamIds) {
|
|
- if (extraStreamIds < 0) {
|
|
- throw new IllegalArgumentException("extraStreamIds must be non-negative");
|
|
- }
|
|
+ checkPositiveOrZero(extraStreamIds, "extraStreamIds");
|
|
this.extraStreamIds = extraStreamIds;
|
|
return this;
|
|
}
|
|
diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2LocalFlowController.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2LocalFlowController.java
|
|
index 74dc3ae31c..cac715614d 100644
|
|
--- a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2LocalFlowController.java
|
|
+++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2LocalFlowController.java
|
|
@@ -24,6 +24,7 @@ import static io.netty.handler.codec.http2.Http2Error.INTERNAL_ERROR;
|
|
import static io.netty.handler.codec.http2.Http2Exception.connectionError;
|
|
import static io.netty.handler.codec.http2.Http2Exception.streamError;
|
|
import static io.netty.util.internal.ObjectUtil.checkNotNull;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
import static java.lang.Math.max;
|
|
import static java.lang.Math.min;
|
|
import io.netty.buffer.ByteBuf;
|
|
@@ -173,9 +174,7 @@ public class DefaultHttp2LocalFlowController implements Http2LocalFlowController
|
|
@Override
|
|
public boolean consumeBytes(Http2Stream stream, int numBytes) throws Http2Exception {
|
|
assert ctx != null && ctx.executor().inEventLoop();
|
|
- if (numBytes < 0) {
|
|
- throw new IllegalArgumentException("numBytes must not be negative");
|
|
- }
|
|
+ checkPositiveOrZero(numBytes, "numBytes");
|
|
if (numBytes == 0) {
|
|
return false;
|
|
}
|
|
diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2RemoteFlowController.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2RemoteFlowController.java
|
|
index 034140c81f..125a394cae 100644
|
|
--- a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2RemoteFlowController.java
|
|
+++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2RemoteFlowController.java
|
|
@@ -32,6 +32,7 @@ import static io.netty.handler.codec.http2.Http2Error.INTERNAL_ERROR;
|
|
import static io.netty.handler.codec.http2.Http2Exception.streamError;
|
|
import static io.netty.handler.codec.http2.Http2Stream.State.HALF_CLOSED_LOCAL;
|
|
import static io.netty.util.internal.ObjectUtil.checkNotNull;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
import static java.lang.Math.max;
|
|
import static java.lang.Math.min;
|
|
|
|
@@ -652,9 +653,7 @@ public class DefaultHttp2RemoteFlowController implements Http2RemoteFlowControll
|
|
}
|
|
|
|
void initialWindowSize(int newWindowSize) throws Http2Exception {
|
|
- if (newWindowSize < 0) {
|
|
- throw new IllegalArgumentException("Invalid initial window size: " + newWindowSize);
|
|
- }
|
|
+ checkPositiveOrZero(newWindowSize, "newWindowSize");
|
|
|
|
final int delta = newWindowSize - initialWindowSize;
|
|
initialWindowSize = newWindowSize;
|
|
diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/DelegatingDecompressorFrameListener.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/DelegatingDecompressorFrameListener.java
|
|
index 78ef230c62..3e73bd68dd 100644
|
|
--- a/codec-http2/src/main/java/io/netty/handler/codec/http2/DelegatingDecompressorFrameListener.java
|
|
+++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/DelegatingDecompressorFrameListener.java
|
|
@@ -33,6 +33,7 @@ import static io.netty.handler.codec.http.HttpHeaderValues.X_GZIP;
|
|
import static io.netty.handler.codec.http2.Http2Error.INTERNAL_ERROR;
|
|
import static io.netty.handler.codec.http2.Http2Exception.streamError;
|
|
import static io.netty.util.internal.ObjectUtil.checkNotNull;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
|
|
/**
|
|
* A HTTP2 frame listener that will decompress data frames according to the {@code content-encoding} header for each
|
|
@@ -398,9 +399,7 @@ public class DelegatingDecompressorFrameListener extends Http2FrameListenerDecor
|
|
* @return The number of pre-decompressed bytes that have been consumed.
|
|
*/
|
|
int consumeBytes(int streamId, int decompressedBytes) throws Http2Exception {
|
|
- if (decompressedBytes < 0) {
|
|
- throw new IllegalArgumentException("decompressedBytes must not be negative: " + decompressedBytes);
|
|
- }
|
|
+ checkPositiveOrZero(decompressedBytes, "decompressedBytes");
|
|
if (decompressed - decompressedBytes < 0) {
|
|
throw streamError(streamId, INTERNAL_ERROR,
|
|
"Attempting to return too many bytes for stream %d. decompressed: %d " +
|
|
diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/UniformStreamByteDistributor.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/UniformStreamByteDistributor.java
|
|
index c3e5e2faaa..6204c7bb9c 100644
|
|
--- a/codec-http2/src/main/java/io/netty/handler/codec/http2/UniformStreamByteDistributor.java
|
|
+++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/UniformStreamByteDistributor.java
|
|
@@ -24,6 +24,7 @@ import static io.netty.handler.codec.http2.Http2CodecUtil.streamableBytes;
|
|
import static io.netty.handler.codec.http2.Http2Error.INTERNAL_ERROR;
|
|
import static io.netty.handler.codec.http2.Http2Exception.connectionError;
|
|
import static io.netty.util.internal.ObjectUtil.checkNotNull;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositive;
|
|
import static java.lang.Math.max;
|
|
import static java.lang.Math.min;
|
|
|
|
@@ -72,9 +73,7 @@ public final class UniformStreamByteDistributor implements StreamByteDistributor
|
|
* Must be > 0.
|
|
*/
|
|
public void minAllocationChunk(int minAllocationChunk) {
|
|
- if (minAllocationChunk <= 0) {
|
|
- throw new IllegalArgumentException("minAllocationChunk must be > 0");
|
|
- }
|
|
+ checkPositive(minAllocationChunk, "minAllocationChunk");
|
|
this.minAllocationChunk = minAllocationChunk;
|
|
}
|
|
|
|
diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/WeightedFairQueueByteDistributor.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/WeightedFairQueueByteDistributor.java
|
|
index c215376c72..d26c088c62 100644
|
|
--- a/codec-http2/src/main/java/io/netty/handler/codec/http2/WeightedFairQueueByteDistributor.java
|
|
+++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/WeightedFairQueueByteDistributor.java
|
|
@@ -36,6 +36,8 @@ import static io.netty.handler.codec.http2.Http2CodecUtil.DEFAULT_PRIORITY_WEIGH
|
|
import static io.netty.handler.codec.http2.Http2CodecUtil.streamableBytes;
|
|
import static io.netty.handler.codec.http2.Http2Error.INTERNAL_ERROR;
|
|
import static io.netty.handler.codec.http2.Http2Exception.connectionError;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositive;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
import static java.lang.Integer.MAX_VALUE;
|
|
import static java.lang.Math.max;
|
|
import static java.lang.Math.min;
|
|
@@ -95,9 +97,8 @@ public final class WeightedFairQueueByteDistributor implements StreamByteDistrib
|
|
}
|
|
|
|
public WeightedFairQueueByteDistributor(Http2Connection connection, int maxStateOnlySize) {
|
|
- if (maxStateOnlySize < 0) {
|
|
- throw new IllegalArgumentException("maxStateOnlySize: " + maxStateOnlySize + " (expected: >0)");
|
|
- } else if (maxStateOnlySize == 0) {
|
|
+ checkPositiveOrZero(maxStateOnlySize, "maxStateOnlySize");
|
|
+ if (maxStateOnlySize == 0) {
|
|
stateOnlyMap = IntCollections.emptyMap();
|
|
stateOnlyRemovalQueue = EmptyPriorityQueue.instance();
|
|
} else {
|
|
@@ -280,9 +281,7 @@ public final class WeightedFairQueueByteDistributor implements StreamByteDistrib
|
|
* @param allocationQuantum the amount of bytes that will be allocated to each stream. Must be > 0.
|
|
*/
|
|
public void allocationQuantum(int allocationQuantum) {
|
|
- if (allocationQuantum <= 0) {
|
|
- throw new IllegalArgumentException("allocationQuantum must be > 0");
|
|
- }
|
|
+ checkPositive(allocationQuantum, "allocationQuantum");
|
|
this.allocationQuantum = allocationQuantum;
|
|
}
|
|
|
|
diff --git a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheDecoder.java b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheDecoder.java
|
|
index 2c90382829..bec754afbd 100644
|
|
--- a/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheDecoder.java
|
|
+++ b/codec-memcache/src/main/java/io/netty/handler/codec/memcache/binary/AbstractBinaryMemcacheDecoder.java
|
|
@@ -15,6 +15,8 @@
|
|
*/
|
|
package io.netty.handler.codec.memcache.binary;
|
|
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositiveOrZero;
|
|
+
|
|
import io.netty.buffer.ByteBuf;
|
|
import io.netty.buffer.Unpooled;
|
|
import io.netty.channel.ChannelHandlerContext;
|
|
@@ -59,9 +61,7 @@ public abstract class AbstractBinaryMemcacheDecoder<M extends BinaryMemcacheMess
|
|
* @param chunkSize the maximum chunk size of the payload.
|
|
*/
|
|
protected AbstractBinaryMemcacheDecoder(int chunkSize) {
|
|
- if (chunkSize < 0) {
|
|
- throw new IllegalArgumentException("chunkSize must be a positive integer: " + chunkSize);
|
|
- }
|
|
+ checkPositiveOrZero(chunkSize, "chunkSize");
|
|
|
|
this.chunkSize = chunkSize;
|
|
}
|
|
diff --git a/codec-stomp/src/main/java/io/netty/handler/codec/stomp/StompSubframeDecoder.java b/codec-stomp/src/main/java/io/netty/handler/codec/stomp/StompSubframeDecoder.java
|
|
index e25c15447a..ca59f8494e 100644
|
|
--- a/codec-stomp/src/main/java/io/netty/handler/codec/stomp/StompSubframeDecoder.java
|
|
+++ b/codec-stomp/src/main/java/io/netty/handler/codec/stomp/StompSubframeDecoder.java
|
|
@@ -30,6 +30,7 @@ import java.util.Locale;
|
|
|
|
import static io.netty.buffer.ByteBufUtil.indexOf;
|
|
import static io.netty.buffer.ByteBufUtil.readBytes;
|
|
+import static io.netty.util.internal.ObjectUtil.checkPositive;
|
|
|
|
/**
|
|
* Decodes {@link ByteBuf}s into {@link StompHeadersSubframe}s and
|
|
@@ -81,16 +82,8 @@ public class StompSubframeDecoder extends ReplayingDecoder<State> {
|
|
|
|
public StompSubframeDecoder(int maxLineLength, int maxChunkSize) {
|
|
super(State.SKIP_CONTROL_CHARACTERS);
|
|
- if (maxLineLength <= 0) {
|
|
- throw new IllegalArgumentException(
|
|
- "maxLineLength must be a positive integer: " +
|
|
- maxLineLength);
|
|
- }
|
|
- if (maxChunkSize <= 0) {
|
|
- throw new IllegalArgumentException(
|
|
- "maxChunkSize must be a positive integer: " +
|
|
- maxChunkSize);
|
|
- }
|
|
+ checkPositive(maxLineLength, "maxLineLength");
|
|
+ checkPositive(maxChunkSize, "maxChunkSize");
|
|
this.maxChunkSize = maxChunkSize;
|
|
this.maxLineLength = maxLineLength;
|
|
}
|
|
--
|
|
2.23.0
|
|
|