Updated Branches: refs/heads/apache-blur-0.2 813ccd7d0 -> 461c1d042
Adding some rollback code. Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/461c1d04 Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/461c1d04 Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/461c1d04 Branch: refs/heads/apache-blur-0.2 Commit: 461c1d042d86ce39d2779fa11eb3d7606dd363ae Parents: 813ccd7 Author: Aaron McCurry <[email protected]> Authored: Mon Jan 6 15:41:03 2014 -0500 Committer: Aaron McCurry <[email protected]> Committed: Mon Jan 6 15:41:03 2014 -0500 ---------------------------------------------------------------------- .../apache/blur/manager/writer/BlurIndexSimpleWriter.java | 7 +++++-- .../org/apache/blur/manager/writer/MutatableAction.java | 9 ++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/461c1d04/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexSimpleWriter.java ---------------------------------------------------------------------- diff --git a/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexSimpleWriter.java b/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexSimpleWriter.java index d56df25..7fccd46 100644 --- a/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexSimpleWriter.java +++ b/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexSimpleWriter.java @@ -282,11 +282,14 @@ public class BlurIndexSimpleWriter extends BlurIndex { @Override public void process(MutatableAction mutatableAction) throws IOException { _writeLock.lock(); + waitUntilNotNull(_writer); + BlurIndexWriter writer = _writer.get(); try { - waitUntilNotNull(_writer); - BlurIndexWriter writer = _writer.get(); mutatableAction.performMutate(_indexReader.get(), writer); commit(); + } catch (Exception e) { + writer.rollback(); + throw new IOException("Unknown error during mutation", e); } finally { _writeLock.unlock(); } http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/461c1d04/blur-core/src/main/java/org/apache/blur/manager/writer/MutatableAction.java ---------------------------------------------------------------------- diff --git a/blur-core/src/main/java/org/apache/blur/manager/writer/MutatableAction.java b/blur-core/src/main/java/org/apache/blur/manager/writer/MutatableAction.java index ccb1fa6..3bc8c29 100644 --- a/blur-core/src/main/java/org/apache/blur/manager/writer/MutatableAction.java +++ b/blur-core/src/main/java/org/apache/blur/manager/writer/MutatableAction.java @@ -359,10 +359,13 @@ public class MutatableAction { } void performMutate(IndexReader reader, IndexWriter writer) throws IOException { - for (InternalAction internalAction : _actions) { - internalAction.performAction(reader, writer); + try { + for (InternalAction internalAction : _actions) { + internalAction.performAction(reader, writer); + } + } finally { + _actions.clear(); } - _actions.clear(); } public static Term createRowId(String id) {
