[
https://issues.apache.org/jira/browse/LUCENE-6245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ryan Ernst updated LUCENE-6245:
-------------------------------
Attachment: LUCENE-6245.patch
Here is a patch which does as proposed. I also this this is a good solution
for 5.x. Forcing users with custom filters to make a decision when compiling
is better than hidden odd/changing behavior for most users.
> 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
> Attachments: LUCENE-6245.patch
>
>
> 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: [email protected]
For additional commands, e-mail: [email protected]