Precedence operator in conditionals with ternary operator needs to be examined.
-------------------------------------------------------------------------------
Key: SOLR-2876
URL: https://issues.apache.org/jira/browse/SOLR-2876
Project: Solr
Issue Type: Bug
Affects Versions: 3.5, 4.0
Environment: all
Reporter: Erick Erickson
Assignee: Erick Erickson
This is an offshoot of 2829 where the root of the bug was that precedence in
the ternary operator along with && without appropriate parentheses was a
problem.
&& this.parser == null ? other.parser == null : this.parser.getClass() ==
other.parser.getClass() (from ShortFieldSource.java).
So that got me curious whether this pattern was repeated. A quick grep with the
following REs produced one hit I wasn't related to 2829 with && and more with
|| (3x code base). I'll try to get to it over the weekend. Please don't grab it
just yet, I'm fixing this partially for 2829, but if anyone wants to try the
grep and see if I'm hallucinating, I'd appreciate it. I'd *really* appreciate
any tests for things people see...
Some of the returns are false hits, but not others. See
SolrIndexSearcher.getDocListAndSetNC()
the last line is: return pf.filter==null && pf.postFilter==null ?
qr.getDocSet() : null;
REs (using them in IntelliJ)
\|\|[\sa-z\.0-9A-Z]+==.*\?
&&[\sa-z\.0-9A-Z]+==.*\?
I got some hits with the above and didn't pursue it any further, but if anyone
wants to suggest more comprehensive REs, please attach. I'm trying for "&& or
|| followed by anything without an open parentheses followed by == followed by
anything followed by ?" I'd rather get a manageable number of false positives
than miss things.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]