[ https://issues.apache.org/jira/browse/LUCENE-8525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16737017#comment-16737017 ]
Robert Muir commented on LUCENE-8525: ------------------------------------- Sorry, this isn't the job of the library to classify exceptions into these buckets you seem to want (Such as recoverable or not), we simply do not know this. and the EOF case is a perfect example of every other case, where its really ambiguous what the cause is. We can pass along the problems as exceptions and that is really it: no more. Historically that has been difficult enough: it is enough to ensure the IOException makes it through unswallowed. the exception handling is already too complex, it should not be made even more so for artificial reasons. plain ioexception is perfectly fine. callers really shouldnt be handling anything. if you want to try to do this magical determination when an ioexception strikes, I think you are going to have to figure out what heuristic you want, and write code yourself to do it (e.g. invoke checksum verification code or whatever you decide). > throw more specific exception on data corruption > ------------------------------------------------ > > Key: LUCENE-8525 > URL: https://issues.apache.org/jira/browse/LUCENE-8525 > Project: Lucene - Core > Issue Type: Improvement > Reporter: Vladimir Dolzhenko > Priority: Major > > DataInput throws generic IOException if data looks odd > [DataInput:141|https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/lucene/core/src/java/org/apache/lucene/store/DataInput.java#L141] > there are other examples like > [BufferedIndexInput:219|https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/lucene/core/src/java/org/apache/lucene/store/BufferedIndexInput.java#L219], > > [CompressionMode:226|https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/lucene/core/src/java/org/apache/lucene/codecs/compressing/CompressionMode.java#L226] > and maybe > [DocIdsWriter:81|https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/lucene/core/src/java/org/apache/lucene/util/bkd/DocIdsWriter.java#L81] > That leads to some difficulties - see [elasticsearch > #34322|https://github.com/elastic/elasticsearch/issues/34322] > It would be better if it throws more specific exception. > As a consequence > [SegmentInfos.readCommit|https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java#L281] > violates its own contract > {code:java} > /** > * @throws CorruptIndexException if the index is corrupt > * @throws IOException if there is a low-level IO error > */ > {code} -- 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