You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ar...@apache.org on 2020/12/18 09:36:10 UTC

[metamodel] 01/05: MM-1229: FixedWidth works with UrlResource/HttpInputStream.

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....@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());
             }
         }