You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by Steve Short <St...@PostX.com> on 2002/03/05 20:14:46 UTC

Found Problem with Retries and Bounces

OK I have found the basic cause of the message header information being lost
during retries of temporary failures.  Basically the MimeMessageWrapper
doesn't fully load the data file until it is actually needed, it stores a
reference to a MimeMessageSource instead.  When RemoteDelivery updates the
message status and retry count, it attempts to store() the updated message.

What happens is that store() creates a new FileOutputStream, which truncates
the file to 0 bytes, then tells the message object to write itself to the
new file.  MimeMessageWrapper realises that it needs to read the header data
from it's MimeMessageSource and tries to do so, but this file has just been
wiped.  Therefore the data has been lost.

Regards
Steve



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: Found Problem with Retries and Bounces

Posted by Serge Knystautas <se...@lokitech.com>.
Thanks for the analysis.  I think what I did was changing RemoteDelivery to
save to a new file... I can also change the MimeMessageWrapper to check
where the file is saved and accordingly move the old file to a temp location
or something like that.

Serge Knystautas
Loki Technologies - Unstoppable Websites
http://www.lokitech.com/
----- Original Message -----
From: "Steve Short" <St...@PostX.com>
To: "James Dev (E-mail)" <ja...@jakarta.apache.org>
Sent: Tuesday, March 05, 2002 2:14 PM
Subject: Found Problem with Retries and Bounces


> OK I have found the basic cause of the message header information being
lost
> during retries of temporary failures.  Basically the MimeMessageWrapper
> doesn't fully load the data file until it is actually needed, it stores a
> reference to a MimeMessageSource instead.  When RemoteDelivery updates the
> message status and retry count, it attempts to store() the updated
message.
>
> What happens is that store() creates a new FileOutputStream, which
truncates
> the file to 0 bytes, then tells the message object to write itself to the
> new file.  MimeMessageWrapper realises that it needs to read the header
data
> from it's MimeMessageSource and tries to do so, but this file has just
been
> wiped.  Therefore the data has been lost.
>
> Regards
> Steve


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>