Hello all, since our usage of James is getting more intensive and the drive James logs to is the same as where many temporary and other log files go to. I added some protection against endless loops in James. These let me sleep a little better and maybe somebody else as well?
1. I changed James.java to add a non-standard header to bounced mails to be able to recognize rebouncing. This would happen if the sender, recipient and the local postmaster are due to remote delivery and permantly not reachable. (Which is not too unlikely to happen in my case since I am forwarding the postmaster mails) 2. I added a sleep in the catch block in the main loop of RemoteDelivery.java (I indeed got a endless loop here producing 40MB of logs after startup till I was able to stop James again. How? I forgot to add the dbSPOOL repository type to the mailstore blocks configuration. Which led to a NullPointerException in the loop since the exception in the initphase is being catched.) 3. I added a sleep in the catch block in the main loop of JamesSpoolManager.java 4. I changed NotifyPostmaster and NotifySender to optionally set a custom header counting the notification level depth. In case the notification of a postmaster leads to an error which again yields a notification. 5. Added some Matcher (only included in the modified.zip): NullSender: checks for the sender being null NamedSender: !NullSender HeaderSmallerThan: Checks for a header like that set by NotifyPostmaster or NotifySender If you like to, add this code to JAMES. Cheers, Marcus
diff.zip
Description: Binary data
modified.zip
Description: Binary data
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>