[ https://issues.apache.org/jira/browse/LUCENE-6245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ryan Ernst resolved LUCENE-6245. -------------------------------- Resolution: Fixed Fix Version/s: 5.1 Trunk > 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 > Fix For: Trunk, 5.1 > > 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: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org