Hi Michael,

The java-commits mailing list is not for posting to.
Bug reports or fixes normally get put in a JIRA.

I do think this is a good limitation to fix.
Going from int to long only costs a single cycle, and that's only on
buffer refills (i.e. negligible).

There are other places in RAMInputStream & RAMOutputStream that need
fixing too.  I'll handle that.

-Yonik
http://incubator.apache.org/solr Solr, the open-source Lucene search server


On 5/23/06, Michael Chan <[EMAIL PROTECTED]> wrote:
Hi,

I have a 5gb index at hand, stored on disk. I tried creating a
RAMDirectory out of it and it crashes everytime at around the 2gb
mark. I simply create it using:

RAMDirectory ramDir = new RAMDirectory("index");

where "index" is the path. The error messages are as follows:

"bash-2.03$ Exception in thread "main" java.lang.ExceptionInInitializerError
       at TaxonomyFinder.RelatedCatsFinder.<init>(RelatedCatsFinder.java:46)
       at 
wikipedia.WikipediaAnalyser$ExtractAbstractHandler.endElement(WikipediaAnalyser.java:295)
       at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
Source)
       at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
Source)
       at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
       at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
       at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
       at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
       at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
       at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
       at wikipedia.WikipediaAnalyser.parseAbstracts(WikipediaAnalyser.java:184)
       at 
wikipedia.WikipediaAnalyser.getRelatedCategories(WikipediaAnalyser.java:127)
       at TaxonomyFinder.TaxonomyTreeMaker.main(TaxonomyTreeMaker.java:492)
Caused by: java.lang.ArrayIndexOutOfBoundsException: -2097152
       at java.util.Vector.elementAt(Unknown Source)
       at 
org.apache.lucene.store.RAMOutputStream.flushBuffer(RAMOutputStream.java:82)
       at 
org.apache.lucene.store.BufferedIndexOutput.flush(BufferedIndexOutput.java:84)
       at 
org.apache.lucene.store.BufferedIndexOutput.writeBytes(BufferedIndexOutput.java:52)
       at org.apache.lucene.store.RAMDirectory.<init>(RAMDirectory.java:68)
       at org.apache.lucene.store.RAMDirectory.<init>(RAMDirectory.java:95)
       at 
word_coocurrence.WordCooccurrenceFinder.<clinit>(WordCooccurrenceFinder.java:50)
       ... 13 more"

I fixed it by simply changing RAMOutputStream.pointer to long, and
Line 72 and 73 of RAMOutputStream.java to:

int bufferNumber = (int) (pointer/BUFFER_SIZE);
int bufferOffset = (int) (pointer%BUFFER_SIZE);

Now, it all works fine. Maybe this is worth fixing.

Michael


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

Reply via email to