You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2016/08/22 09:41:29 UTC
svn commit: r1757127 -
/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
Author: chetanm
Date: Mon Aug 22 09:41:29 2016
New Revision: 1757127
URL: http://svn.apache.org/viewvc?rev=1757127&view=rev
Log:
OAK-4687 - Issue with backgroundOperationLock handling in exception case
Adding ignored test
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java?rev=1757127&r1=1757126&r2=1757127&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java Mon Aug 22 09:41:29 2016
@@ -29,6 +29,7 @@ import static org.junit.Assert.assertFal
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -64,6 +65,7 @@ import java.util.concurrent.locks.Reentr
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import com.google.common.base.Throwables;
import com.google.common.collect.Iterables;
@@ -91,6 +93,7 @@ import org.apache.jackrabbit.oak.spi.com
import org.apache.jackrabbit.oak.spi.commit.EditorHook;
import org.apache.jackrabbit.oak.spi.commit.EditorProvider;
import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
+import org.apache.jackrabbit.oak.spi.commit.Observer;
import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
import org.apache.jackrabbit.oak.spi.state.DefaultNodeStateDiff;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
@@ -98,6 +101,7 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.apache.jackrabbit.oak.stats.Clock;
import org.junit.After;
+import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.slf4j.Logger;
@@ -2703,6 +2707,37 @@ public class DocumentNodeStoreTest {
assertTrue(parent.hasChildNode("baz"));
}
+ @Ignore("OAK-4687")
+ @Test
+ public void exceptionHandlingInCommit() throws Exception{
+ DocumentNodeStore ns = builderProvider.newBuilder().getNodeStore();
+ final TestException testException = new TestException();
+ final AtomicBoolean failCommit = new AtomicBoolean();
+ ns.addObserver(new Observer() {
+ @Override
+ public void contentChanged(@Nonnull NodeState root, @Nullable CommitInfo info) {
+ if (failCommit.get()){
+ throw testException;
+ }
+ }
+ });
+
+
+ NodeBuilder b1 = ns.getRoot().builder();
+ b1.child("parent");
+ failCommit.set(true);
+ try {
+ merge(ns, b1);
+ fail();
+ } catch(Exception e){
+ assertSame(testException, Throwables.getRootCause(e));
+ }
+ }
+
+ private static class TestException extends RuntimeException {
+
+ }
+
private static DocumentNodeState asDocumentNodeState(NodeState state) {
if (!(state instanceof DocumentNodeState)) {
throw new IllegalArgumentException("Not a DocumentNodeState");