You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by oa...@apache.org on 2020/07/22 14:11:43 UTC
[camel] branch master updated: CAMEL-15327: Wrap FileInputStream
with BufferedInputStream and check if InputStream supports mark/reset
operations (#4034)
This is an automated email from the ASF dual-hosted git repository.
oalsafi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 2fc0719 CAMEL-15327: Wrap FileInputStream with BufferedInputStream and check if InputStream supports mark/reset operations (#4034)
2fc0719 is described below
commit 2fc0719b9ed954d151b075a4f7185f92d534b37b
Author: Omar Al-Safi <om...@gmail.com>
AuthorDate: Wed Jul 22 16:11:25 2020 +0200
CAMEL-15327: Wrap FileInputStream with BufferedInputStream and check if InputStream supports mark/reset operations (#4034)
---
.../camel/component/azure/storage/blob/BlobStreamAndLength.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/components/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/BlobStreamAndLength.java b/components/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/BlobStreamAndLength.java
index 1a6bf13..b4ac124 100644
--- a/components/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/BlobStreamAndLength.java
+++ b/components/camel-azure-storage-blob/src/main/java/org/apache/camel/component/azure/storage/blob/BlobStreamAndLength.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.component.azure.storage.blob;
+import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
@@ -46,10 +47,14 @@ public final class BlobStreamAndLength {
}
if (body instanceof InputStream) {
+ // Note: InputStream has to support mark/reset operations
+ if (!((InputStream) body).markSupported()) {
+ throw new IllegalArgumentException("InputStream of body exchange does not support mark/rest operations.");
+ }
return new BlobStreamAndLength((InputStream) body, BlobUtils.getInputStreamLength((InputStream) body));
}
if (body instanceof File) {
- return new BlobStreamAndLength(new FileInputStream((File) body), ((File) body).length());
+ return new BlobStreamAndLength(new BufferedInputStream(new FileInputStream((File) body)), ((File) body).length());
}
if (body instanceof byte[]) {
return new BlobStreamAndLength(new ByteArrayInputStream((byte[]) body), ((byte[]) body).length);