james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j...@apache.org
Subject [jira] Resolved: (JAMES-9) JamesSpoolManager doesn't shutdown gracefully
Date Wed, 14 Apr 2004 04:23:43 GMT

   The following issue has been resolved as FIXED.

   Resolver: Noel J. Bergman
       Date: Tue, 13 Apr 2004 9:21 PM

"there is a potential race condition in the SpoolManager between 
the worker threads that actually process the mail and the action of the dispose() method,
which destroys the mailets"

JamesSpoolManager.dispose() now tells the spooler threads to terminate and then waits (up
to 1 minute) for them to complete.
View the issue:

Here is an overview of the issue:
        Key: JAMES-9
    Summary: JamesSpoolManager doesn't shutdown gracefully
       Type: Bug

     Status: Resolved
 Resolution: FIXED

    Project: James
             SpoolManager & Processors
   Fix Fors:

   Reporter: Serge Knystautas

    Created: Mon, 8 Oct 2001 7:58 PM
    Updated: Tue, 13 Apr 2004 9:21 PM
Environment: Operating System: Other
Platform: Other

On Sat, 29 Sep 2001 06:36, Matthew Pangaro wrote:
>   java.lang.IllegalStateException: Using a stale object reference to call a
> disposed Block. at
> org.apache.avalon.phoenix.components.application.BlockInvocationHandler.inv
>oke(BlockInvocationHandler.java:92) at $Proxy9.log(Unknown Source)
>           at org.apache.mailet.GenericMailet.log(GenericMailet.java:148)
>           at
> org.apache.james.transport.mailets.RemoteDelivery.run(RemoteDelivery.java:3
>71) at java.lang.Thread.run(Thread.java:484)
> I don't know if the same occurs from a timeout of a connection to any of
> the other services. Still shuts down ok, but seems like it should be
> caught, or the object reference should be cleaned up. Sorry if this should
> have been posted to Avalon list, but I wasn't really sure where it
> belonged.

The problem is that transport.JamesSpoolManager does not implement the 
dispose method. It should implement dispose() to wait till all currently 
executing processors shutdown gracefully. Todo this it will need to make sure 
run() shuts down properly.

This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:

If you want more information on JIRA, or have a bug to report see:

To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org

View raw message