You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ca...@apache.org on 2007/10/22 22:24:31 UTC

svn commit: r587235 - in /logging/log4j/trunk: src/changes/changes.xml src/main/java/org/apache/log4j/xml/DOMConfigurator.java tests/src/java/org/apache/log4j/xml/DOMTestCase.java

Author: carnold
Date: Mon Oct 22 13:24:30 2007
New Revision: 587235

URL: http://svn.apache.org/viewvc?rev=587235&view=rev
Log:
Bug 43325: Subst-mechanism in DOMConfigurator broken

Modified:
    logging/log4j/trunk/src/changes/changes.xml
    logging/log4j/trunk/src/main/java/org/apache/log4j/xml/DOMConfigurator.java
    logging/log4j/trunk/tests/src/java/org/apache/log4j/xml/DOMTestCase.java

Modified: logging/log4j/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/changes/changes.xml?rev=587235&r1=587234&r2=587235&view=diff
==============================================================================
--- logging/log4j/trunk/src/changes/changes.xml (original)
+++ logging/log4j/trunk/src/changes/changes.xml Mon Oct 22 13:24:30 2007
@@ -22,6 +22,7 @@
   <body>
 
     <release version="1.2.16" date="TBD" description="">
+       <action action="fix" issue="43325">Subst-mechanism in DOMConfigurator broken.</action>
        <action action="fix" issue="43374">DailyRollingFileAppender may lose messages during failed rollover attempts.</action>
        <action action="fix" issue="43312">Fix mangled source-repository.html.</action>
        <action action="fix" issue="43387">Minor documentation changes.</action>

Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/xml/DOMConfigurator.java
URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/xml/DOMConfigurator.java?rev=587235&r1=587234&r2=587235&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/xml/DOMConfigurator.java (original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/xml/DOMConfigurator.java Mon Oct 22 13:24:30 2007
@@ -34,7 +34,6 @@
 import org.apache.log4j.spi.Filter;
 import org.apache.log4j.spi.LoggerFactory;
 import org.apache.log4j.spi.LoggerRepository;
-import org.apache.log4j.spi.OptionHandler;
 import org.apache.log4j.spi.RendererSupport;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -615,7 +614,10 @@
 
   protected
   void setParameter(Element elem, PropertySetter propSetter) {
-      setParameter(elem, propSetter, props);
+      String name = subst(elem.getAttribute(NAME_ATTR));
+      String value = (elem.getAttribute(VALUE_ATTR));
+      value = subst(OptionConverter.convertSpecialChars(value));
+      propSetter.setProperty(name, value);
   }
 
 

Modified: logging/log4j/trunk/tests/src/java/org/apache/log4j/xml/DOMTestCase.java
URL: http://svn.apache.org/viewvc/logging/log4j/trunk/tests/src/java/org/apache/log4j/xml/DOMTestCase.java?rev=587235&r1=587234&r2=587235&view=diff
==============================================================================
--- logging/log4j/trunk/tests/src/java/org/apache/log4j/xml/DOMTestCase.java (original)
+++ logging/log4j/trunk/tests/src/java/org/apache/log4j/xml/DOMTestCase.java Mon Oct 22 13:24:30 2007
@@ -19,7 +19,9 @@
 
 import junit.framework.TestCase;
 import org.apache.log4j.Appender;
+import org.apache.log4j.FileAppender;
 import org.apache.log4j.Level;
+import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 import org.apache.log4j.VectorAppender;
 import org.apache.log4j.spi.ErrorHandler;
@@ -307,6 +309,27 @@
   public void testConfigureAndWatch() throws Exception {
     DOMConfigurator.configureAndWatch("input/xml/DOMTestCase1.xml");
     assertNotNull(Logger.getRootLogger().getAppender("A1"));
+  }
+
+
+    /**
+     * This test checks that the subst method of an extending class
+     * is checked when evaluating parameters.  See bug 43325.
+     *
+     */
+  public void testOverrideSubst() {
+      DOMConfigurator configurator = new DOMConfigurator() {
+          protected String subst(final String value) {
+              if ("output/temp.A1".equals(value)) {
+                  return "output/subst-test.A1";
+              }
+              return value;
+          }
+      };
+      configurator.doConfigure("input/xml/DOMTestCase1.xml", LogManager.getLoggerRepository());
+      FileAppender a1 = (FileAppender) Logger.getRootLogger().getAppender("A1");
+      String file = a1.getFile();
+      assertEquals("output/subst-test.A1", file);
   }
 
 }



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