Index: LuceneSpellChecker.java =================================================================== --- LuceneSpellChecker.java (revision 1038818) +++ LuceneSpellChecker.java (working copy) @@ -19,9 +19,9 @@ import org.apache.jackrabbit.core.query.lucene.SearchIndex; import org.apache.jackrabbit.core.query.lucene.FieldNames; import org.apache.jackrabbit.core.query.QueryHandler; -import org.apache.jackrabbit.core.query.QueryRootNode; -import org.apache.jackrabbit.core.query.TraversingQueryNodeVisitor; -import org.apache.jackrabbit.core.query.RelationQueryNode; +import org.apache.jackrabbit.spi.commons.query.QueryRootNode; +import org.apache.jackrabbit.spi.commons.query.TraversingQueryNodeVisitor; +import org.apache.jackrabbit.spi.commons.query.RelationQueryNode; import org.apache.lucene.search.spell.SpellChecker; import org.apache.lucene.search.spell.Dictionary; import org.apache.lucene.search.spell.LuceneDictionary; @@ -40,6 +40,7 @@ import java.io.File; import java.util.ArrayList; import java.util.List; +import javax.jcr.RepositoryException; /** * LuceneSpellChecker implements a spell checker based on the terms @@ -143,7 +144,13 @@ * {@inheritDoc} */ public String check(QueryRootNode aqt) throws IOException { - String stmt = getFulltextStatement(aqt); + String stmt = null; + try { + stmt = getFulltextStatement(aqt); + } catch(RepositoryException e) + { + //Ingore it. + } if (stmt == null) { // no spellcheck operation in query return null; @@ -164,10 +171,10 @@ * @param aqt the abstract query tree. * @return the fulltext statement or null. */ - private String getFulltextStatement(QueryRootNode aqt) { + private String getFulltextStatement(QueryRootNode aqt) throws RepositoryException { final String[] stmt = new String[1]; aqt.accept(new TraversingQueryNodeVisitor() { - public Object visit(RelationQueryNode node, Object o) { + public Object visit(RelationQueryNode node, Object o) throws RepositoryException{ if (stmt[0] == null && node.getOperation() == RelationQueryNode.OPERATION_SPELLCHECK) { stmt[0] = node.getStringValue(); }