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 ju...@apache.org on 2012/05/07 12:20:38 UTC
svn commit: r1334949 - in
/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk:
core/Repository.java store/DefaultRevisionStore.java
Author: jukka
Date: Mon May 7 10:20:38 2012
New Revision: 1334949
URL: http://svn.apache.org/viewvc?rev=1334949&view=rev
Log:
OAK-82: Running MicroKernelIT test with the InMem persistence creates a lot of GC threads
Disable the MK garbage collector when constructing an in-memory test instance
Modified:
jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/core/Repository.java
jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/store/DefaultRevisionStore.java
Modified: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/core/Repository.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/core/Repository.java?rev=1334949&r1=1334948&r2=1334949&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/core/Repository.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/core/Repository.java Mon May 7 10:20:38 2012
@@ -69,9 +69,10 @@ public class Repository {
*/
protected Repository() {
this.homeDir = null;
-
- DefaultRevisionStore rs = new DefaultRevisionStore(new InMemPersistence());
-
+
+ DefaultRevisionStore rs =
+ new DefaultRevisionStore(new InMemPersistence(), null);
+
try {
rs.initialize();
} catch (Exception e) {
Modified: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/store/DefaultRevisionStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/store/DefaultRevisionStore.java?rev=1334949&r1=1334948&r2=1334949&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/store/DefaultRevisionStore.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/store/DefaultRevisionStore.java Mon May 7 10:20:38 2012
@@ -59,7 +59,9 @@ public class DefaultRevisionStore extend
private boolean initialized;
private Id head;
- private AtomicLong commitCounter;
+
+ private final AtomicLong commitCounter = new AtomicLong();
+
private final ReentrantReadWriteLock headLock = new ReentrantReadWriteLock();
private final Persistence pm;
protected final GCPersistence gcpm;
@@ -99,12 +101,21 @@ public class DefaultRevisionStore extend
* Active branches (Key: branch root id, Value: branch head).
*/
private final Map<Id,Id> branches = Collections.synchronizedMap(new TreeMap<Id, Id>());
-
+
public DefaultRevisionStore(Persistence pm) {
- this.pm = pm;
- this.gcpm = (pm instanceof GCPersistence) ? (GCPersistence) pm : null;
+ this(pm, (pm instanceof GCPersistence) ? (GCPersistence) pm : null);
+ }
- commitCounter = new AtomicLong();
+ /**
+ * Alternative constructor that allows disabling of garbage collection
+ * for an in-memory test repository.
+ *
+ * @param pm persistence manager
+ * @param gcpm the same persistence manager, or {@code null} for no GC
+ */
+ public DefaultRevisionStore(Persistence pm, GCPersistence gcpm) {
+ this.pm = pm;
+ this.gcpm = gcpm;
}
public void initialize() throws Exception {