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

Michael McCandless commented on LUCENE-4855:
--------------------------------------------

Hmmm, I'm confused.  That code does this:
{noformat}
    boolean success = false;
    try {
      output.writeInt(FORMAT_CURRENT);              // write format
      output.writeLong(0);                          // leave space for size
      output.writeInt(indexInterval);               // write indexInterval
      output.writeInt(skipInterval);                // write skipInterval
      output.writeInt(maxSkipLevels);               // write maxSkipLevels
      assert initUTF16Results();
      success = true;
    } finally {
      if (!success) {
        IOUtils.closeWhileHandlingException(output);
      }
    }
{noformat}

So any exception inside the try block should then call 
IOUtils.closeWhileHandlingException, which should suppress any exceptions hit 
during closing and continue throwing the original exception.

Can you post the full exception?
                
> Potential exception in TermInfosWriter#initialize() swallowed makes debugging 
> hard
> ----------------------------------------------------------------------------------
>
>                 Key: LUCENE-4855
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4855
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/index
>    Affects Versions: 3.6.2
>         Environment: any
>            Reporter: Chris Gioran
>            Priority: Minor
>
> TermInfosWriter#initialize() can potentially fail with an exception when 
> trying to write any of the values in the try block. If that happens the 
> finally clause will be called and that may also fail during close(). This 
> exception will mask the original one potentially hiding the real cause and 
> making debugging such failures difficult.
> My particular case involves failing the first write in the initialize() and 
> close() failing the seek. My code receives:
> Caused by: java.io.IOException: Illegal seek
>         at java.io.RandomAccessFile.seek(Native Method) ~[na:1.6.0_31]
>         at 
> org.apache.lucene.store.FSDirectory$FSIndexOutput.seek(FSDirectory.java:479)
>         at 
> org.apache.lucene.index.TermInfosWriter.close(TermInfosWriter.java:244)
>         at org.apache.lucene.util.IOUtils.close(IOUtils.java:141)
> which provides no indication as to why the initialization failed. The above 
> stack trace has been created with lucene version 3.5.0 but the exception 
> handling is still the same in 3.6.2

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
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]

Reply via email to