carnold     2005/03/06 21:35:19

  Modified:    src/java/org/apache/log4j/xml DOMConfigurator.java
               tests/src/java/org/apache/log4j/xml DOMTest.java
  Added:       tests/input/xml DOMTest3.xml
               tests/witness/xml dom.A1.3 dom.A2.3
  Log:
  Bug 33870: Restore DOMConfigurator.doConfigure(Element)
  
  Revision  Changes    Path
  1.73      +125 -8    
logging-log4j/src/java/org/apache/log4j/xml/DOMConfigurator.java
  
  Index: DOMConfigurator.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/src/java/org/apache/log4j/xml/DOMConfigurator.java,v
  retrieving revision 1.72
  retrieving revision 1.73
  diff -u -r1.72 -r1.73
  --- DOMConfigurator.java      9 Jan 2005 13:04:17 -0000       1.72
  +++ DOMConfigurator.java      7 Mar 2005 05:35:18 -0000       1.73
  @@ -1,12 +1,12 @@
   /*
  - * Copyright 1999,2004 The Apache Software Foundation.
  - * 
  + * Copyright 1999,2005 The Apache Software Foundation.
  + *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
  - * 
  + *
    *      http://www.apache.org/licenses/LICENSE-2.0
  - * 
  + *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  @@ -16,14 +16,26 @@
   
   package org.apache.log4j.xml;
   
  +import org.apache.log4j.LogManager;
  +import org.apache.log4j.joran.JoranConfigurator;
  +import org.apache.log4j.spi.LoggerRepository;
  +
  +import org.w3c.dom.Element;
  +import org.w3c.dom.NamedNodeMap;
  +import org.w3c.dom.Node;
  +
  +import org.xml.sax.SAXException;
  +import org.xml.sax.helpers.AttributesImpl;
  +import org.xml.sax.helpers.DefaultHandler;
  +
   import java.net.URL;
   
  -import org.apache.log4j.*;
  -import org.apache.log4j.joran.JoranConfigurator;
  +import javax.xml.parsers.SAXParser;
   
   
   // Contributors:   Mark Womack
  -//                 Arun Katkere 
  +//                 Arun Katkere
  +//                 Curt Arnold
   
   /**
      Use this class to initialize the log4j environment using a DOM tree.
  @@ -50,7 +62,6 @@
      @deprecated Replaced by the much more flexible [EMAIL PROTECTED] 
org.apache.log4j.joran.JoranConfigurator}.
      @since 0.8.3 */
   public class DOMConfigurator extends JoranConfigurator {
  -  
     public static void configure(String file) {
       JoranConfigurator joran = new JoranConfigurator();
       joran.doConfigure(file, LogManager.getLoggerRepository());
  @@ -60,4 +71,110 @@
       JoranConfigurator joran = new JoranConfigurator();
       joran.doConfigure(url, LogManager.getLoggerRepository());
     }
  +
  +  /**
  +   *  Configure log4j using a <code>configuration</code> element.
  +   * @param element element, may not be null.
  +  */
  +  public static void configure(final Element element) {
  +    DOMConfigurator configurator = new DOMConfigurator();
  +    configurator.doConfigure(element, LogManager.getLoggerRepository());
  +  }
  +
  +  /**
  +   *  Configure by taking in an DOM element.
  +   * @param element configuration element, may not be null.
  +   * @param repository logger repository.
  +  */
  +  public void doConfigure(
  +    final Element element, final LoggerRepository repository) {
  +    ParseAction action = new DOMElementParseAction(element);
  +    doConfigure(action, repository);
  +  }
  +
  +  /**
  +   *  Class that "parses" a DOM element by replaying the
  +   * corresponding SAX events.
  +   */
  +  private static class DOMElementParseAction implements ParseAction {
  +    private final Element element;
  +    private final AttributesImpl attributes = new AttributesImpl();
  +
  +    /**
  +     * Creates an DOMElementParser.
  +     * @param element configuration element.
  +     */
  +    public DOMElementParseAction(final Element element) {
  +      this.element = element;
  +    }
  +
  +    /**
  +     * Generates the SAX events corresponding to the document element.
  +     * @param parser SAX parser, ignored.
  +     * @param handler content receiver, may not be null.
  +     * @throws SAXException thrown on content or handling exception.
  +     */
  +    public void parse(final SAXParser parser, final DefaultHandler handler)
  +      throws SAXException {
  +      handler.startDocument();
  +      replay(element, handler);
  +      handler.endDocument();
  +    }
  +
  +    /**
  +     * Generates the SAX events corresponding to the element.
  +     *
  +     * @param element element, may not be null.
  +     * @param handler content handler, may not be null.
  +     * @throws SAXException if content error.
  +     */
  +    private void replay(final Element element, final DefaultHandler handler)
  +      throws SAXException {
  +      String localName = element.getLocalName();
  +      String nsURI = element.getNamespaceURI();
  +      String qName = element.getNodeName();
  +
  +      if (localName == null) {
  +        localName = qName;
  +      }
  +
  +      attributes.clear();
  +
  +      NamedNodeMap attrNodes = element.getAttributes();
  +      int attrCount = attrNodes.getLength();
  +      Node attr;
  +
  +      for (int i = 0; i < attrCount; i++) {
  +        attr = attrNodes.item(i);
  +
  +        String attrQName = attr.getNodeName();
  +        String attrName = attr.getLocalName();
  +
  +        if (attrName == null) {
  +          attrName = attrQName;
  +        }
  +
  +        String attrNsURI = attr.getNamespaceURI();
  +        String attrValue = attr.getNodeValue();
  +        attributes.addAttribute(
  +          attrNsURI, attrName, attrQName, "#PCDATA", attrValue);
  +      }
  +
  +      handler.startElement(nsURI, localName, qName, attributes);
  +
  +      for (
  +        Node child = element.getFirstChild(); child != null;
  +          child = child.getNextSibling()) {
  +        //
  +        //   Joran only inteprets element content,
  +        //      so unnecessary to playback comments, character data, etc.
  +        //
  +        if (child.getNodeType() == Node.ELEMENT_NODE) {
  +          replay((Element) child, handler);
  +        }
  +      }
  +
  +      handler.endElement(nsURI, localName, qName);
  +    }
  +  }
   }
  
  
  
  1.1                  logging-log4j/tests/input/xml/DOMTest3.xml
  
  Index: DOMTest3.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8" ?>
  
  <log4j:configuration xmlns:log4j='http://logging.apache.org/'>
    <appender name="A1" class="org.apache.log4j.FileAppender">
  
      <param name="File"   value="output/temp.A1.3" />
      <param name="Append" value="false" />
  
      <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p %c{2} - %m%n"/>
      </layout>
    </appender>
  
    <appender name="A2" class="org.apache.log4j.FileAppender">
      <param name="File" value="output/temp.A2.3" />
      <param name="Append" value="false" />
      <layout class="org.apache.log4j.TTCCLayout">
        <param name="DateFormat" value="ISO8601" />
      </layout>
    </appender>
  
    <!-- Prevent internal log4j DEBUG messages from polluting the output. -->
    <logger name="org.apache.log4j.joran"><level value="INFO" /></logger>
    <logger name="org.apache.log4j.joran.action.PriorityAction"><level 
