Author: mduerig
Date: Thu Mar 13 21:29:00 2014
New Revision: 1577326
URL: http://svn.apache.org/r1577326
Log:
OAK-1491: ObservationTest failure on Windows
Use synchronized instead of volatile to avoid commits being processed while an
observer is being added. Thanks Jukka for pointing this out.
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/ChangeDispatcher.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/ChangeDispatcher.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/ChangeDispatcher.java?rev=1577326&r1=1577325&r2=1577326&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/ChangeDispatcher.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/ChangeDispatcher.java
Thu Mar 13 21:29:00 2014
@@ -40,7 +40,7 @@ public class ChangeDispatcher implements
private final CompositeObserver observers = new CompositeObserver();
@Nonnull
- private volatile NodeState root;
+ private NodeState root;
/**
* Create a new instance for dispatching content changes
@@ -62,7 +62,7 @@ public class ChangeDispatcher implements
*/
@Override
@Nonnull
- public Closeable addObserver(final Observer observer) {
+ public synchronized Closeable addObserver(final Observer observer) {
observer.contentChanged(root, null);
observers.addObserver(observer);
return new Closeable() {