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/12/03 15:13:34 UTC

incubator-batchee git commit: BATCHEE-82 better flushing in TransactionalWriter

Repository: incubator-batchee
Updated Branches:
  refs/heads/master ca7e91eea -> 7aef3e541


BATCHEE-82 better flushing in TransactionalWriter


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

Branch: refs/heads/master
Commit: 7aef3e541f8a10a84253eab27aa1f4a816949d60
Parents: ca7e91e
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Thu Dec 3 15:13:32 2015 +0100
Committer: Romain Manni-Bucau <rm...@gmail.com>
Committed: Thu Dec 3 15:13:32 2015 +0100

----------------------------------------------------------------------
 .../java/org/apache/batchee/csv/CommonsCsvWriter.java    |  1 +
 .../batchee/extras/transaction/TransactionalWriter.java  | 11 ++++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/7aef3e54/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 3ab27d1..d2fe810 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
@@ -189,6 +189,7 @@ public class CommonsCsvWriter implements ItemWriter {
                 throw new IllegalStateException("No way to write " + o + ". Does it implement Iterable<String> or did you set up a mapper?");
             }
         }
+        writer.flush();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/7aef3e54/extensions/extras/src/main/java/org/apache/batchee/extras/transaction/TransactionalWriter.java
----------------------------------------------------------------------
diff --git a/extensions/extras/src/main/java/org/apache/batchee/extras/transaction/TransactionalWriter.java b/extensions/extras/src/main/java/org/apache/batchee/extras/transaction/TransactionalWriter.java
index 76d1092..0b3b346 100644
--- a/extensions/extras/src/main/java/org/apache/batchee/extras/transaction/TransactionalWriter.java
+++ b/extensions/extras/src/main/java/org/apache/batchee/extras/transaction/TransactionalWriter.java
@@ -84,16 +84,21 @@ public class TransactionalWriter extends Writer {
     @Override
     public void flush() throws IOException {
         if (!Synchronizations.hasTransaction()) {
-            delegate.force(false);
-            position = delegate.position();
+            fileFlush();
         } else {
             position = delegate.position() + buffer().length();
         }
     }
 
+    private void fileFlush() throws IOException {
+        delegate.force(false);
+        position = delegate.position();
+    }
+
     @Override
     public void close() throws IOException {
-        if (!Synchronizations.hasTransaction() && delegate.isOpen()) {
+        if ((!Synchronizations.hasTransaction() || Synchronizations.get(bufferKey) == null) && delegate.isOpen()) {
+            fileFlush();
             delegate.close();
         } else {
             closed = true;