FWIW, +1 from me on all this: when I started poking at my little problem I 
found as you said that there was really no way to trace the issue (one can use 
the debugger of course and I did, which is how I found the problem). So, 
getRefCount() would be good! 

thanks,
Paul 

-----Original Message-----
>From: Erick Erickson <erickerick...@gmail.com>
>Sent: Mar 6, 2009 9:01 PM
>To: java-user@lucene.apache.org
>Subject: Re: deletion of index-files fails
>
>OK, I understand now. Like I said, anything you deem appropriate.
>
>Best
>Erick
>
>On Fri, Mar 6, 2009 at 5:45 PM, Michael McCandless <
>luc...@mikemccandless.com> wrote:
>
>> 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
>>
>>




---------------------------------------------------------------------
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