Due to problems with our DNS servers, i shortened the times of outgoing
retries to 1 hour, and bumped up the maxRetries to 50.

Anyway, the DNS servers are sorted... so i put the config back.  Everything
seemed happy... until monday morning.

60GB of log files later... and a full hard disk...  duh! millions of
exceptions (see below for example).

Looking at the code, i cant see where it checks if it's hit the maximum
delay times.  Also, i cant see an obvious way to check this on loading the
message.

Can anyone who know the remotedelivery code well enough comment if the
folloing would work:
replace

    private long getNextDelay (int retry_count) {
            return delayTimes[retry_count-1];
    }

with

    private long getNextDelay (int retry_count) {
        try {
            return delayTimes[retry_count-1];
        }
        catch (ArrayIndexOutOfBoundsException ex){
            return 0;
        }
    }

ie, if outside of defined delay times, next delay time is 0, so process now!

Will it then realise that this is outside of the maximum retries and bounce
it?

Daniel.


19/09/05 09:30:25 INFO  James.Mailet: RemoteDelivery: Exception caught in
Remote
Delivery.run()
java.lang.ArrayIndexOutOfBoundsException: 28
        at
org.apache.james.transport.mailets.RemoteDelivery.getNextDelay(Remote
Delivery.java:981)
        at
org.apache.james.transport.mailets.RemoteDelivery.access$000(RemoteDe
livery.java:93)
        at
org.apache.james.transport.mailets.RemoteDelivery$MultipleDelayFilter
.accept(RemoteDelivery.java:155)
        at
org.apache.james.mailrepository.AvalonSpoolRepository.accept(AvalonSp
oolRepository.java:156)
        at
org.apache.james.transport.mailets.RemoteDelivery.run(RemoteDelivery.
java:901)
        at java.lang.Thread.run(Thread.java:534)



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

Reply via email to