Will you commit this also to trunk? In general, issues should be fixed first on trunk and then backported.
----- Uwe Schindler H.-H.-Meier-Allee 63, D-28213 Bremen http://www.thetaphi.de eMail: [email protected] > -----Original Message----- > From: [email protected] [mailto:[email protected]] > Sent: Tuesday, January 11, 2011 3:42 AM > To: [email protected] > Subject: svn commit: r1057454 - in > /lucene/dev/branches/branch_3x/lucene/contrib: ./ > queryparser/src/java/org/apache/lucene/queryParser/core/builders/ > queryparser/src/test/org/apache/lucene/queryParser/core/builders/ > > Author: adrianocrestani > Date: Tue Jan 11 02:41:44 2011 > New Revision: 1057454 > > URL: http://svn.apache.org/viewvc?rev=1057454&view=rev > Log: > committing fix for LUCENE-2855 > > Added: > > lucene/dev/branches/branch_3x/lucene/contrib/queryparser/src/test/org/ > apache/lucene/queryParser/core/builders/ > > lucene/dev/branches/branch_3x/lucene/contrib/queryparser/src/test/org/ > apache/lucene/queryParser/core/builders/TestQueryTreeBuilder.java > (with props) > Modified: > lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt > > lucene/dev/branches/branch_3x/lucene/contrib/queryparser/src/java/org/ > apache/lucene/queryParser/core/builders/QueryTreeBuilder.java > > Modified: lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt > URL: > http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/con > trib/CHANGES.txt?rev=1057454&r1=1057453&r2=1057454&view=diff > ========================================================== > ==================== > --- lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt (original) > +++ lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt Tue Jan > 11 02:41:44 2011 > @@ -48,6 +48,11 @@ Changes in runtime behavior > > Bug fixes > > + * LUCENE-2855: contrib queryparser was using CharSequence as key in > some internal > + Map instances, which was leading to incorrect behaviour, since some > CharSequence > + implementors do not override hashcode and equals methods. Now the > internal Maps > + are using String instead. (Adriano Crestani) > + > * LUCENE-2068: Fixed ReverseStringFilter which was not aware of > supplementary > characters. During reverse the filter created unpaired surrogates, which > will be replaced by U+FFFD by the indexer, but not at query time. The > filter > > Modified: > lucene/dev/branches/branch_3x/lucene/contrib/queryparser/src/java/org/ > apache/lucene/queryParser/core/builders/QueryTreeBuilder.java > URL: > http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/con > trib/queryparser/src/java/org/apache/lucene/queryParser/core/builders/Q > ueryTreeBuilder.java?rev=1057454&r1=1057453&r2=1057454&view=diff > ========================================================== > ==================== > --- > lucene/dev/branches/branch_3x/lucene/contrib/queryparser/src/java/org/ > apache/lucene/queryParser/core/builders/QueryTreeBuilder.java (original) > +++ > lucene/dev/branches/branch_3x/lucene/contrib/queryparser/src/java/org/ > apache/lucene/queryParser/core/builders/QueryTreeBuilder.java Tue Jan 11 > 02:41:44 2011 > @@ -61,7 +61,7 @@ public class QueryTreeBuilder implements > > private HashMap<Class<? extends QueryNode>, QueryBuilder> > queryNodeBuilders; > > - private HashMap<CharSequence, QueryBuilder> fieldNameBuilders; > + private HashMap<String, QueryBuilder> fieldNameBuilders; > > /** > * {...@link QueryTreeBuilder} constructor. > @@ -73,28 +73,25 @@ public class QueryTreeBuilder implements > /** > * Associates a field name with a builder. > * > - * @param fieldName > - * the field name > - * @param builder > - * the builder to be associated > + * @param fieldName the field name > + * @param builder the builder to be associated > */ > public void setBuilder(CharSequence fieldName, QueryBuilder builder) { > > if (this.fieldNameBuilders == null) { > - this.fieldNameBuilders = new HashMap<CharSequence, > QueryBuilder>(); > + this.fieldNameBuilders = new HashMap<String, QueryBuilder>(); > } > > - this.fieldNameBuilders.put(fieldName, builder); > + this.fieldNameBuilders.put(fieldName.toString(), builder); > + > > } > > /** > * Associates a class with a builder > * > - * @param queryNodeClass > - * the class > - * @param builder > - * the builder to be associated > + * @param queryNodeClass the class > + * @param builder the builder to be associated > */ > public void setBuilder(Class<? extends QueryNode> queryNodeClass, > QueryBuilder builder) { > @@ -135,8 +132,13 @@ public class QueryTreeBuilder implements > QueryBuilder builder = null; > > if (this.fieldNameBuilders != null && node instanceof FieldableNode) { > + CharSequence field = ((FieldableNode) node).getField(); > + > + if (field != null) { > + field = field.toString(); > + } > > - builder = this.fieldNameBuilders.get(((FieldableNode) > node).getField()); > + builder = this.fieldNameBuilders.get(field); > > } > > @@ -203,14 +205,13 @@ public class QueryTreeBuilder implements > * Builds some kind of object from a query tree. Each node in the query > tree > * is built using an specific builder associated to it. > * > - * @param queryNode > - * the query tree root node > + * @param queryNode the query tree root node > * > * @return the built object > * > - * @throws QueryNodeException > - * if some node builder throws a {...@link QueryNodeException} > or if > - * there is a node which had no builder associated to it > + * @throws QueryNodeException if some node builder throws a > + * {...@link QueryNodeException} or if there is a node which had no > + * builder associated to it > */ > public Object build(QueryNode queryNode) throws QueryNodeException { > process(queryNode); > > Added: > lucene/dev/branches/branch_3x/lucene/contrib/queryparser/src/test/org/ > apache/lucene/queryParser/core/builders/TestQueryTreeBuilder.java > URL: > http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/con > trib/queryparser/src/test/org/apache/lucene/queryParser/core/builders/Te > stQueryTreeBuilder.java?rev=1057454&view=auto > ========================================================== > ==================== > --- > lucene/dev/branches/branch_3x/lucene/contrib/queryparser/src/test/org/ > apache/lucene/queryParser/core/builders/TestQueryTreeBuilder.java > (added) > +++ > lucene/dev/branches/branch_3x/lucene/contrib/queryparser/src/test/org/ > apache/lucene/queryParser/core/builders/TestQueryTreeBuilder.java Tue > Jan 11 02:41:44 2011 > @@ -0,0 +1,31 @@ > +package org.apache.lucene.queryParser.core.builders; > + > +import junit.framework.Assert; > + > +import org.apache.lucene.queryParser.core.QueryNodeException; > +import org.apache.lucene.queryParser.core.nodes.FieldQueryNode; > +import org.apache.lucene.queryParser.core.nodes.QueryNode; > +import org.apache.lucene.queryParser.core.util.UnescapedCharSequence; > +import org.apache.lucene.util.LuceneTestCase; > +import org.junit.Test; > + > +public class TestQueryTreeBuilder extends LuceneTestCase { > + > + @Test > + public void testSetFieldBuilder() throws QueryNodeException { > + QueryTreeBuilder qtb = new QueryTreeBuilder(); > + qtb.setBuilder("field", new DummyBuilder()); > + Object result = qtb.build(new FieldQueryNode(new > UnescapedCharSequence("field"), "foo", 0, 0)); > + Assert.assertEquals("OK", result); > + > + } > + > + private static class DummyBuilder implements QueryBuilder { > + > + public Object build(QueryNode queryNode) throws QueryNodeException > { > + return "OK"; > + } > + > + } > + > +} > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
