You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Anton Tagunov <at...@mail.cnt.ru> on 2003/06/04 16:59:46 UTC

Let's have log entry about exception instead of two

Hello Berin!

Currently an excption is caught inside DefaultContainerManager
which results in two FATAL ERRORS in my log: one is logged
by DefaultContainerManager itself and the Exception is hidden
from me, the other is my own FATAL ERROR on a caught NPE.

Let's let the first exception pop up and have a nice and quite
log (currently only a Fortress Expert can decypher why the
second log message appears :-)

Sample double logging:

2003-06-04 18:31:59 - /tst: director-power: [FATAL ERROR] Unable to initialize the contextManager. - org.apache.avalon.framework.configuration.ConfigurationException: No attribute named "log-level" is associated with the configuration element "category" at null:39:-1
        at org.apache.avalon.framework.configuration.DefaultConfiguration.getAttribute(DefaultConfiguration.java:279)
        at org.apache.avalon.excalibur.logger.LogKitLoggerManager.setupLoggers(LogKitLoggerManager.java:347)
        at org.apache.avalon.excalibur.logger.LogKitLoggerManager.configure(LogKitLoggerManager.java:242)
        at org.apache.avalon.framework.container.ContainerUtil.configure(ContainerUtil.java:240)
        at org.apache.avalon.fortress.util.ContextManager.initializeLoggerManager(ContextManager.java:918)
        at org.apache.avalon.fortress.util.ContextManager.initialize(ContextManager.java:269)
        at org.apache.avalon.fortress.impl.DefaultContainerManager.getInitializedContextManager(DefaultContainerManager.java:121)
        at org.apache.avalon.fortress.impl.DefaultContainerManager.<init>(DefaultContainerManager.java:106)
        at ws.atagunov.fortress.director.DirectorPowerServlet.createPack(DirectorPowerServlet.java:265)
        at ws.atagunov.fortress.director.DirectorPowerServlet$1.create(DirectorPowerServlet.java:104)
        at ws.atagunov.collections.util.UpdateableBox.get(UpdateableBox.java:237)
        at ws.atagunov.fortress.director.DirectorPowerServlet.doGet(DirectorPowerServlet.java:423)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java)
        at org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java:574)
        at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
        at org.apache.tomcat.core.Handler.service(Handler.java:235)
        at org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:485)
        at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:917)
        at org.apache.tomcat.core.ContextManager.service(ContextManager.java:833)
        at org.apache.tomcat.modules.server.Http10Interceptor.processConnection(Http10Interceptor.java:176)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:494)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:516)
        at java.lang.Thread.run(Thread.java:536)

2003-06-04 18:31:59 - /tst: director-power: [FATAL ERROR] Initialization failed - java.lang.NullPointerException
        at org.apache.avalon.fortress.impl.DefaultContainerManager.createContainer(DefaultContainerManager.java:174)
        at org.apache.avalon.fortress.impl.DefaultContainerManager.initializeContainer(DefaultContainerManager.java:167)
        at org.apache.avalon.fortress.impl.DefaultContainerManager.initialize(DefaultContainerManager.java:160)
        at ws.atagunov.fortress.director.DirectorPowerServlet.createPack(DirectorPowerServlet.java:267)
        at ws.atagunov.fortress.director.DirectorPowerServlet$1.create(DirectorPowerServlet.java:104)
        at ws.atagunov.collections.util.UpdateableBox.get(UpdateableBox.java:237)
        at ws.atagunov.fortress.director.DirectorPowerServlet.doGet(DirectorPowerServlet.java:423)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java)
        at org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java:574)
        at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
        at org.apache.tomcat.core.Handler.service(Handler.java:235)
        at org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:485)
        at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:917)
        at org.apache.tomcat.core.ContextManager.service(ContextManager.java:833)
        at org.apache.tomcat.modules.server.Http10Interceptor.processConnection(Http10Interceptor.java:176)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:494)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:516)
        at java.lang.Thread.run(Thread.java:536)

Patch:

--- DefaultContainerManager.orig        2003-06-04 14:28:39.000000000 +0400
+++ DefaultContainerManager.java        2003-06-04 18:53:14.000000000 +0400
@@ -95,13 +95,13 @@
             createLoggerFromContext( m_contextManager.getContainerManagerContext() ) : logger );
     }
 
-    public DefaultContainerManager( final Context initParameters )
+    public DefaultContainerManager( final Context initParameters ) throws Exception
     {
         this( initParameters, null );
     }
 
     public DefaultContainerManager( final Context initParameters,
-                                    final Logger logger )
+                                    final Logger logger ) throws Exception
     {
         this( getInitializedContextManager( initParameters, logger ), logger );
     }
@@ -112,28 +112,12 @@
      *  super constructor has been executed.
      */
     private static ContextManager getInitializedContextManager( final Context initParameters,
-                                                                Logger logger )
+                                                                Logger logger ) throws Exception
     {
         // The context manager will use an internal coonsole logger if logger is null.
         final ContextManager contextManager = new ContextManager( initParameters, logger );
-        try
-        {
-            contextManager.initialize();
-            return contextManager;
-        }
-        catch ( Exception e )
-        {
-            if ( logger == null )
-            {
-                logger = new ConsoleLogger( ConsoleLogger.LEVEL_INFO );
-            }
-            logger.fatalError( "Unable to initialize the contextManager.", e );
-
-            // What should happen now.  There needs to be a failure mode here.
-            // As is, this will result in an NPE, but it can't really be allowed
-            // to continue without having been initialized.
-            return null;
-        }
+        contextManager.initialize();
+        return contextManager;
     }
 
     protected Logger createLoggerFromContext( final Context initParameters )


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