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();
}