Repository: camel Updated Branches: refs/heads/master b5f1da228 -> 5bd6ee781
CAMEL-7935 Fixed the stackoverflow of JcloudsPayloadConverter.toPayload Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/5bd6ee78 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5bd6ee78 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5bd6ee78 Branch: refs/heads/master Commit: 5bd6ee781bb9b1fb4beb806e2152603f134b8575 Parents: b5f1da2 Author: Willem Jiang <willem.ji...@gmail.com> Authored: Mon Oct 27 16:23:50 2014 +0800 Committer: Willem Jiang <willem.ji...@gmail.com> Committed: Mon Oct 27 16:23:50 2014 +0800 ---------------------------------------------------------------------- .../component/jclouds/JcloudsPayloadConverter.java | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/5bd6ee78/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsPayloadConverter.java ---------------------------------------------------------------------- diff --git a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsPayloadConverter.java b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsPayloadConverter.java index 57a9269..27a6f59 100644 --- a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsPayloadConverter.java +++ b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsPayloadConverter.java @@ -22,17 +22,17 @@ import java.io.InputStream; import java.util.Date; import javax.xml.transform.stream.StreamSource; + import com.google.common.io.ByteStreams; import com.google.common.io.InputSupplier; + import org.apache.camel.Converter; import org.apache.camel.Exchange; import org.apache.camel.FallbackConverter; import org.apache.camel.TypeConverter; import org.apache.camel.component.file.GenericFile; -import org.apache.camel.converter.stream.CachedOutputStream; import org.apache.camel.converter.stream.StreamSourceCache; import org.apache.camel.spi.TypeConverterRegistry; -import org.apache.camel.util.IOHelper; import org.apache.camel.util.ObjectHelper; import org.jclouds.io.Payload; import org.jclouds.io.payloads.ByteArrayPayload; @@ -98,17 +98,14 @@ public final class JcloudsPayloadConverter { @Converter public static Payload toPayload(InputStream is, Exchange exchange) throws IOException { + InputStreamPayload payload = new InputStreamPayload(is); + // only set the contentlength if possible if (is.markSupported()) { - InputStreamPayload payload = new InputStreamPayload(is); long contentLength = ByteStreams.length(payload); is.reset(); payload.getContentMetadata().setContentLength(contentLength); - return payload; - } else { - CachedOutputStream cos = new CachedOutputStream(exchange); - IOHelper.copy(is, cos); - return toPayload(cos.getWrappedInputStream(), exchange); } + return payload; } @Converter