[ https://issues.apache.org/jira/browse/LUCENE-1748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12731972#action_12731972 ]
Earwin Burrfoot edited comment on LUCENE-1748 at 7/16/09 7:54 AM: ------------------------------------------------------------------ I took a glance at the code, the whole getPayloadSpans deal is a herecy. Each and every implementation looks like: public PayloadSpans getPayloadSpans(IndexReader reader) throws IOException { return (PayloadSpans) getSpans(reader); } Moving it to the base SpanQuery is broken equally to current solution, but yields much less strange copypaste. -I also have a faint feeling that if you expose a method like- -ClassA method();- -you can then upgrade it to- -SubclassOfClassA method();- -without breaking drop-in compatibility, which renders getPayloadSpans vs getSpans alternative totally useless- Ok, I'm wrong. was (Author: earwin): I took a glance at the code, the whole getPayloadSpans deal is a herecy. Each and every implementation looks like: public PayloadSpans getPayloadSpans(IndexReader reader) throws IOException { return (PayloadSpans) getSpans(reader); } Moving it to the base SpanQuery is broken equally to current solution, but yields much less strange copypaste. I also have a faint feeling that if you expose a method like ClassA method(); you can then upgrade it to SubclassOfClassA method(); without breaking drop-in compatibility, which renders getPayloadSpans vs getSpans alternative totally useless > getPayloadSpans on org.apache.lucene.search.spans.SpanQuery should be abstract > ------------------------------------------------------------------------------ > > Key: LUCENE-1748 > URL: https://issues.apache.org/jira/browse/LUCENE-1748 > Project: Lucene - Java > Issue Type: Bug > Components: Query/Scoring > Affects Versions: 2.4, 2.4.1 > Environment: all > Reporter: Hugh Cayless > Fix For: 2.4.2 > > > I just spent a long time tracking down a bug resulting from upgrading to > Lucene 2.4.1 on a project that implements some SpanQuerys of its own and was > written against 2.3. Since the project's SpanQuerys didn't implement > getPayloadSpans, the call to that method went to SpanQuery.getPayloadSpans > which returned null and caused a NullPointerException in the Lucene code, far > away from the actual source of the problem. > It would be much better for this kind of thing to show up at compile time, I > think. > Thanks! -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org