Removed custom exception
diff --git a/src/main/java/org/apache/sling/resource/filter/ResourceFilter.java b/src/main/java/org/apache/sling/resource/filter/ResourceFilter.java
index f3f2802..dcc6aba 100644
--- a/src/main/java/org/apache/sling/resource/filter/ResourceFilter.java
+++ b/src/main/java/org/apache/sling/resource/filter/ResourceFilter.java
@@ -32,7 +32,7 @@
      * @return

      * @throws ResourceFilterException

      */

-    public Predicate<Resource> parse(String filter) throws ResourceFilterException;

+    public Predicate<Resource> parse(String filter);

 

     /**

      * Creates a Predicate<Resource> based on the script

@@ -42,7 +42,7 @@
      * @return

      * @throws ResourceFilterException

      */

-    public Predicate<Resource> parse(String filter, String charEncoding) throws ResourceFilterException;

+    public Predicate<Resource> parse(String filter, String charEncoding);

 

     /**

      * Add a series of key - value pairs that can then be evaluated as part of the

diff --git a/src/main/java/org/apache/sling/resource/filter/ResourceFilterException.java b/src/main/java/org/apache/sling/resource/filter/ResourceFilterException.java
deleted file mode 100644
index 99db709..0000000
--- a/src/main/java/org/apache/sling/resource/filter/ResourceFilterException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements.  See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership.  The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License.  You may obtain a copy of the License at

- *

- *   http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied.  See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-package org.apache.sling.resource.filter;

-

-/**

- * Used to wrap internally generated Parser exceptions when a malformed script

- * is provided

- * 

- *

- */

-public class ResourceFilterException extends Exception {

-

-    public ResourceFilterException(Throwable cause) {

-        super(cause);

-    }

-

-    private static final long serialVersionUID = 5893818236312416308L;

-

-}

diff --git a/src/main/java/org/apache/sling/resource/filter/ResourceFilterStream.java b/src/main/java/org/apache/sling/resource/filter/ResourceFilterStream.java
index e2dd9d8..6e7e9c6 100644
--- a/src/main/java/org/apache/sling/resource/filter/ResourceFilterStream.java
+++ b/src/main/java/org/apache/sling/resource/filter/ResourceFilterStream.java
@@ -49,7 +49,7 @@
      * @return ResourceStreamFilter

      * @throws ResourceFilterException

      */

