jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From resc...@apache.org
Subject svn commit: r1200872 - /jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java
Date Fri, 11 Nov 2011 13:25:05 GMT
Author: reschke
Date: Fri Nov 11 13:25:05 2011
New Revision: 1200872

URL: http://svn.apache.org/viewvc?rev=1200872&view=rev
Log:
JCR-2542: spi2dav: EventFilters not respected

Throw when unsupported EventFilters get used (this will make it easier to understand the test
failures in the future).

Modified:
    jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java

Modified: jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java?rev=1200872&r1=1200871&r2=1200872&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java
(original)
+++ jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java
Fri Nov 11 13:25:05 2011
@@ -2001,6 +2001,7 @@ public class RepositoryServiceImpl imple
     public Subscription createSubscription(SessionInfo sessionInfo,
                                            EventFilter[] filters)
             throws UnsupportedRepositoryOperationException, RepositoryException {
+        checkEventFilterSupport(filters);
         checkSessionInfo(sessionInfo);
         String rootUri = uriResolver.getRootItemUri(sessionInfo.getWorkspaceName());
         String subscriptionId = subscribe(rootUri, S_INFO, null, sessionInfo, null);
@@ -2017,6 +2018,21 @@ public class RepositoryServiceImpl imple
         // do nothing ...
         // this is actually not correct because we listen for everything and
         // rely on the client of the repository service to filter the events
+        checkEventFilterSupport(filters);
+    }
+
+    private void checkEventFilterSupport(EventFilter[] filters) throws UnsupportedRepositoryOperationException
{
+        for (EventFilter ef : filters) {
+            if (ef instanceof EventFilterImpl) {
+                EventFilterImpl efi = (EventFilterImpl)ef;
+                if (efi.getNodeTypeNames() != null && ! efi.getNodeTypeNames().isEmpty())
{
+                    throw new UnsupportedRepositoryOperationException("This SPI implementation
does not support filtering by node types (see issue JCR-2542)");
+                }
+                if (efi.getNoLocal()) {
+                    throw new UnsupportedRepositoryOperationException("This SPI implementation
does not support filtering using the 'noLocal' flag (see issue JCR-2542)");
+                }
+            }
+        }
     }
 
     public void dispose(Subscription subscription) throws RepositoryException {



Mime
View raw message