You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bv...@apache.org on 2013/12/27 09:51:25 UTC

git commit: CAMEL-7099: Better make use of buffered I/O while unmarshalling.

Updated Branches:
  refs/heads/master afca2399d -> 6b0031df2


CAMEL-7099: Better make use of buffered I/O while unmarshalling.

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/6b0031df
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6b0031df
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6b0031df

Branch: refs/heads/master
Commit: 6b0031df28ce6136c80bd5a3eaeab1d6c3c1c5a8
Parents: afca239
Author: Babak Vahdat <bv...@apache.org>
Authored: Fri Dec 27 09:51:17 2013 +0100
Committer: Babak Vahdat <bv...@apache.org>
Committed: Fri Dec 27 09:51:17 2013 +0100

----------------------------------------------------------------------
 .../apache/camel/dataformat/csv/CsvDataFormat.java   | 15 ++++++++-------
 .../org/apache/camel/dataformat/csv/CsvIterator.java | 10 +++++-----
 2 files changed, 13 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6b0031df/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java b/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java
index 0172116..649bc81 100644
--- a/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java
+++ b/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java
@@ -20,6 +20,7 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
+import java.io.Reader;
 import java.io.Writer;
 import java.util.ArrayList;
 import java.util.List;
@@ -98,25 +99,25 @@ public class CsvDataFormat implements DataFormat {
         }
         strategy.setDelimiter(config.getDelimiter());
 
-        InputStreamReader in = null;
+        Reader reader = null;
         boolean error = false;
         try {
-            in = new InputStreamReader(inputStream, IOHelper.getCharsetName(exchange));
-            CSVParser parser = new CSVParser(in, strategy);
+            reader = IOHelper.buffered(new InputStreamReader(inputStream, IOHelper.getCharsetName(exchange)));
+            CSVParser parser = new CSVParser(reader, strategy);
 
             if (skipFirstLine) {
-                // read one line ahead
+                // read one line ahead and skip it
                 parser.getLine();
             }
 
-            CsvIterator csvIterator = new CsvIterator(parser, in);
+            CsvIterator csvIterator = new CsvIterator(parser, reader);
             return lazyLoad ? csvIterator : loadAllAsList(csvIterator);
         } catch (Exception e) {
             error = true;
             throw e;
         } finally {
             if (error) {
-                IOHelper.close(in);
+                IOHelper.close(reader);
             }
         }
     }
@@ -129,7 +130,7 @@ public class CsvDataFormat implements DataFormat {
             }
             return list;
         } finally {
-            // close the iterator (which would close the stream) as we've loaded all the data upfront
+            // close the iterator (which would also close the reader) as we've loaded all the data upfront
             IOHelper.close(iter);
         }
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/6b0031df/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvIterator.java
----------------------------------------------------------------------
diff --git a/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvIterator.java b/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvIterator.java
index 6b732da..fece082 100644
--- a/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvIterator.java
+++ b/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvIterator.java
@@ -19,7 +19,7 @@ package org.apache.camel.dataformat.csv;
 
 import java.io.Closeable;
 import java.io.IOException;
-import java.io.InputStreamReader;
+import java.io.Reader;
 import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
@@ -33,12 +33,12 @@ import org.apache.commons.csv.CSVParser;
 public class CsvIterator implements Iterator<List<String>>, Closeable {
 
     private final CSVParser parser;
-    private final InputStreamReader in;
+    private final Reader reader;
     private String[] line;
 
-    public CsvIterator(CSVParser parser, InputStreamReader in) throws IOException {
+    public CsvIterator(CSVParser parser, Reader reader) throws IOException {
         this.parser = parser;
-        this.in = in;
+        this.reader = reader;
         line = parser.getLine();
     }
 
@@ -73,6 +73,6 @@ public class CsvIterator implements Iterator<List<String>>, Closeable {
 
     @Override
     public void close() {
-        IOHelper.close(in);
+        IOHelper.close(reader);
     }
 }