hmm... , What is a leftover lock file?
You know I debug my code, befor index folder has lock file, till line 7.
Then I close the program, like in a real run an interrupt has happened.
Next I debug the program again with that index folder which has the lock
file and it shouldn't passes the if clause. But it passes.
This is my sample code:
1.try{
2. if(!(IndexWriter.isLock(NIOFSDirectory.open("dstAddr")))){
3. IndexReader ir =
IndexReader.open(NIOFSDirectory.open("srcAddr"),true);
4. IndexWriterConfig iwc = new
IndexWriterConfig(Version.LUCENE_CURRENT, new SimpleAnalyzer());
5. IndexWriter iw = new
IndexWriter(NIOFSDirectory.open("dstAddr"),iwc);
6.
7. iw.addIndexes(ir);
8. iw.close();
9. }
10.} catch(CorruptIndexException e){
11. //TODO
12.} catch(LockObtainFailedException e){
13. //TODO
14.} catch(IOException e){
15. //TODO
16.}
On Mon, May 7, 2012 at 3:24 PM, Michael McCandless <
[email protected]> wrote:
> My guess is you had a leftover lock file. With NativeFSLockFactory
> (used by NIOFSDirectory), the presence of a lock file does not mean
> the lock is held (unlike the older SimpleFSLockFactory).
>
> The code that checks if the lock is held simply acquires and then
> releases the lock. So if you had a leftover (but unlocked) lock file,
> then the acquire succeeds, and on release the file is removed ...
>
> If it's not a leftover lock file ... can you make a quick code
> fragment showing the problem?
>
> Mike McCandless
>
> http://blog.mikemccandless.com
>
> On Mon, May 7, 2012 at 12:27 AM, S Eslamian <[email protected]> wrote:
> > Yes, I'm sure. I debug the code, and look at the files in the index
> folder,
> > it has a write.lock file before this line of code:
> > if (!(IndexWriter.isLock(NIOFSDirectory.open("fileAddr")))){
> > //do something
> > }
> >
> > and after passing this line, index folder does not contain write.lock
> file
> > and code goes to the if loop while it shouldn't passes the if clause!
> >
> > S Eslamian
> >
> > On Sun, May 6, 2012 at 5:56 PM, Michael McCandless <
> > [email protected]> wrote:
> >
> >> Hmm, not good. Are you sure the index was previously locked?
> >>
> >> Can you describe your environment? Which OS / Directory class are you
> >> using?
> >>
> >> Maybe boil down to a small code fragment showing the issue?
> >>
> >> Mike McCandless
> >>
> >> http://blog.mikemccandless.com
> >>
> >> On Sun, May 6, 2012 at 8:29 AM, S Eslamian <[email protected]> wrote:
> >> > Hi all
> >> > While I am using IndexWriter.isLock(), this method unlocks the index
> and
> >> > returns false.
> >> > Can anyone tell me why?
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [email protected]
> >> For additional commands, e-mail: [email protected]
> >>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>