Hi Scott,

Thomas Vandahl wrote:

Scott, would you please check the following for me: Remove the SingleThreaded entry from the implements line of TorqueComponent and if that doesn't help, replace it with ThreadSafe. Then check again.

After looking at the decommission() method in

http://svn.apache.org/viewvc/excalibur/tags/excalibur-component-2.1-Release/deprecated/component/src/java/org/apache/avalon/excalibur/component/DefaultComponentFactory.java?revision=264009&view=markup

I'm pretty sure that marking TorqueComponent as ThreadSafe again would cure the problem. In the method code attached you can see the log message you observed and a call to

ContainerUtil.dispose( decommissionComponent );

which is exactly what happens.

Please check the change nevertheless, to be sure.

Bye, Thomas.


for reference:
---8<---
    public void decommission( final Object component )
        throws Exception
    {
        if( getLogger().isDebugEnabled() )
        {
getLogger().debug( "ComponentFactory decommissioning instance of " +
                               m_componentClass.getName() + "." );
        }

// See if we need to unwrap this component. It may have been wrapped in a proxy
        //  by the ProxyGenerator.
Object decommissionComponent = m_componentProxies.remove( component );
        if ( null == decommissionComponent )
        {
            // It was not wrapped.
            decommissionComponent = component;
        }

        ContainerUtil.stop( decommissionComponent );
        ContainerUtil.dispose( decommissionComponent );

        /*if ( decommissionComponent instanceof Composable )
        {
// A proxy will have been created. Ensure that components created by it
            //  are also released.
((ComponentManagerProxy)m_composableProxies.remove( decommissionComponent )).
                releaseAll();
        }

        if ( decommissionComponent instanceof Serviceable )
        {
// A proxy will have been created. Ensure that components created by it
            //  are also released.
((ServiceManagerProxy)m_serviceableProxies.remove( decommissionComponent )).
                releaseAll();
        }*/
    }


---8<---


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

Reply via email to