On Thu, Jan 28, 2010 at 12:43 PM, Michael McCandless
<luc...@mikemccandless.com> wrote:
> On Thu, Jan 28, 2010 at 6:38 AM, Uwe Schindler <u...@thetaphi.de> wrote:
>
>> So I checked the code of NIOFSIndexInput, my last comment was not really 
>> correct:
>> NIOFSIndexInput extends SimpleFSIndexInput and that opens the RAF. In the 
>> ctor RAF.getChannel() is called. The RAF keeps open until the file is closed 
>> (and also the channel).
>>
>> So it's really simple to fix in my opinion, just call getChannel() again on 
>> this exception. Because the RAF should still be open?

Short answer:
 public final FileChannel getChannel() {
        synchronized (this) {
            if (channel == null)
                channel = FileChannelImpl.open(fd, true, rw, this);
            return channel;
        }
    }

this is not gonna work I tried it before. The RandomAccessFile buffers
the channel!!

simon
>
> I think we need a definitive answer on what happens to the RAF when
> the FileChannel was closed by Thread.Interrupt.  Simon can you test
> this?
>
> Mike
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-dev-h...@lucene.apache.org
>
>

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

Reply via email to