[ https://issues.apache.org/jira/browse/LUCENE-6245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14321492#comment-14321492 ]
Adrien Grand commented on LUCENE-6245: -------------------------------------- OK I see the issue. I wanted to keep Filter as backward-compatible as possible but I had not anticipated the bad effects on toString(). Your proposal sounds good to me, I'll work on a fix unless you already started. > ConstantScoreQuery etc have crazy toString()'s > ---------------------------------------------- > > Key: LUCENE-6245 > URL: https://issues.apache.org/jira/browse/LUCENE-6245 > Project: Lucene - Core > Issue Type: Bug > Reporter: Robert Muir > > For backwards compatibility reasons, LUCENE-1518 gave Filter a default "crap" > toString(String) impl of getClass().getSimpleName(). I don't think we should > do this. It causes problems e.g. when filters are wrapped in > ConstantScoreQuery or other places, because toString(String) does the wrong > thing. > {code} > Filter f = new MultiTermQueryWrapperFilter<WildcardQuery>(new > WildcardQuery(new Term("foo", "b*ar"))); > > System.out.println(f.toString()); // foo:b*ar > System.out.println(f.toString("foo")); // MultiTermQueryWrapperFilter > {code} > Instead i think that impl should be removed (leaving it abstract), and > Query.toString() should be final for a hard break: > {code} > /** Prints a query to a string, with <code>field</code> assumed to be the > * default field and omitted. > */ > public abstract String toString(String field); > /** Prints a query to a string. */ > @Override > public ****final**** String toString() { > return toString(""); > } > {code} > having buggy toString's is worse than requiring a change in custom filters. > It impacts all users rather than just expert ones. Also by doing this, all > the current toString bugs in the codebase show up as compile errors. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org