svn commit: r1817977 - in /jackrabbit/oak/trunk/oak-store-document/src: main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java test/java/org/apache/jackrabbit/oak/plugins/document/CommitRoot

2017-12-12 Thread mreutegg
Author: mreutegg
Date: Wed Dec 13 07:19:04 2017
New Revision: 1817977

URL: http://svn.apache.org/viewvc?rev=1817977=rev
Log:
OAK-7053: Commit fails even though change made it to the DocumentStore

Modified:

jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java

jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitRootUpdateTest.java

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java?rev=1817977=1817976=1817977=diff
==
--- 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
 Wed Dec 13 07:19:04 2017
@@ -396,7 +396,7 @@ public class Commit {
 createOrUpdateNode(store, commitRoot);
 }
 }
-} catch (DocumentStoreException e) {
+} catch (Exception e) {
 // OAK-3084 do not roll back if already committed
 if (success) {
 LOG.error("Exception occurred after commit. Rollback will be 
suppressed.", e);
@@ -409,7 +409,7 @@ public class Commit {
 // and throw the original exception
 LOG.warn("Rollback failed", ex);
 }
-throw e;
+throw DocumentStoreException.convert(e);
 }
 } finally {
 if (success) {
@@ -448,7 +448,7 @@ public class Commit {
 NodeDocument.setRevision(commit, revision, commitValue);
 // make the update conditional on the modCount
 commit.equals(MOD_COUNT, doc.getModCount());
-NodeDocument before = store.findAndUpdate(NODES, commit);
+NodeDocument before = nodeStore.updateCommitRoot(commit, revision);
 if (before != null) {
 checkSplitCandidate(before);
 }

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitRootUpdateTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitRootUpdateTest.java?rev=1817977=1817976=1817977=diff
==
--- 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitRootUpdateTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitRootUpdateTest.java
 Wed Dec 13 07:19:04 2017
@@ -27,7 +27,6 @@ import org.apache.jackrabbit.oak.spi.com
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 
@@ -101,7 +100,6 @@ public class CommitRootUpdateTest {
 assertFalse(throwAfterUpdate.get());
 }
 
-@Ignore
 @Test
 public void exceptionOnSingleUpdate() throws Exception {
 final AtomicBoolean throwAfterUpdate = new AtomicBoolean(false);




svn commit: r1817922 - /jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitRootUpdateTest.java

2017-12-12 Thread mreutegg
Author: mreutegg
Date: Tue Dec 12 14:52:20 2017
New Revision: 1817922

URL: http://svn.apache.org/viewvc?rev=1817922=rev
Log:
OAK-7053: Commit fails even though change made it to the DocumentStore

Add ignored test

Modified:

jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitRootUpdateTest.java

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitRootUpdateTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitRootUpdateTest.java?rev=1817922=1817921=1817922=diff
==
--- 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitRootUpdateTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitRootUpdateTest.java
 Tue Dec 12 14:52:20 2017
@@ -27,6 +27,7 @@ import org.apache.jackrabbit.oak.spi.com
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 
@@ -100,6 +101,61 @@ public class CommitRootUpdateTest {
 assertFalse(throwAfterUpdate.get());
 }
 
+@Ignore
+@Test
+public void exceptionOnSingleUpdate() throws Exception {
+final AtomicBoolean throwAfterUpdate = new AtomicBoolean(false);
+MemoryDocumentStore store = new MemoryDocumentStore(true) {
+@Override
+public  T findAndUpdate(Collection 
collection,
+UpdateOp update) {
+T doc = super.findAndUpdate(collection, update);
+if (isCommitRootUpdate(update) &&
+throwAfterUpdate.compareAndSet(true, false)) {
+throw new DocumentStoreException("communication failure");
+}
+return doc;
+}
+
+private boolean isCommitRootUpdate(UpdateOp update) {
+boolean isCommitRootUpdate = false;
+for (Map.Entry op : 
update.getChanges().entrySet()) {
+String name = op.getKey().getName();
+if (NodeDocument.isRevisionsEntry(name)) {
+isCommitRootUpdate = true;
+break;
+}
+}
+return isCommitRootUpdate;
+}
+};
+
+DocumentNodeStore ns = builderProvider.newBuilder()
+.setDocumentStore(store).setAsyncDelay(0).getNodeStore();
+NodeBuilder b = ns.getRoot().builder();
+b.child("foo");
+merge(ns, b);
+
+throwAfterUpdate.set(true);
+boolean success = false;
+Commit c = ns.newCommit(ns.getHeadRevision(), null);
+try {
+c.updateProperty("/foo", "p", "v");
+c.apply();
+success = true;
+} finally {
+if (success) {
+ns.done(c, false, CommitInfo.EMPTY);
+} else {
+ns.canceled(c);
+}
+}
+
+NodeState root = ns.getRoot();
+assertTrue(root.getChildNode("foo").hasProperty("p"));
+assertFalse(throwAfterUpdate.get());
+}
+
 private NodeState merge(NodeStore store, NodeBuilder builder)
 throws Exception {
 return store.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);




svn commit: r1817919 - in /jackrabbit/oak/trunk: oak-benchmarks/ oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/ oak-parent/ oak-solr-core/ oak-solr-core/src/main/java/org/apache/jac

2017-12-12 Thread tommaso
Author: tommaso
Date: Tue Dec 12 14:22:12 2017
New Revision: 1817919

URL: http://svn.apache.org/viewvc?rev=1817919=rev
Log:
OAK-4318 - upgrade to Solr index to Solr 5.5.5

Modified:
jackrabbit/oak/trunk/oak-benchmarks/pom.xml

jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSolrSearchTest.java
jackrabbit/oak/trunk/oak-parent/pom.xml
jackrabbit/oak/trunk/oak-solr-core/pom.xml

jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfiguration.java

jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfigurationProvider.java

jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/nodestate/NodeStateSolrServerProvider.java

jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditor.java

jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditorProvider.java

jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/SolrServerProviderService.java

jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndex.java

jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/DefaultSolrServerProvider.java

jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/EmbeddedSolrServerProvider.java

jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/OakSolrServer.java

jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/RemoteSolrServerProvider.java

jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/SolrServerProvider.java

jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/SolrServerRegistry.java

jackrabbit/oak/trunk/oak-solr-core/src/main/resources/solr/oak/conf/solrconfig.xml

jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/jcr/SolrOakRepositoryStub.java

jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/SolrBaseTest.java

jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/TestUtils.java

jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/DefaultAnalyzersConfigurationTest.java

jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditorTest.java

jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndexTest.java

jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/server/EmbeddedSolrServerProviderTest.java

jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/server/RemoteSolrServerProviderIT.java

jackrabbit/oak/trunk/oak-solr-core/src/test/resources/solr/oak/conf/solrconfig.xml
jackrabbit/oak/trunk/oak-solr-osgi/pom.xml

Modified: jackrabbit/oak/trunk/oak-benchmarks/pom.xml
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-benchmarks/pom.xml?rev=1817919=1817918=1817919=diff
==
--- jackrabbit/oak/trunk/oak-benchmarks/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-benchmarks/pom.xml Tue Dec 12 14:22:12 2017
@@ -170,7 +170,7 @@
 
 org.apache.solr
 solr-core
-${lucene.version}
+${solr.version}
 
 
 org.apache.lucene

Modified: 
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSolrSearchTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSolrSearchTest.java?rev=1817919=1817918=1817919=diff
==
--- 
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSolrSearchTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSolrSearchTest.java
 Tue Dec 12 14:22:12 2017
@@ -43,7 +43,7 @@ import org.apache.jackrabbit.oak.plugins
 import 
org.apache.jackrabbit.oak.plugins.index.solr.server.EmbeddedSolrServerProvider;
 import org.apache.jackrabbit.oak.plugins.index.solr.server.SolrServerProvider;
 import 

svn commit: r1817912 - in /jackrabbit/oak/branches/1.6/oak-segment-tar/src: main/java/org/apache/jackrabbit/oak/backup/impl/ main/java/org/apache/jackrabbit/oak/segment/ test/java/org/apache/jackrabbi

2017-12-12 Thread mduerig
Author: mduerig
Date: Tue Dec 12 13:09:12 2017
New Revision: 1817912

URL: http://svn.apache.org/viewvc?rev=1817912=rev
Log:
OAK-7050: Offline compaction corrupts repository
Abort offline compaction without setting the file store head to the partially 
compacted head

Modified:

jackrabbit/oak/branches/1.6/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java

jackrabbit/oak/branches/1.6/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java

jackrabbit/oak/branches/1.6/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java

jackrabbit/oak/branches/1.6/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactorTest.java

Modified: 
jackrabbit/oak/branches/1.6/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java?rev=1817912=1817911=1817912=diff
==
--- 
jackrabbit/oak/branches/1.6/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java
 Tue Dec 12 13:09:12 2017
@@ -85,7 +85,10 @@ public class FileStoreRestoreImpl implem
 );
 compactor.setContentEqualityCheck(true);
 SegmentNodeState after = compactor.compact(current, head, current);
-store.getRevisions().setHead(current.getRecordId(), 
after.getRecordId());
+
+if (after != null) {
+store.getRevisions().setHead(current.getRecordId(), 
after.getRecordId());
+}
 } finally {
 restore.close();
 store.close();

Modified: 
jackrabbit/oak/branches/1.6/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java?rev=1817912=1817911=1817912=diff
==
--- 
jackrabbit/oak/branches/1.6/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java
 Tue Dec 12 13:09:12 2017
@@ -142,14 +142,6 @@ public class Compactor {
 this.binaryDedupMaxSize = gc.getBinaryDeduplicationMaxSize();
 }
 
-private SegmentNodeBuilder process(NodeState before, NodeState after,
-NodeState onto) throws IOException {
-SegmentNodeBuilder builder = new SegmentNodeBuilder(
-writer.writeNode(onto), writer);
-new CompactDiff(builder).diff(before, after);
-return builder;
-}
-
 /**
  * Compact the differences between a {@code before} and a {@code after} on
  * top of an {@code onto} state.
@@ -160,16 +152,23 @@ public class Compactor {
  *the after state
  * @param onto
  *the onto state
- * @return the compacted state
+ * @return the compacted state or {@code null} if compaction was cancelled
  */
 public SegmentNodeState compact(NodeState before, NodeState after,
 NodeState onto) throws IOException {
 progress.start();
-SegmentNodeState compacted = process(before, after, onto)
-.getNodeState();
-writer.flush();
-progress.stop();
-return compacted;
+try {
+SegmentNodeBuilder builder = new 
SegmentNodeBuilder(writer.writeNode(onto), writer);
+if (new CompactDiff(builder).diff(before, after)) {
+SegmentNodeState compacted = builder.getNodeState();
+writer.flush();
+return compacted;
+} else {
+return null;
+}
+} finally {
+progress.stop();
+}
 }
 
 private class CompactDiff extends ApplyDiff {

Modified: 
jackrabbit/oak/branches/1.6/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java?rev=1817912=1817911=1817912=diff
==
--- 
jackrabbit/oak/branches/1.6/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
 Tue Dec 12 13:09:12 2017
@@ -77,7 +77,6 @@ import 

svn commit: r1817911 - /jackrabbit/oak/trunk/oak-doc/src/site/markdown/command_line.md

2017-12-12 Thread mduerig
Author: mduerig
Date: Tue Dec 12 13:03:46 2017
New Revision: 1817911

URL: http://svn.apache.org/viewvc?rev=1817911=rev
Log:
OAK-7051: Remove dangling reference to compress-interval system property from 
oak-run documentation
Removed documentation for that property

Modified:
jackrabbit/oak/trunk/oak-doc/src/site/markdown/command_line.md

Modified: jackrabbit/oak/trunk/oak-doc/src/site/markdown/command_line.md
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-doc/src/site/markdown/command_line.md?rev=1817911=1817910=1817911=diff
==
--- jackrabbit/oak/trunk/oak-doc/src/site/markdown/command_line.md (original)
+++ jackrabbit/oak/trunk/oak-doc/src/site/markdown/command_line.md Tue Dec 12 
13:03:46 2017
@@ -65,7 +65,6 @@ possible to tweak various system propert
 
 * `cache` - cache size for the SegmentNodeStore (default: `256`),
 * `compaction-progress-log` - how many entries should be compacted between log 
messages (default: `15`),
-* `compress-interval` - number of map entries to keep until compressing this 
map (default: `10`),
 * `update.limit` - threshold for the flush of a temporary transaction to disk 
(default: `1`),
 * `tar.memoryMapped` - allow to use memory mapped files to reduce memory usage 
(default: `false`),
 




svn commit: r1817910 - /jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java

2017-12-12 Thread mduerig
Author: mduerig
Date: Tue Dec 12 12:50:03 2017
New Revision: 1817910

URL: http://svn.apache.org/viewvc?rev=1817910=rev
Log:
OAK-7050: Offline compaction corrupts repository
Regression test

Modified:

jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java?rev=1817910=1817909=1817910=diff
==
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
 Tue Dec 12 12:50:03 2017
@@ -314,6 +314,44 @@ public class CompactionAndCleanupIT {
 }
 }
 
+@Test
+public void cancelOfflineCompaction() throws Exception {
+final AtomicBoolean cancelCompaction = new AtomicBoolean(true);
+try (FileStore fileStore = fileStoreBuilder(getFileStoreFolder())
+.withGCOptions(defaultGCOptions().setOffline())
+.build()) {
+SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
+// Create ~2MB of data
+NodeBuilder extra = nodeStore.getRoot().builder();
+NodeBuilder content = extra.child("content");
+for (int i = 0; i < 1; i++) {
+NodeBuilder c = content.child("c" + i);
+for (int j = 0; j < 1000; j++) {
+c.setProperty("p" + i, "v" + i);
+}
+}
+nodeStore.merge(extra, EmptyHook.INSTANCE, CommitInfo.EMPTY);
+fileStore.flush();
+NodeState uncompactedRoot = nodeStore.getRoot();
+
+// Keep cancelling compaction
+new Thread(() -> {
+while (cancelCompaction.get()) {
+fileStore.cancelGC();
+}
+}).start();
+
+fileStore.compactFull();
+
+// Cancelling compaction must not corrupt the repository. See 
OAK-7050.
+NodeState compactedRoot = nodeStore.getRoot();
+assertTrue(compactedRoot.exists());
+assertEquals(uncompactedRoot, compactedRoot);
+} finally {
+cancelCompaction.set(false);
+}
+}
+
 /**
  * Create a lot of data nodes (no binaries) and a few checkpoints, verify
  * that compacting checkpoints will not cause the size to explode




svn commit: r1817903 - /jackrabbit/oak/branches/1.6/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java

2017-12-12 Thread mduerig
Author: mduerig
Date: Tue Dec 12 11:03:13 2017
New Revision: 1817903

URL: http://svn.apache.org/viewvc?rev=1817903=rev
Log:
OAK-7050: Offline compaction corrupts repository

Modified:

jackrabbit/oak/branches/1.6/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java

Modified: 
jackrabbit/oak/branches/1.6/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java?rev=1817903=1817902=1817903=diff
==
--- 
jackrabbit/oak/branches/1.6/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
 (original)
+++ 
jackrabbit/oak/branches/1.6/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
 Tue Dec 12 11:03:13 2017
@@ -77,6 +77,7 @@ import org.apache.jackrabbit.oak.stats.C
 import org.apache.jackrabbit.oak.stats.DefaultStatisticsProvider;
 import org.apache.jackrabbit.oak.stats.StatisticsProvider;
 import org.junit.BeforeClass;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -279,6 +280,48 @@ public class CompactionAndCleanupIT {
 }
 }
 
+@Test
+@Ignore("OAK-7050")  // FIXME OAK-7050
+public void cancelOfflineCompaction() throws Exception {
+final AtomicBoolean cancelCompaction = new AtomicBoolean(true);
+try (FileStore fileStore = fileStoreBuilder(getFileStoreFolder())
+.withGCOptions(defaultGCOptions().setOffline())
+.build()) {
+SegmentNodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
+// Create ~2MB of data
+NodeBuilder extra = nodeStore.getRoot().builder();
+NodeBuilder content = extra.child("content");
+for (int i = 0; i < 1; i++) {
+NodeBuilder c = content.child("c" + i);
+for (int j = 0; j < 1000; j++) {
+c.setProperty("p" + i, "v" + i);
+}
+}
+nodeStore.merge(extra, EmptyHook.INSTANCE, CommitInfo.EMPTY);
+fileStore.flush();
+NodeState uncompactedRoot = nodeStore.getRoot();
+
+// Keep cancelling compaction
+new Thread(new Runnable() {
+@Override
+public void run() {
+while (cancelCompaction.get()) {
+fileStore.cancelGC();
+}
+}
+}).start();
+
+fileStore.compact();
+
+// Cancelling compaction must not corrupt the repository. See 
OAK-7050.
+NodeState compactedRoot = nodeStore.getRoot();
+assertTrue(compactedRoot.exists());
+assertEquals(uncompactedRoot, compactedRoot);
+} finally {
+cancelCompaction.set(false);
+}
+}
+
 /**
  * Create a lot of data nodes (no binaries) and a few checkpoints, verify
  * that compacting checkpoints will not cause the size to explode




svn commit: r1817902 - /jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderBuilder.java

2017-12-12 Thread angela
Author: angela
Date: Tue Dec 12 10:31:23 2017
New Revision: 1817902

URL: http://svn.apache.org/viewvc?rev=1817902=rev
Log:
OAK-7049 : SecurityProviderBuilder : pass Root/TreeProvider to 
SecurityConfigurations

Modified:

jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderBuilder.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderBuilder.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderBuilder.java?rev=1817902=1817901=1817902=diff
==
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderBuilder.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderBuilder.java
 Tue Dec 12 10:31:23 2017
@@ -58,13 +58,16 @@ public class SecurityProviderBuilder {
 if (!(cc instanceof CompositeConfiguration)) {
 throw new IllegalStateException();
 } else {
-if (sc instanceof ConfigurationBase) {
-((ConfigurationBase) sc).setSecurityProvider(sp);
-}
-
 CompositeConfiguration composite = (CompositeConfiguration) cc;
 SecurityConfiguration defConfig = composite.getDefaultConfig();
 
+if (sc instanceof ConfigurationBase) {
+ConfigurationBase cb = (ConfigurationBase) sc;
+cb.setSecurityProvider(sp);
+cb.setRootProvider(((ConfigurationBase) 
defConfig).getRootProvider());
+cb.setTreeProvider(((ConfigurationBase) 
defConfig).getTreeProvider());
+}
+
 composite.addConfiguration(sc);
 composite.addConfiguration(defConfig);
 }




svn commit: r1817897 - in /jackrabbit/oak/trunk/oak-auth-external: pom.xml src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityRepositoryInitial

2017-12-12 Thread stillalex
Author: stillalex
Date: Tue Dec 12 09:33:22 2017
New Revision: 1817897

URL: http://svn.apache.org/viewvc?rev=1817897=rev
Log:
OAK-7013 Replace usage in oak-auth-external


Modified:
jackrabbit/oak/trunk/oak-auth-external/pom.xml

jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityRepositoryInitializer.java

Modified: jackrabbit/oak/trunk/oak-auth-external/pom.xml
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/pom.xml?rev=1817897=1817896=1817897=diff
==
--- jackrabbit/oak/trunk/oak-auth-external/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-auth-external/pom.xml Tue Dec 12 09:33:22 2017
@@ -171,12 +171,6 @@
 test
 
 
-com.h2database
-h2
-${h2.version}
-test
-
-
 org.slf4j
 jul-to-slf4j
 test

Modified: 
jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityRepositoryInitializer.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityRepositoryInitializer.java?rev=1817897=1817896=1817897=diff
==
--- 
jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityRepositoryInitializer.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityRepositoryInitializer.java
 Tue Dec 12 09:33:22 2017
@@ -17,32 +17,13 @@
 package 
org.apache.jackrabbit.oak.spi.security.authentication.external.impl.principal;
 
 import javax.annotation.Nonnull;
-import javax.jcr.RepositoryException;
 
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.jackrabbit.oak.api.CommitFailedException;
-import org.apache.jackrabbit.oak.api.Root;
-import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.commons.PathUtils;
-import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
 import org.apache.jackrabbit.oak.plugins.index.IndexUtils;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
-import org.apache.jackrabbit.oak.plugins.name.NamespaceEditorProvider;
-import org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider;
-import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory;
-import org.apache.jackrabbit.oak.spi.commit.CompositeEditorProvider;
-import org.apache.jackrabbit.oak.spi.commit.EditorHook;
 import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIdentityConstants;
-import org.apache.jackrabbit.oak.spi.state.ApplyDiff;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
-import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import org.apache.jackrabbit.oak.plugins.tree.TreeUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-import static com.google.common.base.Preconditions.checkState;
+import com.google.common.collect.ImmutableList;
 
 /**
  * Implementation of the {@code RepositoryInitializer} interface responsible 
for
@@ -60,8 +41,6 @@ import static com.google.common.base.Pre
  */
 class ExternalIdentityRepositoryInitializer implements RepositoryInitializer {
 
-private static final Logger log = 
LoggerFactory.getLogger(ExternalIdentityRepositoryInitializer.class);
-
 private final boolean enforceUniqueIds;
 
 ExternalIdentityRepositoryInitializer(boolean enforceUniqueIds) {
@@ -70,42 +49,20 @@ class ExternalIdentityRepositoryInitiali
 
 @Override
 public void initialize(@Nonnull NodeBuilder builder) {
-NodeState base = builder.getNodeState();
-NodeStore store = new MemoryNodeStore(base);
-
-String errorMsg = "Failed to initialize external identity content.";
-try {
 
-Root root = RootFactory.createSystemRoot(store,
-new EditorHook(new CompositeEditorProvider(new 
NamespaceEditorProvider(), new TypeEditorProvider())),
-null, null, null);
-
-// create index definition for "rep:externalId" and 
"rep:externalPrincipalNames"
-Tree rootTree = root.getTree(PathUtils.ROOT_PATH);
-checkState(rootTree.exists());
-Tree index = TreeUtil.getOrAddChild(rootTree, 
IndexConstants.INDEX_DEFINITIONS_NAME, JcrConstants.NT_UNSTRUCTURED);
-
-if (enforceUniqueIds && !index.hasChild("externalId")) {
-Tree 

svn commit: r1817893 - in /jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak: AbstractSecurityTest.java security/privilege/PrivilegeContextTest.java security/user/UserContextTest.j

2017-12-12 Thread stillalex
Author: stillalex
Date: Tue Dec 12 09:05:05 2017
New Revision: 1817893

URL: http://svn.apache.org/viewvc?rev=1817893=rev
Log:
OAK-7022 Prepare for usage of Root/TreeProvider in security tests
 - switched to the interfaces


Modified:

jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java

jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContextTest.java

jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java?rev=1817893=1817892=1817893=diff
==
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java
 Tue Dec 12 09:05:05 2017
@@ -51,6 +51,8 @@ import org.apache.jackrabbit.oak.plugins
 import 
org.apache.jackrabbit.oak.plugins.index.reference.ReferenceIndexProvider;
 import org.apache.jackrabbit.oak.plugins.name.NamespaceEditorProvider;
 import org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider;
+import org.apache.jackrabbit.oak.plugins.tree.RootProvider;
+import org.apache.jackrabbit.oak.plugins.tree.TreeProvider;
 import org.apache.jackrabbit.oak.plugins.tree.impl.RootProviderService;
 import org.apache.jackrabbit.oak.plugins.tree.impl.TreeProviderService;
 import org.apache.jackrabbit.oak.plugins.value.jcr.ValueFactoryImpl;
@@ -83,8 +85,8 @@ public abstract class AbstractSecurityTe
 protected Root root;
 
 protected QueryEngineSettings querySettings;
-private final RootProviderService rootProvider = new 
RootProviderService(); 
-private final TreeProviderService treeProvider = new TreeProviderService();
+private final RootProvider rootProvider = new RootProviderService(); 
+private final TreeProvider treeProvider = new TreeProviderService();
 
 @Before
 public void before() throws Exception {
@@ -252,11 +254,11 @@ public abstract class AbstractSecurityTe
 return getSecurityProvider().getConfiguration(configClass);
 }
 
-public RootProviderService getRootProvider() {
+public RootProvider getRootProvider() {
 return rootProvider;
 }
 
-public TreeProviderService getTreeProvider() {
+public TreeProvider getTreeProvider() {
 return treeProvider;
 }
 }

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContextTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContextTest.java?rev=1817893=1817892=1817893=diff
==
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContextTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContextTest.java
 Tue Dec 12 09:05:05 2017
@@ -29,6 +29,7 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
 import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants;
 import org.apache.jackrabbit.oak.plugins.tree.TreeLocation;
+import org.apache.jackrabbit.oak.plugins.tree.TreeProvider;
 import org.apache.jackrabbit.oak.plugins.tree.impl.TreeProviderService;
 import org.apache.jackrabbit.oak.spi.security.Context;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
@@ -110,7 +111,7 @@ public class PrivilegeContextTest {
 
 @Test
 public void testEmptyNotDefinesTree() {
-TreeProviderService treeProvider = new TreeProviderService();
+TreeProvider treeProvider = new TreeProviderService();
 
assertFalse(ctx.definesTree(treeProvider.createReadOnlyTree(EmptyNodeState.EMPTY_NODE)));
 }
 

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java?rev=1817893=1817892=1817893=diff
==
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java
 Tue Dec 12 09:05:05 2017
@@ -36,6 +36,7 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants;