diff --git a/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BooleanFilterBuilder.java b/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BooleanFilterBuilder.java index decfa04d9e9..267f75ff4e6 100644 --- a/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BooleanFilterBuilder.java +++ b/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BooleanFilterBuilder.java @@ -11,6 +11,7 @@ import org.apache.lucene.xmlparser.DOMUtils; import org.apache.lucene.xmlparser.FilterBuilder; import org.apache.lucene.xmlparser.ParserException; import org.w3c.dom.Element; +import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -28,15 +29,20 @@ public class BooleanFilterBuilder implements FilterBuilder { public Filter getFilter(Element e) throws ParserException { BooleanFilter bf=new BooleanFilter(); - NodeList nl = e.getElementsByTagName("Clause"); + NodeList nl = e.getChildNodes(); + for(int i=0;i + + + + + + doesNotExistButShouldBeOKBecauseOtherClauseExists + + + + + bank + + diff --git a/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestParser.java b/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestParser.java index 49221e1737e..a1f8d1b1160 100644 --- a/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestParser.java +++ b/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestParser.java @@ -150,6 +150,11 @@ public class TestParser extends TestCase { Query q=parse("BooleanFilter.xml"); dumpResults("Boolean filter", q, 5); } + public void testNestedBooleanQuery() throws ParserException, IOException + { + Query q=parse("NestedBooleanQuery.xml"); + dumpResults("Nested Boolean query", q, 5); + }