If we changed the signature (return value) then on dropping in the JAR you'd have to recompile your code, which violates our back compat goals, ie "drop in JAR and run".

Mike

Erick Erickson wrote:

Why would it break back compat?
They just return void now, so

IndexReader.incRef();

should still compile/run.

But that's arguing about angels dancing on pins. My real issue
is that by not allowing *some* mechanism to get the refcount
developers don't have any tools for figuring out that it's a refcount issue,
so exposing getRefCount() would satisfy that need.

I'll totally defer to folks who actually maintain code to
cast the deciding ballot.

Best
Erick

On Fri, Mar 6, 2009 at 2:10 PM, Michael McCandless <
luc...@mikemccandless.com> wrote:


Yes ref counts are tricky, though these are expert APIs.

I think changing close, incRef, decRef to return the RC would be good,
though that breaks back compat.

How about exposing getRefCount() instead?

Mike


Erick Erickson wrote:

Hmmmm, reference counting is always yucky. I looked
the IndexReader javadocs over and there isn't any help
there for managing refcounts. You can't find the current
refcount, close doesn't indicate the results, etc. Or I
missed, for the Nth time, perfectly obvious documentation.

What do people think about one or more of these options?
1> have IndexReader.close() return some indication
  of what the resulting refcount is. I.e. "did the reader
  *really* close.
2> have decRef do the same.
3> have incRef do the same (although this seems less useful).


It's really, really hard to insure your reference counting is
correct solely by code inspection <G>!

yeah, yeah, yeah, this probably belongs on the dev list.
I'll be happy to put it over there and/or raise a JIRA...

Best
Erick

On Fri, Mar 6, 2009 at 11:40 AM, Michael McCandless <
luc...@mikemccandless.com> wrote:


OK, phew!  Thanks for bringing closure.

Mike


rolaren...@earthlink.net wrote:

I did just now double/triple-check: the IndexWriter is definitely closed.


However (cough), I did have a bogus call to IndexReader.incRef() ...
once
I removed that, the call to IndexReader.close() actually worked and then
the
deletion did so too. Thanks; sorry to trouble you.

-Paul

-----Original Message-----

From: Michael McCandless <luc...@mikemccandless.com>
Sent: Mar 6, 2009 4:23 AM
To: java-user@lucene.apache.org
Cc: rolaren...@earthlink.net
Subject: Re: deletion of index-files fails


If truly the IndexWriter & all IndexReaders are closed, then they
should no longer be holding open files.  Maybe triple check that
you've indeed closed everything.

It's remotely possible that some other process (virus checker, source
control clients, etc) has the file open.

You could try Microsoft's (formerly sysinternals) "Process Monitor" to
see which processes have the files open.

Mike

Ian Lea wrote:

What OS are you running? What version of lucene? Are you sure that

you have privilege to delete the files that it is failing on? That they are part of the index you are trying to remove? That something
else doesn't have the files open?

It seems likely that you are on Windows and that something is holding on to the files. I believe that Windows won't let you delete open files. You could try calling File.deleteOnExit() for the index files.


--
Ian.


On Fri, Mar 6, 2009 at 2:19 AM, <rolaren...@earthlink.net> wrote:

So, I have a (small) Lucene index, all fine; I use it a bit, and
then (on app shutdown) want to delete its files and the containing directory (the index is intended as a temp object). At some earlier time this was working just fine, using java.io.File.delete(). Now however, some of the files get deleted (segments*) whereas others fail (no Exn is thrown, just java.io.File.delete() returns false: _0.cfs, _0.cfx). I've tried closing the IndexReader (no IndexWriter
exists at shutdown), but that makes no diff.

Any ideas?

thanks
Paul




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



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






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



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




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




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

Reply via email to