Author: oheger
Date: Mon Jul  9 12:37:37 2007
New Revision: 554746

URL: http://svn.apache.org/viewvc?view=rev&rev=554746
Log:
CONFIGURATION-282: Initialize default expression engine for 
HierarchicalConfiguration lazily if it is null. This should avoid NPEs after 
redeployment.

Modified:
    
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/HierarchicalConfiguration.java
    jakarta/commons/proper/configuration/trunk/xdocs/changes.xml

Modified: 
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/HierarchicalConfiguration.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/HierarchicalConfiguration.java?view=diff&rev=554746&r1=554745&r2=554746
==============================================================================
--- 
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/HierarchicalConfiguration.java
 (original)
+++ 
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/HierarchicalConfiguration.java
 Mon Jul  9 12:37:37 2007
@@ -151,7 +151,7 @@
     private static final long serialVersionUID = 3373812230395363192L;
 
     /** Stores the default expression engine to be used for new objects.*/
-    private static ExpressionEngine defaultExpressionEngine = new 
DefaultExpressionEngine();
+    private static ExpressionEngine defaultExpressionEngine;
 
     /** Stores the root node of this configuration. This field is required for
      * backwards compatibility only.
@@ -258,8 +258,12 @@
      * @return the default expression engine
      * @since 1.3
      */
-    public static ExpressionEngine getDefaultExpressionEngine()
+    public static synchronized ExpressionEngine getDefaultExpressionEngine()
     {
+        if (defaultExpressionEngine == null)
+        {
+            defaultExpressionEngine = new DefaultExpressionEngine();
+        }
         return defaultExpressionEngine;
     }
 
@@ -272,7 +276,7 @@
      * @param engine the new default expression engine
      * @since 1.3
      */
-    public static void setDefaultExpressionEngine(ExpressionEngine engine)
+    public static synchronized void 
setDefaultExpressionEngine(ExpressionEngine engine)
     {
         if (engine == null)
         {

Modified: jakarta/commons/proper/configuration/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/xdocs/changes.xml?view=diff&rev=554746&r1=554745&r2=554746
==============================================================================
--- jakarta/commons/proper/configuration/trunk/xdocs/changes.xml (original)
+++ jakarta/commons/proper/configuration/trunk/xdocs/changes.xml Mon Jul  9 
12:37:37 2007
@@ -23,6 +23,11 @@
 
   <body>
     <release version="1.5-SNAPSHOT" date="in SVN" description="">
+      <action dev="oheger" type="fix" issue="CONFIGURATION-282">
+        The default expression engine used by HierarchicalConfiguration
+        instances is now lazily initialized. This avoids NullPointerExceptions
+        in certain server environments after a redeploy.
+      </action>
       <action dev="oheger" type="fix" issue="CONFIGURATION-281">
         Cycles in the JNDI tree no longer cause a stack overflow in
         JNDIConfiguration.



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

Reply via email to