OutOfMemoryError is not a RuntimeException but an Error, isn't it? The debug was from that code but I think the exception was really a RuntimeException and not an OutOfMemoryError: it probably was encapsulated in a RuntimeException before.
Let's read the DEBUG log... > DEBUG mailstore: Exception retrieving mail: > java.lang.RuntimeException: Exception caught while retrieving an > object, cause: java.lang.OutOfMemoryError, so we're deleting it... > good riddance! So the "re" caught is a Runtime and is created by the File_Persistent_Object_Repository with this snippet: catch( final Throwable e ) { throw new RuntimeException( "Exception caught while retrieving an object, cause: " + e.toString() ); } I think this patch is wrong (the OOME is not a RuntimeException!). You should change the File_Persistent_Object_Repository. Stefano > james/server/trunk/src/java/org/apache/james/mailrepository/AvalonMa > +++ ilRepository.java Wed Jun 22 03:36:11 2005 > @@ -333,12 +333,20 @@ > MailImpl mc = null; > try { > mc = (MailImpl) or.get(key); > - } catch (RuntimeException re) { > + } catch(OutOfMemoryError oome){ > + StringBuffer exceptionBuffer = > + new StringBuffer(128) > + .append("Exception retrieving mail: ") > + .append(oome.toString()); > + getLogger().debug(exceptionBuffer.toString()); > + return null; > + } > + catch (RuntimeException re) { > StringBuffer exceptionBuffer = > new StringBuffer(128) > .append("Exception retrieving mail: ") > .append(re.toString()) > - .append(", so we're deleting > it... good riddance!"); > + .append(", so we're deleting it."); > getLogger().debug(exceptionBuffer.toString()); > remove(key); > return null; --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]