: I get an OutOfMemoryException after a few iterations of the following loop:
: LOOP:
:       ramdir = new RAMDirectory( "path/to/my/directory" );
:       searcher = new IndexSearcher( reader );
:         searcher.search(new TermQuery( new Term( "field", "keyword")));
:         searcher.close();
:         ramdir.close();
: END LOOP:
: Note, ramdir and searcher are both instance variables.

But what is "reader" ?  .. where is it initialized ?

I'm guessing this isn't hte exact code that gives you an OOM (since there
seems to be some code missing)

if you can post a complete small example program (with main method) that
demonstrates this problem -- or even better a self contained JUNit test --
then people can try to reproduce it.

(if the root of the issue is opening a RAMDirectory based on an
FSDirectory you can create the on disk directory using the system tmpdir
in your JUnit setUp method)

I suspect that somewhere in there you have another line that looks like...

     reader = IndexReader.open( ramdir );

...and that may be causing your problem.   If you open an IndexReader
explicitly, then IndexSearcher.close() won't close it for you





-Hoss


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to