lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From S Eslamian <seslam...@gmail.com>
Subject Re: IndexWriter.isLock()
Date Mon, 07 May 2012 11:19:49 GMT
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 <
lucene@mikemccandless.com> 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 <seslamian@gmail.com> 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 <
> > lucene@mikemccandless.com> 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 <seslamian@gmail.com> 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: java-user-unsubscribe@lucene.apache.org
> >> For additional commands, e-mail: java-user-help@lucene.apache.org
> >>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message