This is an automated email from the ASF dual-hosted git repository.

arjansh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/metamodel.git

commit 57ede254772829b1a9a15b45a928a8b79e96af1d
Author: jakub <j.horci...@quadient.com>
AuthorDate: Thu Dec 17 10:31:56 2020 +0100

    MM-1229: FixedWidth works with UrlResource/HttpInputStream.
---
 .../metamodel/fixedwidth/FixedWidthDataContext.java      | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git 
a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
 
b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
index 022649e..60e33d1 100644
--- 
a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
+++ 
b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
@@ -153,18 +153,22 @@ public class FixedWidthDataContext extends 
QueryPostprocessDataContext {
     private FixedWidthReader createReader() {
         final InputStream inputStream = _resource.read();
         final FixedWidthReader reader;
-        
+
         if (_configuration instanceof EbcdicConfiguration) {
-            reader = new EbcdicReader((BufferedInputStream) inputStream, 
_configuration.getEncoding(),
-                    _configuration.getValueWidths(), 
_configuration.isFailOnInconsistentLineWidth(), 
-                    ((EbcdicConfiguration) 
_configuration).isSkipEbcdicHeader(), 
-                    ((EbcdicConfiguration) _configuration).isEolPresent());
+            final BufferedInputStream bufferedInputStream =
+                    inputStream instanceof BufferedInputStream ? 
(BufferedInputStream) inputStream
+                            : new BufferedInputStream(inputStream);
+            reader =
+                    new EbcdicReader(bufferedInputStream, 
_configuration.getEncoding(), _configuration.getValueWidths(),
+                            _configuration.isFailOnInconsistentLineWidth(),
+                            ((EbcdicConfiguration) 
_configuration).isSkipEbcdicHeader(),
+                            ((EbcdicConfiguration) 
_configuration).isEolPresent());
         } else {
             if (_configuration.isConstantValueWidth()) {
                 reader = new FixedWidthReader(inputStream, 
_configuration.getEncoding(),
                         _configuration.getFixedValueWidth(), 
_configuration.isFailOnInconsistentLineWidth());
             } else {
-                reader = new FixedWidthReader(inputStream, 
_configuration.getEncoding(), 
+                reader = new FixedWidthReader(inputStream, 
_configuration.getEncoding(),
                         _configuration.getValueWidths(), 
_configuration.isFailOnInconsistentLineWidth());
             }
         }

Reply via email to