lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Muir (JIRA)" <>
Subject [jira] [Commented] (LUCENE-6245) ConstantScoreQuery etc have crazy toString()'s
Date Sat, 14 Feb 2015 15:44:12 GMT


Robert Muir commented on LUCENE-6245:

I think we should first fix the issue for trunk, and then think about the impact.

My issue here is that breaking toString() functionality silently will affect many many users.
I am not worried about making a clean compile-time break that only impacts custom queries/filters
code. It only impacts advanced users and does so without confusing them.

> ConstantScoreQuery etc have crazy toString()'s
> ----------------------------------------------
>                 Key: LUCENE-6245
>                 URL:
>             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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message