dev@javaserverfaces.java.net

[REVIEW] Proposed fix for issue 229 and startup enhancement for ConfigureListener

From: Ryan Lubke <Ryan.Lubke_at_Sun.COM>
Date: Tue, 07 Feb 2006 10:32:38 -0800

See attached change bundle.

Issue 229: https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=229


SECTION: Modified Files
----------------------------
M jsf-api/src/javax/faces/component/UIComponentBase.java
M jsf-api/test/javax/faces/component/NamingContainerTestCase.java
  - fix/test for issue 229 (see issue for details)
    * check the passed ID against the ID of base if
      none of the children have the provided ID. This
      allows nested naming containers with the same ID to
      be property traversed.

M jsf-ri/build.xml
  - Use replace task to inject impl version into
    LogStrings.properties

M jsf-ri/src/com/sun/faces/LogStrings.properties
  - Add new message to be displayed on servlet context
    start up

M jsf-ri/src/com/sun/faces/config/ConfigureListener.java
  - Display Implementation name and version info for the
    invoking context



SECTION: Diffs
----------------------------
Index: jsf-api/src/javax/faces/component/UIComponentBase.java
===================================================================
RCS file: /cvs/javaserverfaces-sources/jsf-api/src/javax/faces/component/UIComponentBase.java,v
retrieving revision 1.124
diff -u -r1.124 UIComponentBase.java
--- jsf-api/src/javax/faces/component/UIComponentBase.java 6 Feb 2006 21:44:55 -0000 1.124
+++ jsf-api/src/javax/faces/component/UIComponentBase.java 7 Feb 2006 18:26:29 -0000
@@ -676,10 +676,7 @@
      */
     private UIComponent findComponent(UIComponent base, String id) {
 
- // Is the "base" component itself the match we are looking for?
- if (id.equals(base.getId())) {
- return (base);
- }
+
 
         // Search through our facets and children
         UIComponent kid = null;
@@ -697,6 +694,12 @@
                 break;
             }
         }
+
+ // Is the "base" component itself the match we are looking for?
+ if (result == null && id.equals(base.getId())) {
+ return (base);
+ }
+
         return (result);
 
     }
Index: jsf-api/test/javax/faces/component/NamingContainerTestCase.java
===================================================================
RCS file: /cvs/javaserverfaces-sources/jsf-api/test/javax/faces/component/NamingContainerTestCase.java,v
retrieving revision 1.6
diff -u -r1.6 NamingContainerTestCase.java
--- jsf-api/test/javax/faces/component/NamingContainerTestCase.java 22 Aug 2005 22:08:14 -0000 1.6
+++ jsf-api/test/javax/faces/component/NamingContainerTestCase.java 7 Feb 2006 18:26:29 -0000
@@ -143,6 +143,61 @@
         assertEquals("/a/:b:g/b/g", TestNamingContainer.trace());
 
     }
+
+ // Test nested NamingContainer callbacks
+ public void testNested2() {
+
+ TestNamingContainer a = new TestNamingContainer(); a.setId("a");
+ TestNamingContainer b = new TestNamingContainer(); b.setId("b");
+ TestNamingContainer d = new TestNamingContainer(); d.setId("b");
+ UIPanel e = new UIPanel(); e.setId("e");
+ UIPanel g = new UIPanel(); g.setId("g");
+ a.getChildren().add(b);
+ b.getChildren().add(d);
+ b.getChildren().add(g);
+ d.getChildren().add(e);
+
+ TestNamingContainer.trace(null);
+ assertTrue(a == a.findComponent("a"));
+ assertEquals("/a/a", TestNamingContainer.trace());
+
+ TestNamingContainer.trace(null);
+ assertTrue(a == a.findComponent(":a"));
+ assertEquals("/a/:a", TestNamingContainer.trace());
+
+ TestNamingContainer.trace(null);
+ assertTrue(b == a.findComponent("b"));
+ assertEquals("/a/b", TestNamingContainer.trace());
+
+ TestNamingContainer.trace(null);
+ assertTrue(b == a.findComponent(":b"));
+ assertEquals("/a/:b", TestNamingContainer.trace());
+
+ TestNamingContainer.trace(null);
+ assertTrue(d == a.findComponent("b:b"));
+ assertEquals("/a/b:b/b/b", TestNamingContainer.trace());
+
+ TestNamingContainer.trace(null);
+ assertTrue(d == a.findComponent(":b:b"));
+ assertEquals("/a/:b:b/b/b", TestNamingContainer.trace());
+
+ TestNamingContainer.trace(null);
+ assertTrue(e == a.findComponent("b:b:e"));
+ assertEquals("/a/b:b:e/b/b:e/b/e", TestNamingContainer.trace());
+
+ TestNamingContainer.trace(null);
+ assertTrue(e == a.findComponent(":b:b:e"));
+ assertEquals("/a/:b:b:e/b/b:e/b/e", TestNamingContainer.trace());
+
+ TestNamingContainer.trace(null);
+ assertTrue(g == a.findComponent("b:g"));
+ assertEquals("/a/b:g/b/g", TestNamingContainer.trace());
+
+ TestNamingContainer.trace(null);
+ assertTrue(g == a.findComponent(":b:g"));
+ assertEquals("/a/:b:g/b/g", TestNamingContainer.trace());
+
+ }
 
 
     // Test standard NamingContainer functionality
