Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id F14A6200C48 for ; Thu, 23 Feb 2017 10:03:39 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id EFF01160B62; Thu, 23 Feb 2017 09:03:39 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 26B64160B78 for ; Thu, 23 Feb 2017 10:03:38 +0100 (CET) Received: (qmail 8090 invoked by uid 500); 23 Feb 2017 09:03:38 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 7980 invoked by uid 99); 23 Feb 2017 09:03:37 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Feb 2017 09:03:37 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id C5B0ADFDC2; Thu, 23 Feb 2017 09:03:37 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: acosentino@apache.org To: commits@camel.apache.org Date: Thu, 23 Feb 2017 09:03:38 -0000 Message-Id: <1ecbc5e5d8994c4e97ddc8f6171c2ffb@git.apache.org> In-Reply-To: <5567fbb6c9644944aae52413d04e18b1@git.apache.org> References: <5567fbb6c9644944aae52413d04e18b1@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [02/10] camel git commit: CAMEL-10883: show that delayed payloads are not read correctly archived-at: Thu, 23 Feb 2017 09:03:40 -0000 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 Authored: Tue Feb 21 11:30:20 2017 +1300 Committer: Andrea Cosentino 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