Author: frm
Date: Wed Sep 9 16:42:32 2015
New Revision: 1702051
URL: http://svn.apache.org/r1702051
Log:
OAK-3375 - RepositoryManager should perform a shutdown of OsgiRepository on
deactivation
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java?rev=1702051&r1=1702050&r2=1702051&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java
Wed Sep 9 16:42:32 2015
@@ -113,6 +113,8 @@ public class RepositoryManager {
description = "Whether the query result size should return an
estimation (or -1 if disabled) for large queries")
private static final String FAST_QUERY_RESULT_SIZE =
"oak.query.fastResultSize";
+ private OsgiRepository repository;
+
@Activate
public void activate(BundleContext bundleContext, Map<String, ?> config)
throws Exception {
observationQueueLength = PropertiesUtil.toInteger(prop(
@@ -154,6 +156,12 @@ public class RepositoryManager {
public void deactivate() {
if (registration != null) {
registration.unregister();
+ registration = null;
+ }
+
+ if (repository != null) {
+ repository.shutdown();
+ repository = null;
}
initializers.stop();
@@ -181,10 +189,15 @@ public class RepositoryManager {
oak.with(commitRateLimiter);
}
- return bundleContext.registerService(
- Repository.class.getName(),
- new OsgiRepository(oak.createContentRepository(), whiteboard,
securityProvider,
- observationQueueLength, commitRateLimiter,
fastQueryResultSize),
- new Properties());
+ repository = new OsgiRepository(
+ oak.createContentRepository(),
+ whiteboard,
+ securityProvider,
+ observationQueueLength,
+ commitRateLimiter,
+ fastQueryResultSize
+ );
+
+ return bundleContext.registerService(Repository.class.getName(),
repository, new Properties());
}
}