: I'm a new user of solr but I have worked a bit with Lucene before. I get : some out of memory exception when optimizing the index through Solr and : I would like to find out why. However, the only message I get on : standard output is: Jul 30, 2009 9:20:22 PM : org.apache.solr.common.SolrException log SEVERE: : java.lang.OutOfMemoryError: Java heap space : : Is there a way to get a stack trace for this exception? I had a look : into the java.util.logging options and didn't find anything.
FWIW #1: OutOfMemoryError is a java "Error" not an "Exception" ... Exceptions and Errors are both Throwable, but an Error is not an Exception. this is a really importatn distinction (see below) FWIW #2: when dealing with an OOM, a stack trace is almost never useful. as mentioned in other threads, a heapdump is the most useful diagnostic tool FWIW #3: the formatting of Throwables in log files is 100% dependent on the configuration of the log manager -- the client code doing the logging just specifies the Throwable object -- it's up to the Formatter to decide how to output it. Ok .. on to the meat of hte issue... OOM Errors are a particularly devious class of errors: they don't neccessarily have stack traces (depending on your VM impl, and the state of the VM when it tries to log the OOM) .... http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4753347 http://blogs.sun.com/alanb/entry/outofmemoryerror_looks_a_bit_better ...on any *Exception* you should get a detailed stacktrace in the logs (unless you have a really screwed up LogManger configs), but when dealing with *Errors* like OutOfMemoryError, all bets are off as to what hte VM can give you. -Hoss