You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@batchee.apache.org by rm...@apache.org on 2015/11/20 23:41:09 UTC

incubator-batchee git commit: better validation for DefaultMapper and allowing to create parent in CommonsCsvWriter

Repository: incubator-batchee
Updated Branches:
  refs/heads/master c30a63938 -> e37f9e1ba


better validation for DefaultMapper and allowing to create parent in CommonsCsvWriter


Project: http://git-wip-us.apache.org/repos/asf/incubator-batchee/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-batchee/commit/e37f9e1b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-batchee/tree/e37f9e1b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-batchee/diff/e37f9e1b

Branch: refs/heads/master
Commit: e37f9e1ba9f980ef344c9ac71de0f4b68dc974d6
Parents: c30a639
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Fri Nov 20 14:41:00 2015 -0800
Committer: Romain Manni-Bucau <rm...@gmail.com>
Committed: Fri Nov 20 14:41:00 2015 -0800

----------------------------------------------------------------------
 .../main/java/org/apache/batchee/csv/CommonsCsvWriter.java   | 6 +++++-
 .../java/org/apache/batchee/csv/mapper/DefaultMapper.java    | 8 ++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/e37f9e1b/extensions/commons-csv/src/main/java/org/apache/batchee/csv/CommonsCsvWriter.java
----------------------------------------------------------------------
diff --git a/extensions/commons-csv/src/main/java/org/apache/batchee/csv/CommonsCsvWriter.java b/extensions/commons-csv/src/main/java/org/apache/batchee/csv/CommonsCsvWriter.java
index 8de4fa1..94c82c9 100644
--- a/extensions/commons-csv/src/main/java/org/apache/batchee/csv/CommonsCsvWriter.java
+++ b/extensions/commons-csv/src/main/java/org/apache/batchee/csv/CommonsCsvWriter.java
@@ -127,7 +127,11 @@ public class CommonsCsvWriter implements ItemWriter {
         }
         final CSVFormat format = newFormat();
 
-        this.transactionalWriter = new TransactionalWriter(new File(output), encoding, checkpoint);
+        final File file = new File(output);
+        if (!file.exists() && !file.getParentFile().mkdirs()) {
+            throw new IllegalStateException("Cant create " + file);
+        }
+        this.transactionalWriter = new TransactionalWriter(file, encoding, checkpoint);
         this.writer = format.print(transactionalWriter);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/e37f9e1b/extensions/commons-csv/src/main/java/org/apache/batchee/csv/mapper/DefaultMapper.java
----------------------------------------------------------------------
diff --git a/extensions/commons-csv/src/main/java/org/apache/batchee/csv/mapper/DefaultMapper.java b/extensions/commons-csv/src/main/java/org/apache/batchee/csv/mapper/DefaultMapper.java
index 52f4552..93e59b7 100644
--- a/extensions/commons-csv/src/main/java/org/apache/batchee/csv/mapper/DefaultMapper.java
+++ b/extensions/commons-csv/src/main/java/org/apache/batchee/csv/mapper/DefaultMapper.java
@@ -52,12 +52,16 @@ public class DefaultMapper<T> implements CsvReaderMapper<T>, CsvWriterMapper<T>
 
                     // put each field a single time to avoid to set it twice even if position and name are filled for header output
                     if (pos >= 0) {
-                        fieldByPosition.put(pos, field);
+                        if (fieldByPosition.put(pos, field) != null) {
+                            throw new IllegalArgumentException("multiple field for index " + pos + " in " + type);
+                        }
                         if (!defaultName) {
                             headers.put(pos, name);
                         }
                     } else if (!defaultName) {
-                        fieldByName.put(name, field);
+                        if (fieldByName.put(name, field) != null) {
+                            throw new IllegalArgumentException("multiple field for name '" + name + "' in " + type);
+                        }
                     }
                     if (pos > higherIdx) {
                         higherIdx = pos;