summaryrefslogtreecommitdiff
path: root/lib/java/src/test/java/org/apache/thrift/transport/TestTByteBuffer.java
diff options
context:
space:
mode:
Diffstat (limited to 'lib/java/src/test/java/org/apache/thrift/transport/TestTByteBuffer.java')
-rw-r--r--lib/java/src/test/java/org/apache/thrift/transport/TestTByteBuffer.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/java/src/test/java/org/apache/thrift/transport/TestTByteBuffer.java b/lib/java/src/test/java/org/apache/thrift/transport/TestTByteBuffer.java
index 748de121e..26ffc5d58 100644
--- a/lib/java/src/test/java/org/apache/thrift/transport/TestTByteBuffer.java
+++ b/lib/java/src/test/java/org/apache/thrift/transport/TestTByteBuffer.java
@@ -1,10 +1,12 @@
package org.apache.thrift.transport;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
+import org.apache.thrift.TConfiguration;
import org.junit.jupiter.api.Test;
public class TestTByteBuffer {
@@ -39,4 +41,29 @@ public class TestTByteBuffer {
() -> byteBuffer.write("Hello World".getBytes(StandardCharsets.UTF_8)));
assertEquals("Not enough room in output buffer", e.getMessage());
}
+
+ @Test
+ public void testSmallTConfiguration() throws Exception {
+ // Test that TByteBuffer init fail with small max message size.
+ final TConfiguration configSmall =
+ new TConfiguration(
+ 4, TConfiguration.DEFAULT_MAX_FRAME_SIZE, TConfiguration.DEFAULT_RECURSION_DEPTH);
+ TTransportException e =
+ assertThrows(
+ TTransportException.class,
+ () -> new TByteBuffer(configSmall, ByteBuffer.allocate(100)));
+ assertEquals("MaxMessageSize reached", e.getMessage());
+ }
+
+ @Test
+ public void testLargeTConfiguration() throws Exception {
+ // Test that TByteBuffer init pass with large max message size beyond
+ // TConfiguration.DEFAULT_MAX_MESSAGE_SIZE.
+ int maxSize = 101 * 1024 * 1024;
+ int bufferSize = (100 * 1024 + 512) * 1024;
+ final TConfiguration configLarge =
+ new TConfiguration(
+ maxSize, TConfiguration.DEFAULT_MAX_FRAME_SIZE, TConfiguration.DEFAULT_RECURSION_DEPTH);
+ assertDoesNotThrow(() -> new TByteBuffer(configLarge, ByteBuffer.allocate(bufferSize)));
+ }
}