You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ie...@apache.org on 2013/02/25 07:13:50 UTC
svn commit: r1449607 -
/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/jcr/LockManager.java
Author: ieb
Date: Mon Feb 25 06:13:50 2013
New Revision: 1449607
URL: http://svn.apache.org/r1449607
Log:
SLING-2749 fixed potential synchronization issues with activate and deactivate in the LockManager.
Modified:
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/jcr/LockManager.java
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/jcr/LockManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/jcr/LockManager.java?rev=1449607&r1=1449606&r2=1449607&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/jcr/LockManager.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/jcr/LockManager.java Mon Feb 25 06:13:50 2013
@@ -134,18 +134,18 @@ public class LockManager implements Runn
this.idNodePath = repositoryPath + '/' + Environment.APPLICATION_ID;
// create the background session and register a listener
- this.backgroundSession = this.environment.createAdminSession();
- this.updateLastModified();
- this.backgroundSession.getWorkspace().getObservationManager().addEventListener(this,
- javax.jcr.observation.Event.PROPERTY_CHANGED
- |javax.jcr.observation.Event.NODE_ADDED,
- this.repositoryPath,
- true,
- null,
- null,
- true);
- logger.info("Apache Sling Versioning Manager started on instance {}", Environment.APPLICATION_ID);
- synchronized ( this.backgroundSession ) {
+ synchronized ( this.backgroundLock ) {
+ this.backgroundSession = this.environment.createAdminSession();
+ this.updateLastModified();
+ this.backgroundSession.getWorkspace().getObservationManager().addEventListener(this,
+ javax.jcr.observation.Event.PROPERTY_CHANGED
+ |javax.jcr.observation.Event.NODE_ADDED,
+ this.repositoryPath,
+ true,
+ null,
+ null,
+ true);
+ logger.info("Apache Sling Versioning Manager started on instance {}", Environment.APPLICATION_ID);
this.unlock(Environment.APPLICATION_ID);
}
this.scanExistingNodes();
@@ -159,8 +159,8 @@ public class LockManager implements Runn
@Deactivate
protected void deactivate() {
this.running = false;
- if ( this.backgroundSession != null ) {
- synchronized ( this.backgroundLock ) {
+ synchronized ( this.backgroundLock ) {
+ if ( this.backgroundSession != null ) {
this.logger.debug("Shutting down background session.");
try {
this.backgroundSession.getWorkspace().getObservationManager().removeEventListener(this);