Tiago Silveira wrote:
Hello,
I get a NullPointerException when I try to openFile() on a file that
does not yet exist. I don't really know the semantics of the Directory
class, but the javadoc says "Returns a stream reading an existing file."
I traced the problem down to this scenario:
1. The IndexReader wants to open an index that does not yet exist.
2. RAMDirectory gets the openFile(aName) message;
3. RAMDirectory gets the RAMFile from the map with the key aName; when
the file doesn't exist, the map returns null.
4. It creates a RAMInputStream, passing the RAMFile it got (null), and
the first thing RAMInputStream does is to store the size of the file,
calling file.length;
5. When file is null, file.length throws NPE.
Shouldn't RAMDirectory.openFile() create a RAMFile when it is called?
Directory.createFile(name) creates a file.
If you call new FileInputStream(file) on a non-existing file you get
an exception too.
Is this the correct behaviour? Where should I check if the Directory
already has an index? And how?
Try IndexReader.indexExists(directory)
You can create an index with a IndexWriter instance.
regards,
Christoph
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]