Index: jsf-ri/build.xml
===================================================================
RCS file: /cvs/javaserverfaces-sources/jsf-ri/build.xml,v
retrieving revision 1.203
diff -u -r1.203 build.xml
--- jsf-ri/build.xml 27 Jan 2006 16:02:37 -0000 1.203
+++ jsf-ri/build.xml 7 Feb 2006 18:26:29 -0000
@@ -222,6 +222,13 @@
             <fileset dir="${source.dir}" includes="**/*.properties"/>
             <fileset dir="${tools.dir}/src" includes="**/*.properties"/>
         </copy>
+
+ <!-- Massage the version number into LogStrings.properties -->
+ <replace dir="${build.classes.dir}/com/sun/faces/"
+ token="|version.string|"
+ value="${impl.version}">
+ <include name="LogStrings*.properties"/>
+ </replace>
 
         <copy todir="${build.classes.dir}/com/sun/faces">
             <fileset dir="${api.dir}/doc">
Index: jsf-ri/src/com/sun/faces/LogStrings.properties
===================================================================
RCS file: /cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/LogStrings.properties,v
retrieving revision 1.5
diff -u -r1.5 LogStrings.properties
--- jsf-ri/src/com/sun/faces/LogStrings.properties 13 Jan 2006 19:19:23 -0000 1.5
+++ jsf-ri/src/com/sun/faces/LogStrings.properties 7 Feb 2006 18:26:29 -0000
@@ -35,6 +35,7 @@
 jsf.illegal_view_id_error=JSF1010: Illegal view ID {0}. The ID must begin with ''/''
 jsf.navigation.no_matching_outcome="JSF1012: Unable to find matching navigation case from view ID ''{0}'' for outcome ''{1}''
 jsf.navigation.no_matching_outcome_action="JSF1013: Unable to find matching navigation case from view ID ''{0}'' for outcome ''{1}'' and action ''{2}''
-jsf.util_no_annotation_processed="JSF1014: Unable to load annotation class ''{0}''. As a result, this annotation will not be processed.
+jsf.util_no_annotation_processed=JSF1014: Unable to load annotation class ''{0}''. As a result, this annotation will not be processed.
+jsf.config.listener.version=Initializing Sun''s JavaServer Faces implementation (|version.string|) for context ''{0}''
 # core tags
 jsf.core.tags.eval_result_not_expected_type=JSF1011: Evaluation of expression for attribute ''{0}'' resulted in unexpected type. Expected {1}, but received {2}.
Index: jsf-ri/src/com/sun/faces/config/ConfigureListener.java
===================================================================
RCS file: /cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/config/ConfigureListener.java,v
retrieving revision 1.58
diff -u -r1.58 ConfigureListener.java
--- jsf-ri/src/com/sun/faces/config/ConfigureListener.java 11 Jan 2006 15:28:03 -0000 1.58
+++ jsf-ri/src/com/sun/faces/config/ConfigureListener.java 7 Feb 2006 18:26:29 -0000
@@ -265,7 +265,7 @@
      * <p>The <code>Log</code> instance for this class.</p>
      */
     // Log instance for this class
- private static Logger logger = Util.getLogger(Util.FACES_LOGGER
+ private static final Logger LOGGER = Util.getLogger(Util.FACES_LOGGER
             + Util.CONFIG_LOGGER);
 
 
@@ -320,7 +320,7 @@
                 associate.handlePreDestroy(null, Scope.REQUEST);
             }
             catch (Throwable e) {
- logger.info(e.getMessage());
+ LOGGER.info(e.getMessage());
             }
         }
     }
