After an unsuccesfull call of IndexModifier::addDocument (catched exception 
"Lock obtain timed out"), IndexModifier destructor causes Accesss violation 
exception.

This is beacause after unsuccessfull call to addDocument both members 
indexReader and indexWriter are NULL, but the check of indexReader is missing
in IndexModifier::close() method (which is called from destructor):

void IndexModifier::close() {
        SCOPED_LOCK_MUTEX(directory->THIS_LOCK)
        if (indexWriter != NULL) {
                indexWriter->close();
                _CLDELETE(indexWriter);
        } else {                                        <<<<<<< Missing: if 
(indexReader != NULL)
                indexReader->close();
                _CLDELETE(indexReader);
        }
        _CLDECDELETE(directory)
        open = false;
}

Clucene 0.9.21 on Win XP and MS VC 2005 used



------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
CLucene-developers mailing list
CLucene-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/clucene-developers

Reply via email to