You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2017/02/23 09:03:38 UTC
[02/10] camel git commit: CAMEL-10883: show that delayed payloads are
not read correctly
CAMEL-10883: show that delayed payloads are not read correctly
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/52803ab5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/52803ab5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/52803ab5
Branch: refs/heads/master
Commit: 52803ab507292252373b3f49111a5c20866fcb4c
Parents: af0668a
Author: rohan <ro...@fronde.com>
Authored: Tue Feb 21 11:30:20 2017 +1300
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Thu Feb 23 10:00:23 2017 +0100
----------------------------------------------------------------------
.../undertow/DefaultUndertowHttpBinding.java | 2 +-
.../DefaultUndertowHttpBindingTest.java | 65 ++++++++++++++++++++
2 files changed, 66 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/52803ab5/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/DefaultUndertowHttpBinding.java
----------------------------------------------------------------------
diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/DefaultUndertowHttpBinding.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/DefaultUndertowHttpBinding.java
index 4e5fc3b..8c379d2 100644
--- a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/DefaultUndertowHttpBinding.java
+++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/DefaultUndertowHttpBinding.java
@@ -378,7 +378,7 @@ public class DefaultUndertowHttpBinding implements UndertowHttpBinding {
return body;
}
- private byte[] readFromChannel(StreamSourceChannel source) throws IOException {
+ byte[] readFromChannel(StreamSourceChannel source) throws IOException {
final ByteArrayOutputStream out = new ByteArrayOutputStream();
final ByteBuffer buffer = ByteBuffer.wrap(new byte[1024]);
http://git-wip-us.apache.org/repos/asf/camel/blob/52803ab5/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/DefaultUndertowHttpBindingTest.java
----------------------------------------------------------------------
diff --git a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/DefaultUndertowHttpBindingTest.java b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/DefaultUndertowHttpBindingTest.java
new file mode 100644
index 0000000..9bd7cc7
--- /dev/null
+++ b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/DefaultUndertowHttpBindingTest.java
@@ -0,0 +1,65 @@
+package org.apache.camel.component.undertow;
+
+import org.junit.Test;
+import org.xnio.XnioIoThread;
+import org.xnio.channels.EmptyStreamSourceChannel;
+import org.xnio.channels.StreamSourceChannel;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
+
+public class DefaultUndertowHttpBindingTest {
+
+ @Test
+ public void readEntireDelayedPayload() throws Exception {
+ byte[] delayedPayload = "first ".getBytes();
+
+ ExecutorService executor = Executors.newFixedThreadPool(1);
+ StreamSourceChannel source = new EmptyStreamSourceChannel(
+ new XnioIoThread(null, 0) {
+ @Override
+ public void execute(Runnable runnable) {
+ executor.execute(runnable);
+ }
+
+ @Override
+ public Key executeAfter(Runnable runnable, long l, TimeUnit timeUnit) {
+ execute(runnable);
+ return null;
+ }
+
+ @Override
+ public Key executeAtInterval(Runnable runnable, long l, TimeUnit timeUnit) {
+ execute(runnable);
+ return null;
+ }
+ }) {
+ int chunk = 0;
+
+ @Override
+ public int read(ByteBuffer dst) throws IOException {
+ switch (chunk) {
+ case 0:
+ chunk++;
+ return 0;
+ case 1:
+ dst.put(delayedPayload);
+ chunk++;
+ return 6;
+ }
+ return -1;
+ }
+ };
+
+ DefaultUndertowHttpBinding binding = new DefaultUndertowHttpBinding();
+ byte[] result = binding.readFromChannel(source);
+
+ assertThat(result, is(delayedPayload));
+ }
+}
\ No newline at end of file