value="ERROR" /></logger>
    <logger name="org.apache.log4j.config"><level value="INFO" /></logger>
    <logger name="org.apache.log4j.FileAppender"><level value="INFO" /></logger>
    <logger name="org.apache.log4j.xml.DOMConfigurator"><level value="INFO" 
/></logger>
  
    <logger name="org.apache.log4j.xml">
      <level value="debug" />
      <appender-ref ref="A1" />
    </logger>
  
    <root>
      <priority value ="debug" />
      <appender-ref ref="A1" />
      <appender-ref ref="A2" />
    </root>
  
  </log4j:configuration>
  
  
  
  1.2       +150 -99   
logging-log4j/tests/src/java/org/apache/log4j/xml/DOMTest.java
  
  Index: DOMTest.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/tests/src/java/org/apache/log4j/xml/DOMTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DOMTest.java      18 Feb 2005 17:23:45 -0000      1.1
  +++ DOMTest.java      7 Mar 2005 05:35:19 -0000       1.2
  @@ -1,12 +1,12 @@
   /*
  - * Copyright 1999-2005 The Apache Software Foundation.
  - * 
  + * Copyright 1999,2005 The Apache Software Foundation.
  + *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
  - * 
  + *
    *      http://www.apache.org/licenses/LICENSE-2.0
  - * 
  + *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  @@ -16,50 +16,39 @@
   
   package org.apache.log4j.xml;
   
  -import java.util.List;
  -
  -import junit.framework.Test;
   import junit.framework.TestCase;
  -import junit.framework.TestSuite;
   
  +import org.apache.log4j.Level;
   import org.apache.log4j.LogManager;
   import org.apache.log4j.Logger;
  -import org.apache.log4j.Level;
   import org.apache.log4j.joran.JoranConfigurator;
   import org.apache.log4j.spi.ErrorItem;
  -import org.apache.log4j.util.Filter;
  -import org.apache.log4j.util.JunitTestRunnerFilter;
  -import org.apache.log4j.util.LineNumberFilter;
  -import org.apache.log4j.util.SunReflectFilter;
  -import org.apache.log4j.util.ControlFilter;
  -import org.apache.log4j.util.ISO8601Filter;
  -import org.apache.log4j.util.Transformer;
  -import org.apache.log4j.util.Compare;
  +import org.apache.log4j.util.*;
  +
   import java.io.File;
   
  -public class DOMTest extends TestCase {
  +import java.util.List;
  +
  +import javax.xml.parsers.DocumentBuilder;
  +import javax.xml.parsers.DocumentBuilderFactory;
  +
   
  +public class DOMTest extends TestCase {
     static String TEMP_A1 = "output/temp.A1";
     static String TEMP_A2 = "output/temp.A2";
     static String FILTERED_A1 = "output/filtered.A1";
     static String FILTERED_A2 = "output/filtered.A2";
  -
  -
     static String EXCEPTION1 = "java.lang.Exception: Just testing";
     static String EXCEPTION2 = "\\s*at .*\\(.*:\\d{1,4}\\)";
     static String EXCEPTION3 = "\\s*at .*\\(Native Method\\)";
  -
  -  static String TEST1_1A_PAT = 
  -                       "(DEBUG|INFO |WARN |ERROR|FATAL) \\w*\\.\\w* - 
Message \\d";
  -
  -  static String TEST1_1B_PAT = "(DEBUG|INFO |WARN |ERROR|FATAL) root - 
Message \\d";
  -
  -  static String TEST1_2_PAT = "^\\d{4}-\\d{2}-\\d{2} 
\\d{2}:\\d{2}:\\d{2},\\d{3} "+
  -                        "\\[main]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - 
Message \\d";
  -
  -
  -
  -  Logger root; 
  +  static String TEST1_1A_PAT =
  +    "(DEBUG|INFO |WARN |ERROR|FATAL) \\w*\\.\\w* - Message \\d";
  +  static String TEST1_1B_PAT =
  +    "(DEBUG|INFO |WARN |ERROR|FATAL) root - Message \\d";
  +  static String TEST1_2_PAT =
  +    "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2},\\d{3} "
  +    + "\\[main]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - Message \\d";
  +  Logger root;
     Logger logger;
   
     public DOMTest(String name) {
  @@ -70,8 +59,8 @@
       root = Logger.getRootLogger();
       logger = Logger.getLogger(DOMTest.class);
     }
  - 
  -  public void tearDown() {  
  +
  +  public void tearDown() {
       root.getLoggerRepository().resetConfiguration();
     }
   
  @@ -82,20 +71,29 @@
       dumpErrors(jc.getErrorList());
       common();
   
  -    ControlFilter cf1 = new ControlFilter(new String[]{TEST1_1A_PAT, 
TEST1_1B_PAT, 
  -                                            EXCEPTION1, EXCEPTION2, 
EXCEPTION3});
  -
  -    ControlFilter cf2 = new ControlFilter(new String[]{TEST1_2_PAT, 
  -                                            EXCEPTION1, EXCEPTION2, 
EXCEPTION3});
  -
  -    Transformer.transform(TEMP_A1, FILTERED_A1, new Filter[] {cf1, 
  -                                                     new LineNumberFilter(), 
  -              new SunReflectFilter(), 
  -              new JunitTestRunnerFilter()});
  -
  -    Transformer.transform(TEMP_A2, FILTERED_A2, new Filter[] {cf2,
  -                                      new LineNumberFilter(), new 
ISO8601Filter(),
  -                                      new SunReflectFilter(), new 
JunitTestRunnerFilter()});
  +    ControlFilter cf1 =
  +      new ControlFilter(
  +        new String[] {
  +          TEST1_1A_PAT, TEST1_1B_PAT, EXCEPTION1, EXCEPTION2, EXCEPTION3
  +        });
  +
  +    ControlFilter cf2 =
  +      new ControlFilter(
  +        new String[] { TEST1_2_PAT, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
  +
  +    Transformer.transform(
  +      TEMP_A1, FILTERED_A1,
  +      new Filter[] {
  +        cf1, new LineNumberFilter(), new SunReflectFilter(),
  +        new JunitTestRunnerFilter()
  +      });
  +
  +    Transformer.transform(
  +      TEMP_A2, FILTERED_A2,
  +      new Filter[] {
  +        cf2, new LineNumberFilter(), new ISO8601Filter(),
  +        new SunReflectFilter(), new JunitTestRunnerFilter()
  +      });
   
       assertTrue(Compare.compare(FILTERED_A1, "witness/xml/dom.A1.1"));
       assertTrue(Compare.compare(FILTERED_A2, "witness/xml/dom.A2.1"));
  @@ -103,82 +101,135 @@
   
     /**
      * Identical test except that backslashes are used instead of
  -   * forward slashes on all file specifications.  Test is 
  +   * forward slashes on all file specifications.  Test is
      * only applicable to Windows.
  -   * 
  +   *
      * @throws Exception Any exception will cause test to fail
      */
     public void test2() throws Exception {
  -     if (File.separatorChar == '\\') {
  -         JoranConfigurator jc = new JoranConfigurator();
  -         jc.doConfigure("input\\xml\\DOMTest2.xml", 
LogManager.getLoggerRepository());
  -         dumpErrors(jc.getErrorList());
  -         common();
  -     
  -         ControlFilter cf1 = new ControlFilter(new String[]{TEST1_1A_PAT, 
TEST1_1B_PAT, 
  -                                                    EXCEPTION1, EXCEPTION2, 
EXCEPTION3});
  -     
  -         ControlFilter cf2 = new ControlFilter(new String[]{TEST1_2_PAT, 
  -                                                    EXCEPTION1, EXCEPTION2, 
EXCEPTION3});
  -     
  -         Transformer.transform(TEMP_A1 + ".2", FILTERED_A1 + ".2", new 
Filter[] {cf1, 
  -                                                             new 
LineNumberFilter(), 
  -                   new SunReflectFilter(), 
  -                   new JunitTestRunnerFilter()});
  -     
  -         Transformer.transform(TEMP_A2 + ".2", FILTERED_A2 + ".2", new 
Filter[] {cf2,
  -                                           new LineNumberFilter(), new 
ISO8601Filter(),
  -                                           new SunReflectFilter(), new 
JunitTestRunnerFilter()});
  -     
  -         assertTrue(Compare.compare(FILTERED_A1, "witness/xml/dom.A1.2"));
  -         assertTrue(Compare.compare(FILTERED_A2, "witness/xml/dom.A2.2"));
  -     }
  -  }
  -  
  -  
  - 
  +    if (File.separatorChar == '\\') {
  +      JoranConfigurator jc = new JoranConfigurator();
  +      jc.doConfigure(
  +        "input\\xml\\DOMTest2.xml", LogManager.getLoggerRepository());
  +      dumpErrors(jc.getErrorList());
  +      common();
  +
  +      ControlFilter cf1 =
  +        new ControlFilter(
  +          new String[] {
  +            TEST1_1A_PAT, TEST1_1B_PAT, EXCEPTION1, EXCEPTION2, EXCEPTION3
  +          });
  +
  +      ControlFilter cf2 =
  +        new ControlFilter(
  +          new String[] { TEST1_2_PAT, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
  +
  +      Transformer.transform(
  +        TEMP_A1 + ".2", FILTERED_A1 + ".2",
  +        new Filter[] {
  +          cf1, new LineNumberFilter(), new SunReflectFilter(),
  +          new JunitTestRunnerFilter()
  +        });
  +
  +      Transformer.transform(
  +        TEMP_A2 + ".2", FILTERED_A2 + ".2",
  +        new Filter[] {
  +          cf2, new LineNumberFilter(), new ISO8601Filter(),
  +          new SunReflectFilter(), new JunitTestRunnerFilter()
  +        });
  +
  +      assertTrue(Compare.compare(FILTERED_A1 + ".2", 
"witness/xml/dom.A1.2"));
  +      assertTrue(Compare.compare(FILTERED_A2 + ".2", 
"witness/xml/dom.A2.2"));
  +    }
  +  }
  +
  +  /**
  +   * This test checks the implementation of 
DOMConfigurator.doConfigure(Element)
  +   * which is provided for compatibility with log4j 1.2 and used by 
excalibur-logging.
  +   *
  +   * @deprecated This test checks a deprecated method and so needs to be 
deprecated itself.
  +   *
  +   * @throws Exception on failure to find parser, etc.
  +   */
  +  public void test3() throws Exception {
  +    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  +    factory.setNamespaceAware(true);
  +
  +    DocumentBuilder builder = factory.newDocumentBuilder();
  +    org.w3c.dom.Document doc =
  +      builder.parse(new File("input/xml/DOMTest3.xml"));
  +
  +    DOMConfigurator domConfig = new DOMConfigurator();
  +    domConfig.doConfigure(
  +      doc.getDocumentElement(), LogManager.getLoggerRepository());
  +
  +    dumpErrors(domConfig.getErrorList());
  +    common();
  +
  +    ControlFilter cf1 =
  +      new ControlFilter(
  +        new String[] {
  +          TEST1_1A_PAT, TEST1_1B_PAT, EXCEPTION1, EXCEPTION2, EXCEPTION3
  +        });
  +
  +    ControlFilter cf2 =
  +      new ControlFilter(
  +        new String[] { TEST1_2_PAT, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
  +
  +    Transformer.transform(
  +      TEMP_A1 + ".3", FILTERED_A1 + ".3",
  +      new Filter[] {
  +        cf1, new LineNumberFilter(), new SunReflectFilter(),
  +        new JunitTestRunnerFilter()
  +      });
  +
  +    Transformer.transform(
  +      TEMP_A2 + ".3", FILTERED_A2 + ".3",
  +      new Filter[] {
  +        cf2, new LineNumberFilter(), new ISO8601Filter(),
  +        new SunReflectFilter(), new JunitTestRunnerFilter()
  +      });
  +
  +    assertTrue(Compare.compare(FILTERED_A1 + ".3", "witness/xml/dom.A1.3"));
  +    assertTrue(Compare.compare(FILTERED_A2 + ".3", "witness/xml/dom.A2.3"));
  +  }
  +
     void common() {
       int i = -1;
  - 
  +
       logger.debug("Message " + ++i);
  -    root.debug("Message " + i);        
  +    root.debug("Message " + i);
   
  -    logger.info ("Message " + ++i);
  -    root.info("Message " + i);        
  +    logger.info("Message " + ++i);
  +    root.info("Message " + i);
   
  -    logger.warn ("Message " + ++i);
  -    root.warn("Message " + i);        
  +    logger.warn("Message " + ++i);
  +    root.warn("Message " + i);
   
       logger.error("Message " + ++i);
       root.error("Message " + i);
  -    
  +
       logger.log(Level.FATAL, "Message " + ++i);
  -    root.log(Level.FATAL, "Message " + i);    
  -    
  +    root.log(Level.FATAL, "Message " + i);
  +
       Exception e = new Exception("Just testing");
       logger.debug("Message " + ++i, e);
       root.debug("Message " + i, e);
  -    
  +
       logger.error("Message " + ++i, e);
  -    root.error("Message " + i, e);    
  +    root.error("Message " + i, e);
     }
   
     void dumpErrors(List errorList) {
  -    for(int i = 0; i < errorList.size(); i++) {
  +    for (int i = 0; i < errorList.size(); i++) {
         ErrorItem ei = (ErrorItem) errorList.get(i);
         System.out.println(ei);
  +
         Throwable t = ei.getException();
  -      if(t != null) {
  +
  +      if (t != null) {
           t.printStackTrace(System.out);
         }
       }
     }
  -
  -  public static Test suite() {
  -    TestSuite suite = new TestSuite();
  -    suite.addTest(new DOMTest("test1"));
  -    //suite.addTest(new DOMTest("test2"));
  -    return suite;
  -  }
  -
   }
  
  
  
  1.1                  logging-log4j/tests/witness/xml/dom.A1.3
  
  Index: dom.A1.3
  ===================================================================
  DEBUG xml.DOMTest - Message 0
  DEBUG xml.DOMTest - Message 0
  DEBUG root - Message 0
  INFO  xml.DOMTest - Message 1
  INFO  xml.DOMTest - Message 1
  INFO  root - Message 1
  WARN  xml.DOMTest - Message 2
  WARN  xml.DOMTest - Message 2
  WARN  root - Message 2
  ERROR xml.DOMTest - Message 3
  ERROR xml.DOMTest - Message 3
  ERROR root - Message 3
  FATAL xml.DOMTest - Message 4
  FATAL xml.DOMTest - Message 4
  FATAL root - Message 4
  DEBUG xml.DOMTest - Message 5
  java.lang.Exception: Just testing
        at org.apache.log4j.xml.DOMTest.common(X)
        at org.apache.log4j.xml.DOMTest.test3(X)
        at java.lang.reflect.Method.invoke(X)
        at junit.framework.TestCase.runTest(X)
        at junit.framework.TestCase.runBare(X)
        at junit.framework.TestResult$1.protect(X)
        at junit.framework.TestResult.runProtected(X)
        at junit.framework.TestResult.run(X)
        at junit.framework.TestCase.run(X)
        at junit.framework.TestSuite.runTest(X)
        at junit.framework.TestSuite.run(X)
  DEBUG xml.DOMTest - Message 5
  java.lang.Exception: Just testing
        at org.apache.log4j.xml.DOMTest.common(X)
        at org.apache.log4j.xml.DOMTest.test3(X)
        at java.lang.reflect.Method.invoke(X)
        at junit.framework.TestCase.runTest(X)
        at junit.framework.TestCase.runBare(X)
        at junit.framework.TestResult$1.protect(X)
        at junit.framework.TestResult.runProtected(X)
        at junit.framework.TestResult.run(X)
        at junit.framework.TestCase.run(X)
        at junit.framework.TestSuite.runTest(X)
        at junit.framework.TestSuite.run(X)
  DEBUG root - Message 5
  java.lang.Exception: Just testing
        at org.apache.log4j.xml.DOMTest.common(X)
        at org.apache.log4j.xml.DOMTest.test3(X)
        at java.lang.reflect.Method.invoke(X)
        at junit.framework.TestCase.runTest(X)
        at junit.framework.TestCase.runBare(X)
        at junit.framework.TestResult$1.protect(X)
        at junit.framework.TestResult.runProtected(X)
        at junit.framework.TestResult.run(X)
        at junit.framework.TestCase.run(X)
        at junit.framework.TestSuite.runTest(X)
        at junit.framework.TestSuite.run(X)
  ERROR xml.DOMTest - Message 6
  java.lang.Exception: Just testing
        at org.apache.log4j.xml.DOMTest.common(X)
        at org.apache.log4j.xml.DOMTest.test3(X)
        at java.lang.reflect.Method.invoke(X)
        at junit.framework.TestCase.runTest(X)
        at junit.framework.TestCase.runBare(X)
        at junit.framework.TestResult$1.protect(X)
        at junit.framework.TestResult.runProtected(X)
        at junit.framework.TestResult.run(X)
        at junit.framework.TestCase.run(X)
        at junit.framework.TestSuite.runTest(X)
        at junit.framework.TestSuite.run(X)
  ERROR xml.DOMTest - Message 6
  java.lang.Exception: Just testing
        at org.apache.log4j.xml.DOMTest.common(X)
        at org.apache.log4j.xml.DOMTest.test3(X)
        at java.lang.reflect.Method.invoke(X)
        at junit.framework.TestCase.runTest(X)
        at junit.framework.TestCase.runBare(X)
        at junit.framework.TestResult$1.protect(X)
        at junit.framework.TestResult.runProtected(X)
        at junit.framework.TestResult.run(X)
        at junit.framework.TestCase.run(X)
        at junit.framework.TestSuite.runTest(X)
        at junit.framework.TestSuite.run(X)
  ERROR root - Message 6
  java.lang.Exception: Just testing
        at org.apache.log4j.xml.DOMTest.common(X)
        at org.apache.log4j.xml.DOMTest.test3(X)
        at java.lang.reflect.Method.invoke(X)
        at junit.framework.TestCase.runTest(X)
        at junit.framework.TestCase.runBare(X)
        at junit.framework.TestResult$1.protect(X)
        at junit.framework.TestResult.runProtected(X)
        at junit.framework.TestResult.run(X)
        at junit.framework.TestCase.run(X)
        at junit.framework.TestSuite.runTest(X)
        at junit.framework.TestSuite.run(X)
  
  
  
  1.1                  logging-log4j/tests/witness/xml/dom.A2.3
  
  Index: dom.A2.3
  ===================================================================
   [main] DEBUG org.apache.log4j.xml.DOMTest - Message 0
   [main] DEBUG root - Message 0
   [main] INFO org.apache.log4j.xml.DOMTest - Message 1
   [main] INFO root - Message 1
   [main] WARN org.apache.log4j.xml.DOMTest - Message 2
   [main] WARN root - Message 2
   [main] ERROR org.apache.log4j.xml.DOMTest - Message 3
   [main] ERROR root - Message 3
   [main] FATAL org.apache.log4j.xml.DOMTest - Message 4
   [main] FATAL root - Message 4
   [main] DEBUG org.apache.log4j.xml.DOMTest - Message 5
  java.lang.Exception: Just testing
        at org.apache.log4j.xml.DOMTest.common(X)
        at org.apache.log4j.xml.DOMTest.test3(X)
        at java.lang.reflect.Method.invoke(X)
        at junit.framework.TestCase.runTest(X)
        at junit.framework.TestCase.runBare(X)
        at junit.framework.TestResult$1.protect(X)
        at junit.framework.TestResult.runProtected(X)
        at junit.framework.TestResult.run(X)
        at junit.framework.TestCase.run(X)
        at junit.framework.TestSuite.runTest(X)
        at junit.framework.TestSuite.run(X)
   [main] DEBUG root - Message 5
  java.lang.Exception: Just testing
        at org.apache.log4j.xml.DOMTest.common(X)
        at org.apache.log4j.xml.DOMTest.test3(X)
        at java.lang.reflect.Method.invoke(X)
        at junit.framework.TestCase.runTest(X)
        at junit.framework.TestCase.runBare(X)
        at junit.framework.TestResult$1.protect(X)
        at junit.framework.TestResult.runProtected(X)
        at junit.framework.TestResult.run(X)
        at junit.framework.TestCase.run(X)
        at junit.framework.TestSuite.runTest(X)
        at junit.framework.TestSuite.run(X)
   [main] ERROR org.apache.log4j.xml.DOMTest - Message 6
  java.lang.Exception: Just testing
        at org.apache.log4j.xml.DOMTest.common(X)
        at org.apache.log4j.xml.DOMTest.test3(X)
        at java.lang.reflect.Method.invoke(X)
        at junit.framework.TestCase.runTest(X)
        at junit.framework.TestCase.runBare(X)
        at junit.framework.TestResult$1.protect(X)
        at junit.framework.TestResult.runProtected(X)
        at junit.framework.TestResult.run(X)
        at junit.framework.TestCase.run(X)
        at junit.framework.TestSuite.runTest(X)
        at junit.framework.TestSuite.run(X)
   [main] ERROR root - Message 6
  java.lang.Exception: Just testing
        at org.apache.log4j.xml.DOMTest.common(X)
        at org.apache.log4j.xml.DOMTest.test3(X)
        at java.lang.reflect.Method.invoke(X)
        at junit.framework.TestCase.runTest(X)
        at junit.framework.TestCase.runBare(X)
        at junit.framework.TestResult$1.protect(X)
        at junit.framework.TestResult.runProtected(X)
        at junit.framework.TestResult.run(X)
        at junit.framework.TestCase.run(X)
        at junit.framework.TestSuite.runTest(X)
        at junit.framework.TestSuite.run(X)
  
  
  

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

Reply via email to