crafterm    2003/09/16 07:44:44

  Modified:    fortress/container/src/impl/org/apache/avalon/fortress/util
                        ContextManager.java
  Log:
  Applying patch from Michael Melhem <[EMAIL PROTECTED]>
  which fixes log statement request made after shutdown of the logger manager
  itself.
  
  Revision  Changes    Path
  1.49      +29 -2     
avalon/fortress/container/src/impl/org/apache/avalon/fortress/util/ContextManager.java
  
  Index: ContextManager.java
  ===================================================================
  RCS file: 
/home/cvs/avalon/fortress/container/src/impl/org/apache/avalon/fortress/util/ContextManager.java,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- ContextManager.java       27 Jun 2003 18:30:59 -0000      1.48
  +++ ContextManager.java       16 Sep 2003 14:44:43 -0000      1.49
  @@ -392,7 +392,35 @@
        */
       public void dispose()
       {
  +        // Dispose all items owned by ContextManager 
  +        disposeOwned();
  +
  +        // Now dispose the Logger (cannot log to logger after its shutdown)
  +        if ( getLogger().isDebugEnabled() )
  +        {
  +            getLogger().debug( "Shutting down: " + m_loggerManager );
  +        }
  +
  +        try 
  +        {
  +            ContainerUtil.shutdown( m_loggerManager );
  +        } 
  +        catch (final Exception ex) 
  +        {
  +            if (  m_primordialLogger.isDebugEnabled() ) 
  +            { 
  +                m_primordialLogger.debug( "Failed to shutdown loggerManager", ex );
  +            }
  +        }
  +    }
  +
  +    /**
  +     * Disposes all items ContextManager has assumed ownership over 
  +     */
  +    public void disposeOwned()
  +    {
           Collections.sort( ownedComponents, new DestroyOrderComparator() );
  +
           // Dispose owned components
           final Iterator ownedComponentsIter = ownedComponents.iterator();
           while ( ownedComponentsIter.hasNext() )
  @@ -916,7 +944,6 @@
               ContainerUtil.contextualize( m_loggerManager, m_rootContext );
               ContainerUtil.configure( m_loggerManager, loggerManagerConfig );
               ContainerUtil.start( m_loggerManager );
  -            assumeOwnership( m_loggerManager );
           }
   
           // Since we now have a LoggerManager, we can update the this.logger field
  
  
  

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

Reply via email to