Skip to content

Commit 238fc82

Browse files
committed
Rename PerMessageDeflateExtension maxFrameSize to maxFragmentSize
The PerMessageDeflationExtension's optional maxFrameSize constructor parameter is applied to the size of a fragment while decompressing, and not to the complete frame size (that size is checked after passing the decompressed fragment), so rename the parameter to what it actually is. Add Javadoc to the full-parameter constructor method.
1 parent 2636218 commit 238fc82

1 file changed

Lines changed: 15 additions & 8 deletions

File tree

src/main/java/org/java_websocket/extensions/permessage_deflate/PerMessageDeflateExtension.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public class PerMessageDeflateExtension extends CompressionExtension {
8282
private static final int TRANSFER_CHUNK_SIZE = 8192;
8383

8484
private final int compressionLevel;
85-
private final int maxFrameSize;
85+
private final int maxFragmentSize;
8686
private final Deflater compressor;
8787
private final Inflater decompressor;
8888

@@ -107,9 +107,16 @@ public PerMessageDeflateExtension(int compressionLevel) {
107107
this(compressionLevel, Integer.MAX_VALUE);
108108
}
109109

110-
public PerMessageDeflateExtension(int compressionLevel, int maxFrameSize) {
110+
/**
111+
* Constructs the RFC 7692 permessage-deflate extension with a specific compression level and a
112+
* maximum decompressed fragment size.
113+
*
114+
* @param compressionLevel the compression level to use, see {@link Deflater}
115+
* @param maxFragmentSize the maximum allowed fragment size after decompression
116+
*/
117+
public PerMessageDeflateExtension(int compressionLevel, int maxFragmentSize) {
111118
this.compressionLevel = compressionLevel;
112-
this.maxFrameSize = maxFrameSize;
119+
this.maxFragmentSize = maxFragmentSize;
113120
compressor = new Deflater(compressionLevel, true);
114121
decompressor = new Inflater(true);
115122
compressionThreshold = DEFAULT_COMPRESSION_THRESHOLD;
@@ -129,8 +136,8 @@ public int getCompressionLevel() {
129136
return compressionLevel;
130137
}
131138

132-
public int getMaxFrameSize() {
133-
return maxFrameSize;
139+
public int getMaxFragmentSize() {
140+
return maxFragmentSize;
134141
}
135142

136143
public int getThreshold() {
@@ -257,9 +264,9 @@ private void decompress(ByteBuffer buffer, ByteArrayOutputStream decompressed)
257264
int length = decompressor.inflate(chunk);
258265
if (length > 0) {
259266
decompressed.write(chunk, 0, length);
260-
if (maxFrameSize > 0 && maxFrameSize < decompressed.size()) {
267+
if (maxFragmentSize > 0 && maxFragmentSize < decompressed.size()) {
261268
throw new DataFormatException(
262-
"Inflated frame size exceeds limit of " + maxFrameSize + " bytes");
269+
"Inflated fragment size exceeds limit of " + maxFragmentSize + " bytes");
263270
}
264271
} else {
265272
break;
@@ -550,7 +557,7 @@ public String getProvidedExtensionAsServer() {
550557
@Override
551558
public IExtension copyInstance() {
552559
PerMessageDeflateExtension clone =
553-
new PerMessageDeflateExtension(getCompressionLevel(), getMaxFrameSize());
560+
new PerMessageDeflateExtension(getCompressionLevel(), getMaxFragmentSize());
554561
clone.setClientNoContextTakeover(isClientNoContextTakeover());
555562
clone.setServerNoContextTakeover(isServerNoContextTakeover());
556563
clone.clientMaxWindowBits = clientMaxWindowBits;

0 commit comments

Comments
 (0)