@@ -345,7 +345,7 @@
                 associate.handlePreDestroy(null, Scope.SESSION);
             }
             catch (Throwable e) {
- logger.info(e.getMessage());
+ LOGGER.info(e.getMessage());
             }
         }
     
@@ -355,21 +355,27 @@
         
         ServletContext context = sce.getServletContext();
 
+ if (LOGGER.isLoggable(Level.INFO)) {
+ LOGGER.log(Level.INFO,
+ "jsf.config.listener.version",
+ context.getServletContextName());
+ }
+
         // Check to see if the FacesServlet is present in the
         // web.xml. If it is, perform faces configuration as normal,
         // otherwise, simply return.
         if (!isFeatureEnabled(context, FORCE_LOAD_CONFIG)) {
             WebXmlProcessor processor = new WebXmlProcessor(context);
             if (!processor.isFacesServletPresent()) {
- if (logger.isLoggable(Level.FINE)) {
- logger.fine("No FacesServlet found in deployment descriptor -" +
+ if (LOGGER.isLoggable(Level.FINE)) {
+ LOGGER.fine("No FacesServlet found in deployment descriptor -" +
                             " bypassing configuration.");
                 }
                 return;
             }
 
- if (logger.isLoggable(Level.FINE)) {
- logger.fine("FacesServlet found in deployment descriptor -" +
+ if (LOGGER.isLoggable(Level.FINE)) {
+ LOGGER.fine("FacesServlet found in deployment descriptor -" +
                     " processing configuration.");
             }
         }
@@ -393,8 +399,8 @@
             }
         }
         catch (Exception e) {
- if (logger.isLoggable(Level.FINE)) {
- logger.fine("Can't query for test environment");
+ if (LOGGER.isLoggable(Level.FINE)) {
+ LOGGER.fine("Can't query for test environment");
             }
         }
 
@@ -403,8 +409,8 @@
             isFeatureEnabled(context, ENABLE_HTML_TLV));
 
         URL url = null;
- if (logger.isLoggable(Level.FINE)) {
- logger.fine("contextInitialized(" + context.getServletContextName()
+ if (LOGGER.isLoggable(Level.FINE)) {
+ LOGGER.fine("contextInitialized(" + context.getServletContextName()
                       + ")");
         }
 
@@ -523,8 +529,8 @@
     public void contextDestroyed(ServletContextEvent sce) {
 
         ServletContext context = sce.getServletContext();
- if (logger.isLoggable(Level.FINE)) {
- logger.fine("contextDestroyed(" + context.getServletContextName()
+ if (LOGGER.isLoggable(Level.FINE)) {
+ LOGGER.fine("contextDestroyed(" + context.getServletContextName()
                       + ')');
         }
         ApplicationAssociate associate =
@@ -534,7 +540,7 @@
                 associate.handlePreDestroy(null, Scope.APPLICATION);
             }
             catch (Throwable e) {
- logger.info(e.getMessage());
+ LOGGER.info(e.getMessage());
             }
         }
 
@@ -653,9 +659,9 @@
             associate.handlePreDestroy(beanName, scope);
         } catch (InvocationTargetException ite) {
             Throwable root = ite.getTargetException();
- logger.info(root.getMessage());
+ LOGGER.info(root.getMessage());
         } catch (Exception e) {
- logger.info(e.getMessage());
+ LOGGER.info(e.getMessage());
         }
 
     } // END handleAttributeEvent
@@ -728,16 +734,16 @@
 
         value = config.getMessageBundle();
         if (value != null) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setMessageBundle(" + value + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setMessageBundle(" + value + ')');
             }
             application.setMessageBundle(value);
         }
 
         value = config.getDefaultRenderKitId();
         if (value != null) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setDefaultRenderKitId(" + value + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setDefaultRenderKitId(" + value + ')');
             }
             application.setDefaultRenderKitId(value);
         }
