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 md...@apache.org on 2013/06/05 10:56:44 UTC

svn commit: r1489747 - /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java

Author: mduerig
Date: Wed Jun  5 08:56:43 2013
New Revision: 1489747

URL: http://svn.apache.org/r1489747
Log:
OAK-775 Implement backward compatible observation
guard cast

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java?rev=1489747&r1=1489746&r2=1489747&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java Wed Jun  5 08:56:43 2013
@@ -28,6 +28,7 @@ import javax.jcr.PathNotFoundException;
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.jcr.UnsupportedRepositoryOperationException;
 import javax.jcr.ValueFactory;
 import javax.jcr.Workspace;
 import javax.jcr.lock.LockManager;
@@ -242,10 +243,15 @@ public abstract class SessionContext imp
 
 
     @Nonnull
-    public ObservationManager getObservationManager() {
+    public ObservationManager getObservationManager() throws UnsupportedRepositoryOperationException {
         if (observationManager == null) {
             ContentRepository contentRepository = repository.getContentRepository();
+            if (!(contentRepository instanceof ContentRepositoryImpl)) {
+                throw new UnsupportedRepositoryOperationException("Observation not supported");
+            }
+
             observationManager = new ObservationManagerImpl(
+                // FIXME avoid casting to implementation
                 ((ContentRepositoryImpl) contentRepository),
                 ReadOnlyNodeTypeManager.getInstance(delegate.getRoot(), namePathMapper),
                 namePathMapper, repository.getObservationExecutor());