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 al...@apache.org on 2015/08/28 14:55:45 UTC
svn commit: r1698326 -
/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/AbstractRepositoryUpgradeTest.java
Author: alexparvulescu
Date: Fri Aug 28 12:55:45 2015
New Revision: 1698326
URL: http://svn.apache.org/r1698326
Log:
OAK-3301 AbstractRepositoryUpgrade leaks Repository instances
- patch provided by Robert Munteanu
Modified:
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/AbstractRepositoryUpgradeTest.java
Modified: jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/AbstractRepositoryUpgradeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/AbstractRepositoryUpgradeTest.java?rev=1698326&r1=1698325&r2=1698326&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/AbstractRepositoryUpgradeTest.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/AbstractRepositoryUpgradeTest.java Fri Aug 28 12:55:45 2015
@@ -31,6 +31,7 @@ import javax.jcr.SimpleCredentials;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
+import org.apache.jackrabbit.api.JackrabbitRepository;
import org.apache.jackrabbit.api.JackrabbitSession;
import org.apache.jackrabbit.core.RepositoryImpl;
import org.apache.jackrabbit.core.config.RepositoryConfig;
@@ -39,6 +40,7 @@ import org.apache.jackrabbit.oak.jcr.Jcr
import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.apache.jackrabbit.oak.stats.Clock;
+import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
@@ -53,6 +55,8 @@ public abstract class AbstractRepository
private static File testDirectory;
+ private JackrabbitRepository targetRepository;
+
@BeforeClass
public static void init() throws InterruptedException {
// ensure that we create a new repository for the next test
@@ -91,6 +95,14 @@ public abstract class AbstractRepository
}
}
+ @After
+ public synchronized void shutdownTargetRepository() {
+ if (targetRepository != null) {
+ targetRepository.shutdown();
+ targetRepository = null;
+ }
+ }
+
protected synchronized NodeStore getTargetNodeStore() {
if (targetNodeStore == null) {
targetNodeStore = createTargetNodeStore();
@@ -126,8 +138,12 @@ public abstract class AbstractRepository
return null;
}
- public Repository getTargetRepository(){
- return new Jcr(new Oak(targetNodeStore)).createRepository();
+ public Repository getTargetRepository() {
+ if (targetRepository == null) {
+ targetRepository = (JackrabbitRepository) new Jcr(new Oak(
+ targetNodeStore)).createRepository();
+ }
+ return targetRepository;
}
public JackrabbitSession createAdminSession()throws RepositoryException{