@@ -747,8 +753,8 @@
         values = config.getActionListeners();
         if ((values != null) && (values.length > 0)) {
             for (int i = 0; i < values.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setActionListener(" + values[i] + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setActionListener(" + values[i] + ')');
                 }
                 instance = Util.createInstance
                     (values[i], ActionListener.class,
@@ -762,8 +768,8 @@
         values = config.getNavigationHandlers();
         if ((values != null) && (values.length > 0)) {
             for (int i = 0; i < values.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setNavigationHandler(" + values[i] + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setNavigationHandler(" + values[i] + ')');
                 }
                 instance = Util.createInstance
                     (values[i], NavigationHandler.class,
@@ -784,8 +790,8 @@
             // further in the chain.
             prevInChain = new DummyPropertyResolverImpl();
             for (int i = 0; i < values.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setPropertyResolver(" + values[i] + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setPropertyResolver(" + values[i] + ')');
                 }
                 instance = Util.createInstance(values[i],
                                                PropertyResolver.class,
@@ -800,8 +806,8 @@
         values = config.getELResolvers();
         if ((values != null) && (values.length > 0)) {
             for (int i = 0; i < values.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setELResolver(" + values[i] + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setELResolver(" + values[i] + ')');
                 }
                 instance = Util.createInstance(values[i]);
                 if (elResolversFromFacesConfig == null) {
@@ -816,8 +822,8 @@
         values = config.getStateManagers();
         if ((values != null) && (values.length > 0)) {
             for (int i = 0; i < values.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setStateManager(" + values[i] + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setStateManager(" + values[i] + ')');
                 }
                 instance = Util.createInstance
                     (values[i], StateManager.class,
@@ -838,8 +844,8 @@
             // further in the chain.
             prevInChain = new DummyVariableResolverImpl();
             for (int i = 0; i < values.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setVariableResolver(" + values[i] + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setVariableResolver(" + values[i] + ')');
                 }
                 instance = Util.createInstance
                         (values[i], VariableResolver.class, prevInChain);
@@ -852,8 +858,8 @@
         values = config.getViewHandlers();
         if ((values != null) && (values.length > 0)) {
             for (int i = 0; i < values.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setViewHandler(" + values[i] + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setViewHandler(" + values[i] + ')');
                 }
                 instance = Util.createInstance
                     (values[i], ViewHandler.class,
@@ -882,8 +888,8 @@
         Application application = application();
 
         for (int i = 0; i < config.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("addComponent(" +
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("addComponent(" +
                           config[i].getComponentType() + ',' +
                           config[i].getComponentClass() + ')');
             }
@@ -906,8 +912,8 @@
 
         // at a minimum, configure the primitive converters
         for (i = 0, len = PRIM_CLASSES_TO_CONVERT.length; i < len; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("addConverterByClass(" +
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("addConverterByClass(" +
                           PRIM_CLASSES_TO_CONVERT[i] + ',' +
                           CONVERTERS_FOR_PRIMS[i] + ')');
             }
@@ -921,16 +927,16 @@
 
         for (i = 0, len = config.length; i < len; i++) {
             if (config[i].getConverterId() != null) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("addConverterById(" +
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("addConverterById(" +
                               config[i].getConverterId() + ',' +
                               config[i].getConverterClass() + ')');
                 }
                 application.addConverter(config[i].getConverterId(),
                                          config[i].getConverterClass());
             } else {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("addConverterByClass(" +
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("addConverterByClass(" +
                               config[i].getConverterForClass() + ',' +
                               config[i].getConverterClass() + ')');
                 }
@@ -962,8 +968,8 @@
         while (iter.hasNext()) {
             value = iter.next();
             if (value != null) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setApplicationFactory(" + value + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setApplicationFactory(" + value + ')');
                 }
                 FactoryFinder.setFactory(FactoryFinder.APPLICATION_FACTORY,
                                          value);
@@ -974,8 +980,8 @@
         while (iter.hasNext()) {
             value = iter.next();
             if (value != null) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setFacesContextFactory(" + value + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setFacesContextFactory(" + value + ')');
                 }
                 FactoryFinder.setFactory(FactoryFinder.FACES_CONTEXT_FACTORY,
                                          value);
@@ -986,8 +992,8 @@
         while (iter.hasNext()) {
             value = iter.next();
             if (value != null) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setLifecycleFactory(" + value + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setLifecycleFactory(" + value + ')');
                 }
                 FactoryFinder.setFactory(FactoryFinder.LIFECYCLE_FACTORY,
                                          value);
@@ -998,8 +1004,8 @@
         while (iter.hasNext()) {
             value = iter.next();
             if (value != null) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setRenderKitFactory(" + value + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setRenderKitFactory(" + value + ')');
                 }
                 FactoryFinder.setFactory(FactoryFinder.RENDER_KIT_FACTORY,
                                          value);
@@ -1032,8 +1038,8 @@
             Lifecycle lifecycle =
                     factory.getLifecycle(lifecycleId);
             for (int i = 0; i < listeners.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("addPhaseListener(" + listeners[i] + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("addPhaseListener(" + listeners[i] + ')');
                 }
                 try {
                     Class clazz = Util.loadClass(listeners[i], this);
@@ -1042,7 +1048,7 @@
                     Object [] args = { "phase-listener: " + listeners[i] };
                     String message =
                         MessageUtils.getExceptionMessageString(MessageUtils.CANT_INSTANTIATE_CLASS_ERROR_MESSAGE_ID, args);
- logger.log(Level.SEVERE, message);
+ LOGGER.log(Level.SEVERE, message);
                     throw e;
                 }
             }
@@ -1067,8 +1073,8 @@
 
         value = config.getDefaultLocale();
         if (value != null) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("setDefaultLocale(" + value + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("setDefaultLocale(" + value + ')');
             }
             application.setDefaultLocale
                 (Util.getLocaleFromString(value));
@@ -1078,8 +1084,8 @@
         if ((values != null) && (values.length > 0)) {
             List<Locale> locales = new ArrayList<Locale>();
             for (int i = 0; i < values.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("addSupportedLocale(" + values[i] + ')');
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("addSupportedLocale(" + values[i] + ')');
                 }
                 locales.add(Util.getLocaleFromString(values[i]));
             }
@@ -1110,8 +1116,8 @@
         }
 
         for (int i = 0; i < config.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("addManagedBean(" +
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("addManagedBean(" +
                           config[i].getManagedBeanName() + ',' +
                           config[i].getManagedBeanClass() + ')');
             }
@@ -1153,14 +1159,14 @@
         }
 
         for (int i = 0; i < config.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("addNavigationRule(" +
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("addNavigationRule(" +
                           config[i].getFromViewId() + ')');
             }
             NavigationCaseBean[] ncb = config[i].getNavigationCases();
             for (int j = 0; j < ncb.length; j++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("addNavigationCase(" +
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("addNavigationCase(" +
                               ncb[j].getFromAction() + ',' +
                               ncb[j].getFromOutcome() + ',' +
                               ncb[j].isRedirect() + ',' +
@@ -1215,8 +1221,8 @@
         }
 
         for (int i = 0; i < config.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("addRenderer(" +
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("addRenderer(" +
                           config[i].getComponentFamily() + ',' +
                           config[i].getRendererType() + ',' +
                           config[i].getRendererClass() + ')');
@@ -1236,7 +1242,7 @@
                         " renderer-class: " + config[i].getRendererClass() };
                 String message =
                         MessageUtils.getExceptionMessageString(MessageUtils.CANT_INSTANTIATE_CLASS_ERROR_MESSAGE_ID, args);
- logger.log(Level.SEVERE, message);
+ LOGGER.log(Level.SEVERE, message);
                 throw e;
             }
         }
@@ -1262,8 +1268,8 @@
             RenderKit rk = rkFactory.getRenderKit
                 (null, config[i].getRenderKitId());
             if (rk == null) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("createRenderKit(" +
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("createRenderKit(" +
                               config[i].getRenderKitId() + ',' +
                               config[i].getRenderKitClass() + ')');
                 }
@@ -1283,13 +1289,13 @@
                             " render-kit-class: " + config[i].getRenderKitClass() };
                     String message =
                         MessageUtils.getExceptionMessageString(MessageUtils.CANT_INSTANTIATE_CLASS_ERROR_MESSAGE_ID, args);
- logger.log(Level.SEVERE, message);
+ LOGGER.log(Level.SEVERE, message);
                     throw e;
                             
                 }
             } else {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("getRenderKit(" +
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("getRenderKit(" +
                               config[i].getRenderKitId() + ')');
                 }
             }
@@ -1321,8 +1327,8 @@
                               "base-name:" + baseName +
                               "var:" + config[i].getVar();
                 // PENDING(edburns): I18N all levels above info
- if (logger.isLoggable(Level.WARNING)) {
- logger.finer(message);
+ if (LOGGER.isLoggable(Level.WARNING)) {
+ LOGGER.finer(message);
                 }
                 throw new IllegalArgumentException(message);
             }
@@ -1346,8 +1352,8 @@
         Application application = application();
 
         for (int i = 0; i < config.length; i++) {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("addValidator(" +
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("addValidator(" +
                           config[i].getValidatorId() + ',' +
                           config[i].getValidatorClass() + ')');
             }
@@ -1374,7 +1380,7 @@
             Object [] args = { "Digester" };
             String message =
                    MessageUtils.getExceptionMessageString(MessageUtils.CANT_INSTANTIATE_CLASS_ERROR_MESSAGE_ID, args);
- logger.log(Level.SEVERE, message);
+ LOGGER.log(Level.SEVERE, message);
             throw e;
         }
 
@@ -1420,13 +1426,13 @@
         synchronized (loaders) {
             if (!loaders.contains(cl)) {
                 loaders.add(cl);
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("Initializing this webapp");
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("Initializing this webapp");
                 }
                 return false;
             } else {
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("Listener already completed for this webapp");
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("Listener already completed for this webapp");
                 }
                 return true;
             }
@@ -1448,8 +1454,8 @@
     private void verifyObjects(ServletContext context, FacesConfigBean fcb)
         throws FacesException {
 
- if (logger.isLoggable(Level.FINER)) {
- logger.finer("Verifying application objects");
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("Verifying application objects");
         }
 
         ApplicationFactory af = (ApplicationFactory)
@@ -1544,13 +1550,13 @@
                     "cannot be created. See your web application logs " +
                     "for details.";
             }
- if (logger.isLoggable(Level.WARNING)) {
- logger.warning(message);
+ if (LOGGER.isLoggable(Level.WARNING)) {
+ LOGGER.warning(message);
             }
             throw new FacesException(message);
         } else {
- if (logger.isLoggable(Level.FINE)) {
- logger.fine(
+ if (LOGGER.isLoggable(Level.FINE)) {
+ LOGGER.fine(
                     "Application object verification completed successfully");
             }
         }
@@ -1568,8 +1574,8 @@
      */
     protected void parse(Digester digester, URL url, FacesConfigBean fcb) {
 
- if (logger.isLoggable(Level.FINE)) {
- logger.fine("parse(" + url.toExternalForm() + ')');
+ if (LOGGER.isLoggable(Level.FINE)) {
+ LOGGER.fine("parse(" + url.toExternalForm() + ')');
         }
 
         URLConnection conn = null;
@@ -1638,8 +1644,8 @@
             if (!(paramValue.equals("true")) &&
                 !(paramValue.equals("false"))) {
 
- if (logger.isLoggable(Level.WARNING)) {
- logger.warning(MessageUtils.getExceptionMessageString(
+ if (LOGGER.isLoggable(Level.WARNING)) {
+ LOGGER.warning(MessageUtils.getExceptionMessageString(
                         MessageUtils.INVALID_INIT_PARAM_ERROR_MESSAGE_ID,
                         new Object[] { paramValue, paramName }));
                 }
@@ -1675,8 +1681,8 @@
             jspFactory.getClass().getMethod("getJspApplicationContext", new Class[] {
                 ServletContext.class });
         } catch (NoSuchMethodException nsme) {
- if (logger.isLoggable(Level.WARNING)) {
- logger.warning(MessageUtils.getExceptionMessageString(MessageUtils.INCORRECT_JSP_VERSION_ID,
+ if (LOGGER.isLoggable(Level.WARNING)) {
+ LOGGER.warning(MessageUtils.getExceptionMessageString(MessageUtils.INCORRECT_JSP_VERSION_ID,
                 new Object [] { "getJspApplicationContext" }));
             }
             return false;
@@ -1708,7 +1714,7 @@
                         elFactType).newInstance();
                 appAssociate.setExpressionFactory(factory);
             } catch (Exception e) {
- logger.log(Level.SEVERE, "Error Instantiating ExpressionFactory", e);
+ LOGGER.log(Level.SEVERE, "Error Instantiating ExpressionFactory", e);
             }
         
         } else {
@@ -2083,8 +2089,8 @@
                 // processing the web.xml, set facesServletFound to true to
                 // default to our previous behavior of processing the faces
                 // configuration.
- if (logger.isLoggable(Level.WARNING)) {
- logger.warning("Unable to process deployment descriptor for" +
+ if (LOGGER.isLoggable(Level.WARNING)) {
+ LOGGER.warning("Unable to process deployment descriptor for" +
                         " context '" + context.getServletContextName() + '\'');
                 }
                 facesServletPresent = true;