-    public ResourceFilterStream setBranchSelector(String branchSelector) throws ResourceFilterException {

+    public ResourceFilterStream setBranchSelector(String branchSelector) {

         this.branchSelector = resourceFilter.parse(branchSelector);

         return this;

     }

@@ -63,7 +63,7 @@
      * @return ResourceStreamFilter

      * @throws ResourceFilterException

      */

-    public ResourceFilterStream setChildSelector(String childSelector) throws ResourceFilterException {

+    public ResourceFilterStream setChildSelector(String childSelector) {

         this.childSelector = resourceFilter.parse(childSelector);

         return this;

     }

diff --git a/src/main/java/org/apache/sling/resource/filter/impl/ResourceFilterImpl.java b/src/main/java/org/apache/sling/resource/filter/impl/ResourceFilterImpl.java
index 3f5a160..7aa51bf 100644
--- a/src/main/java/org/apache/sling/resource/filter/impl/ResourceFilterImpl.java
+++ b/src/main/java/org/apache/sling/resource/filter/impl/ResourceFilterImpl.java
@@ -19,7 +19,6 @@
 

 import org.apache.sling.api.resource.Resource;

 import org.apache.sling.resource.filter.ResourceFilter;

-import org.apache.sling.resource.filter.ResourceFilterException;

 import org.apache.sling.resource.filter.impl.node.Node;

 import org.apache.sling.resource.filter.impl.script.FilterParser;

 import org.apache.sling.resource.filter.impl.script.ParseException;

@@ -58,26 +57,26 @@
     

     

     @Override

-    public Predicate<Resource> parse(String filter) throws ResourceFilterException {

+    public Predicate<Resource> parse(String filter) {

         Node rootNode;

         try {

             rootNode = new FilterParser(new ByteArrayInputStream(filter.getBytes())).parse();

             return rootNode.accept(getContext().getLogicVisitor());

         } catch (ParseException e) {

-            throw new ResourceFilterException(e);

+            throw new IllegalArgumentException(e);

         }

     }

 

 

 

     @Override

-    public Predicate<Resource> parse(String filter, String charEncoding) throws ResourceFilterException {

+    public Predicate<Resource> parse(String filter, String charEncoding) {

         Node rootNode;

         try {

             rootNode = new FilterParser(new ByteArrayInputStream(filter.getBytes()),charEncoding).parse();

             return rootNode.accept(getContext().getLogicVisitor());

         } catch (ParseException e) {

-            throw new ResourceFilterException(e);

+            throw new IllegalArgumentException(e);

         }

     }

 

diff --git a/src/test/java/org/apache/sling/resource/filter/ResourceFilterDateTest.java b/src/test/java/org/apache/sling/resource/filter/ResourceFilterDateTest.java
index cfd1a87..bdc4a63 100644
--- a/src/test/java/org/apache/sling/resource/filter/ResourceFilterDateTest.java
+++ b/src/test/java/org/apache/sling/resource/filter/ResourceFilterDateTest.java
@@ -44,7 +44,7 @@
     }

 

     @Test

-    public void testPropLessThanDateFunction() throws ResourceFilterException {

+    public void testPropLessThanDateFunction() {

         String query = "[jcr:content/created] < date('2013-08-08T16:32:59.000+02:00')";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(3, found.size());

@@ -98,7 +98,7 @@
         assertEquals(4, found.size());

     }

 

-    private List<Resource> handle(String path, String filter) throws ResourceFilterException {

+    private List<Resource> handle(String path, String filter) {

         return new ResourceStream(resource).stream(r -> true).filter(resourceFilter.parse(filter))

                 .collect(Collectors.toList());

     }

diff --git a/src/test/java/org/apache/sling/resource/filter/ResourceFilterLogicTest.java b/src/test/java/org/apache/sling/resource/filter/ResourceFilterLogicTest.java
index f1b9dd8..aad9a37 100644
--- a/src/test/java/org/apache/sling/resource/filter/ResourceFilterLogicTest.java
+++ b/src/test/java/org/apache/sling/resource/filter/ResourceFilterLogicTest.java
@@ -44,7 +44,7 @@
     }

 

     @Test

-    public void testDateAndProperty() throws ResourceFilterException {

+    public void testDateAndProperty() {

         String query = "[jcr:content/created] > '2013-08-08T16:32:59' and [jcr:content/jcr:title] == 'Mongolian'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(1, found.size());

@@ -62,7 +62,7 @@
         assertEquals(4, found.size());

     }

 

-    private List<Resource> handle(String path, String filter) throws  ResourceFilterException {

+    private List<Resource> handle(String path, String filter)  {

         return new ResourceStream(resource).stream(r -> true).filter(resourceFilter.parse(filter))

                 .collect(Collectors.toList());

     }

diff --git a/src/test/java/org/apache/sling/resource/filter/ResourceFilterTest.java b/src/test/java/org/apache/sling/resource/filter/ResourceFilterTest.java
index 04a527b..781bdbd 100644
--- a/src/test/java/org/apache/sling/resource/filter/ResourceFilterTest.java
+++ b/src/test/java/org/apache/sling/resource/filter/ResourceFilterTest.java
@@ -32,82 +32,81 @@
 

     private static String START_PATH = "/content/sample/en";

 

-

     private Resource resource;

     

     ResourceFilter resourceFilter = new ResourceFilterImpl();

 

     @Before

-    public void setUp() throws ResourceFilterException {

+    public void setUp() {

         context.load().json("/data.json", "/content/sample/en");

         resource = context.resourceResolver().getResource(START_PATH);

     }

 

     @Test

-    public void testPropertyEquals() throws ResourceFilterException {

+    public void testPropertyEquals() {

         String query = "[jcr:content/jcr:title] == 'English'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(4, found.size());

     }

 

     @Test

-    public void testPropertyIs() throws ResourceFilterException {

+    public void testPropertyIs() {

         String query = "[jcr:content/jcr:title] is 'English'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(4, found.size());

     }

 

     @Test

-    public void testDateBeforeValue() throws ResourceFilterException {

+    public void testDateBeforeValue() {

         String query = "[jcr:content/created] < date('2013-08-08T16:32:59.000+02:00')";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(3, found.size());

     }

 

     @Test

-    public void testDateBeforeValue2() throws ResourceFilterException {

+    public void testDateBeforeValue2() {

         String query = "[jcr:content/created] less than date('2013-08-08T16:32:59.000+02:00')";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(3, found.size());

     }

 

     @Test

-    public void testDateBeforeValue3() throws ResourceFilterException {

+    public void testDateBeforeValue3() {

         String query = "[jcr:content/created] < date('2013-08-08','yyyy-MM-dd')";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(3, found.size());

     }

 

     @Test

-    public void testDateAndProperty() throws ResourceFilterException {

+    public void testDateAndProperty() {

         String query = "[jcr:content/created] < date('2013-08-08T16:32:59.000+02:00') and [jcr:content/jcr:title] == 'English'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(3, found.size());

     }

 

     @Test

-    public void testDateAndPropertyTwice() throws ResourceFilterException {

+    public void testDateAndPropertyTwice() {

         String query = "([jcr:content/created] < date('2013-08-08T16:32:59.000+02:00') and [jcr:content/jcr:title] == 'English') or [jcr:content/jcr:title] == 'Mongolian'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(4, found.size());

     }

 

     @Test

-    public void testDateOrProperty() throws ResourceFilterException {

+    public void testDateOrProperty() {

         String query = "[jcr:content/created] < date('2013-08-08T16:32:59.000+02:00') or [jcr:content/jcr:title] == 'Mongolian'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(4, found.size());

     }

 

     @Test

-    public void testDateAsString() throws ResourceFilterException {

+    public void testDateAsString() {

         String query = "[jcr:content/created] < '2013-08-08T16:32'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(3, found.size());

     }

 

     @Test

-    public void testNullPropertyAndLimit() throws ResourceFilterException {

+    public void testNullPropertyAndLimit() {

         String query = "[jcr:content/foo] == null ";

         List<Resource> found = new ResourceStream(resource).stream(r -> true).filter(resourceFilter.parse(query)).limit(3)

                 .collect(Collectors.toList());

@@ -115,145 +114,145 @@
     }

 

     @Test

-    public void testNullProperty() throws ResourceFilterException {

+    public void testNullProperty() {

         String query = "[jcr:content/foo] == null ";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(20, found.size());

     }

 

     @Test

-    public void testNumberLiteral() throws ResourceFilterException {

+    public void testNumberLiteral() {

         String query = "[count] < 2 ";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(1, found.size());

     }

 

     @Test

-    public void testNumberLiteral2() throws ResourceFilterException {

+    public void testNumberLiteral2() {

         String query = "[count] < 2 or [count] > 1";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(1, found.size());

     }

 

     @Test

-    public void testNumberLiteral3() throws ResourceFilterException {

+    public void testNumberLiteral3() {

         String query = "[views] < 7 ";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(1, found.size());

     }

 

     @Test

-    public void testNotNullProperty() throws ResourceFilterException {

+    public void testNotNullProperty() {

         String query = "[layout] != null ";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(5, found.size());

     }

 

     @Test

-    public void testNotProperty() throws ResourceFilterException {

+    public void testNotProperty() {

         String query = "[layout] != 'foo' ";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(4, found.size());

     }

 

     @Test

-    public void testNameFunctionIs() throws ResourceFilterException {

+    public void testNameFunctionIs() {

         String query = "name() == 'testpage1'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(1, found.size());

     }

 

     @Test

-    public void testNameFunctionAgainstRegex() throws ResourceFilterException {

+    public void testNameFunctionAgainstRegex() {

         String query = "name() like 'testpage.*'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(4, found.size());

     }

 

     @Test

-    public void testNameFunctionAgainstRegex2() throws ResourceFilterException {

+    public void testNameFunctionAgainstRegex2() {

         String query = "name() like 'testpage[1-2]'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(2, found.size());

     }

 

     @Test

-    public void testChildExistence() throws ResourceFilterException {

+    public void testChildExistence() {

         String query = "name() == 'testpage3' ";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(1, found.size());

     }

 

     @Test

-    public void testBoolean() throws ResourceFilterException {

+    public void testBoolean() {

         String query = "[published] == true";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(1, found.size());

     }

 

     @Test

-    public void testContains() throws ResourceFilterException {

+    public void testContains() {

         String query = "[jcr:content/monkey] contains 'fish'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(1, found.size());

     }

 

     @Test

-    public void testContainsNot() throws ResourceFilterException {

+    public void testContainsNot() {

         String query = "[jcr:content/monkey] contains not 'fish'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(19, found.size());

     }

 

     @Test

-    public void testIn() throws ResourceFilterException {

+    public void testIn() {

         String query = "'fish' in [jcr:content/monkey]";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(1, found.size());

     }

 

     @Test

-    public void testPathLike() throws ResourceFilterException {

+    public void testPathLike() {

         String query = "path() like '/content/sample/en/testpage1.*'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(4, found.size());

     }

 

     @Test

-    public void testPathLike2() throws ResourceFilterException {

+    public void testPathLike2() {

         String query = "path() like '/content/sample/en/testpage1'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(1, found.size());

     }

 

     @Test

-    public void testPathLike3() throws ResourceFilterException {

+    public void testPathLike3() {

         String query = "path() is '/content/sample/en/testpage1'";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(1, found.size());

     }

 

     @Test

-    public void testNotIn() throws ResourceFilterException {

+    public void testNotIn() {

         String query = "'fish' not in [jcr:content/monkey]";

         List<Resource> found = handle(START_PATH, query);

         assertEquals(19, found.size());

     }

 

     @Test

-    public void testInNotException() throws ResourceFilterException {

-        ResourceFilterException error = null;

+    public void testInNotException() {

+        IllegalArgumentException error = null;

         try {

             String query = "'fish' in not [jcr:content/monkey]";

             handle(START_PATH, query);

-        } catch (ResourceFilterException e) {

+        } catch (IllegalArgumentException e) {

             error = e;

         }

         assert (error.getMessage()

                 .startsWith("org.apache.sling.resource.filter.impl.script.ParseException: Encountered \" <PROPERTY> \"jcr:content/monkey \"\" at line 1, column 15."));

     }

 

-    private List<Resource> handle(String path, String filter) throws ResourceFilterException {

+    private List<Resource> handle(String path, String filter) {

         return new ResourceStream(resource).stream(r -> true).filter(resourceFilter.parse(filter))

                 .collect(Collectors.toList());

     }