"Carsten                                                         
                                                
                      Ziegeler"                An:      "Cocoon-Dev" <[EMAIL 
PROTECTED]>                                           
                      <[EMAIL PROTECTED]         Kopie:   (Blindkopie: Volker 
Schmitt/BASF-AG/BASF)                                      
                      -n.de>                   Thema:   Memory leak due to pooling     
                                                
                                                                                       
                                                
                      09.01.2004 07:53                                                 
                                                
                      Bitte antworten                                                  
                                                
                      an dev                                                           
                                                
                                                                                       
                                                
                                                                                       
                                                








> The last days showed that we have a lot of potential memory leaks,
> see
>
> [1] http://marc.theaimsgroup.com/?t=107330680600002&r=1&w=2
> and
>
> [2] http://marc.theaimsgroup.com/?t=107355695400003&r=1&w=2
>
> This is caused by the simple fact that in some cases the recycle()
> method of a Recyclable component is not called (see [2] for some
> details about that).

Hm, If I look to the ECM code (ResourceLimitingPool):

/**
 * Returns a poolable to the pool and notifies any thread blocking.
 *
 * @param poolable Poolable to return to the pool.
 */
public void put( Poolable poolable )
{
    // Handle Recyclable objects
    if( poolable instanceof Recyclable )
    {
        ( (Recyclable)poolable ).recycle();
    }
    synchronized( m_semaphore )
    {


it can' t be the case (for ECM) that a component is not recycled, because
calling recycle is done before checking the pool full condition. I agree,
that this is not a defined behavior and can be container dependent.

<snip />



Reply via email to