[ 
https://issues.apache.org/jira/browse/LUCENE-8434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16560395#comment-16560395
 ] 

Hoss Man commented on LUCENE-8434:
----------------------------------

would it make sense to support setting a sentinel exception as an expert level 
option on Collectors that currently {{throw new CollectionTerminatedException}} 
?

(for users who generally want {{-XX:-OmitStackTraceInFastThrow}} but in this 
specific case don't care)

ie...
{code:java}
private CollectionTerminatedException reusableCollectionTerminatedException = 
null;
public void 
setReusableCollectionTerminatedException(CollectionTerminatedException e) {
  this.reusableCollectionTerminatedException = e;
}
...
  if (someConditionThatAllowsEarlyTermination) {
    throw (null != reusableCollectionTerminatedException) ?
      reusableCollectionTerminatedException : new 
CollectionTerminatedException();
    }
  }

{code}

?

> Use shared instance of CollectionTerminatedException
> ----------------------------------------------------
>
>                 Key: LUCENE-8434
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8434
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Michael Braun
>            Priority: Minor
>
> Creating exceptions and filling in the stack is expensive (see SOLR-11242 and 
> SOLR-11314 for two such examples). CollectionTerminatedException is used as a 
> signaling mechanism - there are zero instances in code that actually log that 
> it occurred or make use of anything other than the fact that it occurred 
> (unlike Solr's EarlyTerminatingCollectorException, for instance).  Exceptions 
> really should be for something exceptional - the use of 
> CollectionTerminatedException is in place of polluting return values with 
> this condition and is just used as a signal to callers. 
> Because CollectionTerminatedException is never inspected directly and is 
> effectively a different return condition, it doesn't make as much sense to 
> generate new Exceptions with fresh stack traces every time - either change 
> the signatures or share the object. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to