You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gr...@apache.org on 2012/06/02 17:36:26 UTC

svn commit: r1345524 [4/17] - in /logging/log4j/branches/log4j12-bz53299: ./ contribs/ contribs/CekiGulcu/ contribs/EirikLygre/ contribs/JamesHouse/ contribs/Jamie Tsao/ contribs/JimMoore/ contribs/KevinSteppe/ contribs/KitchingSimon/ contribs/LeosLite...

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java&p1=logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/UnrecognizedElementHandler.java (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/UnrecognizedElementHandler.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/UnrecognizedElementHandler.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/UnrecognizedElementHandler.java&p1=logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/UnrecognizedElementHandler.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/UnrecognizedElementHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/XMLLayout.java (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/XMLLayout.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/XMLLayout.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/XMLLayout.java&p1=logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/XMLLayout.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/XMLLayout.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/XMLLayout.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/package.html (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/package.html)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/package.html?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/package.html&p1=logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/package.html&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/package.html
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/docFiles/log4j.dtd (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/doc-files/log4j.dtd)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/docFiles/log4j.dtd?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/docFiles/log4j.dtd&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/doc-files/log4j.dtd&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/docFiles/log4j.dtd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/docFiles/log4j.dtd
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/XMLSample.java (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/XMLSample.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/XMLSample.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/XMLSample.java&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/XMLSample.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/XMLSample.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/XMLSample.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample1.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample1.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample1.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample1.xml&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample1.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample1.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample1.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample2.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample2.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample2.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample2.xml&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample2.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample2.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample2.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample3.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample3.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample3.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample3.xml&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample3.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample3.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample3.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample4.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample4.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample4.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample4.xml&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample4.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample4.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample4.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample5.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample5.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample5.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample5.xml&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample5.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample5.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample5.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/LICENSE (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/resources/META-INF/LICENSE)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/LICENSE?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/LICENSE&p1=logging/log4j/branches/log4j12-bz53299/src/main/resources/META-INF/LICENSE&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/LICENSE
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/LICENSE
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/NOTICE (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/resources/META-INF/NOTICE)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/NOTICE?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/NOTICE&p1=logging/log4j/branches/log4j12-bz53299/src/main/resources/META-INF/NOTICE&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/NOTICE
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/org/apache/log4j/xml/log4j.dtd (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/resources/org/apache/log4j/xml/log4j.dtd)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/resources/org/apache/log4j/xml/log4j.dtd?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/resources/org/apache/log4j/xml/log4j.dtd&p1=logging/log4j/branches/log4j12-bz53299/src/main/resources/org/apache/log4j/xml/log4j.dtd&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/org/apache/log4j/xml/log4j.dtd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/org/apache/log4j/xml/log4j.dtd
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/download.apt (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/apt/download.apt)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/apt/download.apt?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/apt/download.apt&p1=logging/log4j/branches/log4j12-bz53299/src/site/apt/download.apt&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/download.apt
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/index.apt (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/apt/index.apt)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/apt/index.apt?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/apt/index.apt&p1=logging/log4j/branches/log4j12-bz53299/src/site/apt/index.apt&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/index.apt
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/publications.apt (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/apt/publications.apt)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/apt/publications.apt?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/apt/publications.apt&p1=logging/log4j/branches/log4j12-bz53299/src/site/apt/publications.apt&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/publications.apt
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/roadmap.apt (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/apt/roadmap.apt)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/apt/roadmap.apt?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/apt/roadmap.apt&p1=logging/log4j/branches/log4j12-bz53299/src/site/apt/roadmap.apt&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/roadmap.apt
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/fml/faq.fml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/fml/faq.fml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/fml/faq.fml?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/fml/faq.fml&p1=logging/log4j/branches/log4j12-bz53299/src/site/fml/faq.fml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/css/site.css (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/resources/css/site.css)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/resources/css/site.css?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/resources/css/site.css&p1=logging/log4j/branches/log4j12-bz53299/src/site/resources/css/site.css&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/css/site.css
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/logo.jpg (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/resources/images/logo.jpg)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/logo.jpg?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/logo.jpg&p1=logging/log4j/branches/log4j12-bz53299/src/site/resources/images/logo.jpg&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
Binary files - no diff available.

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/logo.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/ls-logo.jpg (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/resources/images/ls-logo.jpg)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/ls-logo.jpg?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/ls-logo.jpg&p1=logging/log4j/branches/log4j12-bz53299/src/site/resources/images/ls-logo.jpg&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
Binary files - no diff available.

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/ls-logo.jpg
------------------------------------------------------------------------------
    svn:executable = *

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/ls-logo.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/od.gif (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/resources/images/od.gif)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/od.gif?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/od.gif&p1=logging/log4j/branches/log4j12-bz53299/src/site/resources/images/od.gif&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
Binary files - no diff available.

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/od.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/site.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/site.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/site.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/site.xml&p1=logging/log4j/branches/log4j12-bz53299/src/site/site.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/site.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/xdoc/manual.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/xdoc/manual.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/xdoc/manual.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/xdoc/manual.xml&p1=logging/log4j/branches/log4j12-bz53299/src/site/xdoc/manual.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/xdoc/manual.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/xdoc/manual.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/README (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/README)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/README?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/README&p1=logging/log4j/branches/log4j12-bz53299/tests/README&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/README
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/README
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/build.properties.sample (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/build.properties.sample)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/build.properties.sample?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/build.properties.sample&p1=logging/log4j/branches/log4j12-bz53299/tests/build.properties.sample&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/AsyncAppenderTestCase.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/AsyncAppenderTestCase.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/AsyncAppenderTestCase.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/AsyncAppenderTestCase.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/AsyncAppenderTestCase.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/AsyncAppenderTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/AsyncAppenderTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CategoryTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/CategoryTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CategoryTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CategoryTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/CategoryTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CategoryTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CoreTestSuite.java
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CoreTestSuite.java?rev=1345524&view=auto
==============================================================================
--- logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CoreTestSuite.java (added)
+++ logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CoreTestSuite.java Sat Jun  2 15:35:46 2012
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.log4j;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.apache.log4j.spi.LoggingEventTest;
+
+
+/**
+ * Suite of log4j class level unit tests.
+ *
+ */
+public class CoreTestSuite {
+    /**
+     * Constructs test suite.
+     * @return test suite
+     */
+    public static Test suite() {
+        TestSuite s = new TestSuite();
+        s.addTestSuite(LoggingEventTest.class);
+        s.addTestSuite(org.apache.log4j.LevelTest.class);
+        s.addTestSuite(org.apache.log4j.PriorityTest.class);
+        s.addTestSuite(org.apache.log4j.CategoryTest.class);
+        s.addTestSuite(org.apache.log4j.FileAppenderTest.class);
+        s.addTestSuite(org.apache.log4j.LogManagerTest.class);
+        s.addTestSuite(org.apache.log4j.helpers.LogLogTest.class);
+        s.addTestSuite(org.apache.log4j.LayoutTest.class);
+        s.addTestSuite(org.apache.log4j.helpers.DateLayoutTest.class);
+        s.addTestSuite(org.apache.log4j.TTCCLayoutTest.class);
+        s.addTestSuite(org.apache.log4j.xml.XMLLayoutTest.class);
+        s.addTestSuite(org.apache.log4j.HTMLLayoutTest.class);
+        s.addTestSuite(org.apache.log4j.PatternLayoutTest.class);
+        s.addTestSuite(org.apache.log4j.spi.LoggingEventTest.class);
+        s.addTestSuite(org.apache.log4j.spi.ThrowableInformationTest.class);
+        s.addTestSuite(org.apache.log4j.spi.LocationInfoTest.class);
+        s.addTestSuite(org.apache.log4j.PropertyConfiguratorTest.class);
+        s.addTestSuite(org.apache.log4j.DefaultThrowableRendererTest.class);
+        s.addTestSuite(org.apache.log4j.EnhancedThrowableRendererTest.class);
+        s.addTestSuite(org.apache.log4j.TestLogXF.class);
+        s.addTestSuite(org.apache.log4j.TestLogMF.class);
+        s.addTestSuite(org.apache.log4j.TestLogSF.class);
+        s.addTestSuite(org.apache.log4j.pattern.CachedDateFormatTest.class);
+        s.addTestSuite(org.apache.log4j.pattern.FormattingInfoTest.class);
+        s.addTestSuite(org.apache.log4j.pattern.NameAbbreviatorTest.class);
+        s.addTestSuite(org.apache.log4j.pattern.PatternParserTest.class);
+        s.addTestSuite(org.apache.log4j.helpers.UtilLoggingLevelTest.class);
+        return s;
+    }
+}

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CoreTestSuite.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DRFATestCase.java
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DRFATestCase.java?rev=1345524&view=auto
==============================================================================
--- logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DRFATestCase.java (added)
+++ logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DRFATestCase.java Sat Jun  2 15:35:46 2012
@@ -0,0 +1,512 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.log4j;
+
+import junit.framework.TestCase;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.FileInputStream;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import org.apache.log4j.util.Compare;
+
+/**
+   Exhaustive test of the DailyRollingFileAppender compute algorithm.
+
+   @author Ceki Gülcü
+   @author Curt Arnold
+ */
+public class DRFATestCase extends TestCase {
+
+    /**
+     * Create new test.
+     * @param name test name.
+     */
+  public DRFATestCase(final String name) {
+    super(name);
+  }
+
+    /**
+     * Reset configuration after every test.
+     */
+  public void tearDown() {
+      LogManager.resetConfiguration();
+  }
+
+    /**
+     * Test prediction of check period.
+     */
+  public
+  void testComputeCheckPeriod() {
+    DailyRollingFileAppender drfa = new DailyRollingFileAppender();
+    drfa.setName("testComputeCheckPeriod");
+    drfa.setDatePattern("yyyy-MM-dd.'log'");
+    drfa.activateOptions();
+
+    drfa.computeCheckPeriod();
+    assertEquals(drfa.computeCheckPeriod(),
+         DailyRollingFileAppender.TOP_OF_DAY);
+
+    drfa.setDatePattern("yyyy-MM-dd mm.'log'");
+    assertEquals(drfa.computeCheckPeriod(),
+         DailyRollingFileAppender.TOP_OF_MINUTE);
+
+    drfa.setDatePattern("yyyy-MM-dd a.'log'");
+    assertEquals(drfa.computeCheckPeriod(),
+         DailyRollingFileAppender.HALF_DAY);
+
+    drfa.setDatePattern("yyyy-MM-dd HH.'log'");
+    assertEquals(drfa.computeCheckPeriod(),
+         DailyRollingFileAppender.TOP_OF_HOUR);
+
+    drfa.setDatePattern("yyyy-MM.'log'");
+    assertEquals(drfa.computeCheckPeriod(),
+         DailyRollingFileAppender.TOP_OF_MONTH);
+
+    drfa.setDatePattern("'log'HH'log'");
+    assertEquals(drfa.computeCheckPeriod(),
+         DailyRollingFileAppender.TOP_OF_HOUR);
+  }
+
+
+    /**
+     *   Test of RollingCalendar.
+     */
+  public
+  void testRC1() {
+    RollingCalendar rc = new RollingCalendar();
+    rc.setType(DailyRollingFileAppender.TOP_OF_DAY);
+
+    Calendar c = Calendar.getInstance();
+
+    // jan, mar, may, july, aug, oct, dec have 31 days
+    int [] M31 = {0,2,4,6,7,9,11};
+
+    for(int i = 0; i < M31.length; i ++) {
+      for(int d = 1; d <=31; d++) {
+    for(int h = 0; h < 23; h++) {
+      c.clear();
+      c.set(Calendar.YEAR, 20);
+      c.set(Calendar.MONTH, Calendar.JANUARY + M31[i]);
+      c.set(Calendar.DAY_OF_MONTH, d);
+      c.set(Calendar.HOUR_OF_DAY, h);
+      c.set(Calendar.MINUTE, 10);
+      c.set(Calendar.SECOND, 10);
+      c.set(Calendar.MILLISECOND, 88);
+
+      c.setTime(rc.getNextCheckDate(c.getTime()));
+      if(d == 31) {
+        assertEquals(c.get(Calendar.MONTH),(Calendar.JANUARY+M31[i]+1)%12);
+        assertEquals(c.get(Calendar.DAY_OF_MONTH), 1);
+      } else {
+        assertEquals(c.get(Calendar.MONTH), Calendar.JANUARY+M31[i]);
+        assertEquals(c.get(Calendar.DAY_OF_MONTH), d+1);
+      }
+      assertEquals(c.get(Calendar.HOUR_OF_DAY), 0);
+      assertEquals(c.get(Calendar.MINUTE), 0);
+      assertEquals(c.get(Calendar.SECOND), 0);
+      assertEquals(c.get(Calendar.MILLISECOND), 0);
+    }
+      }
+    }
+  }
+
+    /**
+     * RollingCalendar test.
+     */
+  public
+  void testRC2() {
+    RollingCalendar rc = new RollingCalendar();
+
+    rc.setType(DailyRollingFileAppender.TOP_OF_HOUR);
+
+    Calendar c = Calendar.getInstance();
+
+    // jan, mar, may, july, aug, oct, dec have 31 days
+    int [] M31 = {0,2,4,6,7,9,11};
+
+    for(int i = 0; i < M31.length; i ++) {
+      System.out.println("Month = "+(M31[i]+1));
+      for(int d = 1; d <= 31; d++) {
+    for(int h = 0; h < 23; h++) {
+      for(int m = 0; m <= 59; m++) {
+        c.clear();
+        c.set(Calendar.YEAR, 20);
+        c.set(Calendar.MONTH, Calendar.JANUARY + M31[i]);
+        c.set(Calendar.DAY_OF_MONTH, d);
+        c.set(Calendar.HOUR_OF_DAY, h);
+        c.set(Calendar.MINUTE, m);
+        c.set(Calendar.SECOND, 12);
+        c.set(Calendar.MILLISECOND, 88);
+
+        boolean dltState0 = c.getTimeZone().inDaylightTime(c.getTime());
+        c.setTime(rc.getNextCheckDate(c.getTime()));
+        boolean dltState1 = c.getTimeZone().inDaylightTime(c.getTime());
+
+        assertEquals(c.get(Calendar.MILLISECOND), 0);
+        assertEquals(c.get(Calendar.SECOND), 0);
+        assertEquals(c.get(Calendar.MINUTE), 0);
+
+        if(dltState0 == dltState1) {
+          assertEquals(c.get(Calendar.HOUR_OF_DAY), (h+1)%24);
+        } else {
+          // returning to standard time
+          if(dltState0) {
+        assertEquals(c.get(Calendar.HOUR_OF_DAY), h);
+          } else { // switching to day light saving time
+        //System.err.println("m="+m+", h="+h+", d="+d+", i="+i);
+        //if(h==2) {
+        // System.err.println(c);
+        //}
+        //assertEquals(c.get(Calendar.HOUR_OF_DAY), (h+2)%24);
+          }
+        }
+
+        if(h == 23) {
+          assertEquals(c.get(Calendar.DAY_OF_MONTH), (d+1)%32);
+          if(d == 31) {
+        assertEquals(c.get(Calendar.MONTH),
+                 (Calendar.JANUARY+M31[i]+1)%12);
+          } else {
+        assertEquals(c.get(Calendar.MONTH),
+                 Calendar.JANUARY+M31[i]);
+          }
+        } else {
+          assertEquals(c.get(Calendar.DAY_OF_MONTH), d);
+          assertEquals(c.get(Calendar.MONTH), Calendar.JANUARY+M31[i]);
+        }
+      }
+    }
+      }
+    }
+  }
+
+    /**
+     * RollingCalendar test.
+     */
+  public
+  void testRC3() {
+    RollingCalendar rc = new RollingCalendar();
+
+    rc.setType(DailyRollingFileAppender.TOP_OF_MINUTE);
+
+    int[] S = {0, 1, 5, 10, 21, 30, 59};
+    int[] M = {0, 1, 5, 10, 21, 30, 59};
+    Calendar c = Calendar.getInstance();
+
+    // jan, mar, may, july, aug, oct, dec have 31 days
+    int [] M31 = {2,9,0,4,6,7,11};
+
+    for(int i = 0; i < M31.length; i ++) {
+      System.out.println("Month = "+(M31[i]+1));
+      for(int d = 1; d <= 31; d++) {
+    for(int h = 0; h < 23; h++) {
+      for(int m = 0; m < M.length; m++) {
+        for(int s = 0; s < S.length; s++) {
+          c.clear();
+          c.set(Calendar.YEAR, 20);
+          c.set(Calendar.MONTH, Calendar.JANUARY + M31[i]);
+          c.set(Calendar.DAY_OF_MONTH, d);
+          c.set(Calendar.HOUR_OF_DAY, h);
+          c.set(Calendar.MINUTE, M[m]);
+          c.set(Calendar.SECOND, S[s]);
+          c.set(Calendar.MILLISECOND, 88);
+          c.add(Calendar.MILLISECOND, 1);
+
+          boolean dltState0 = c.getTimeZone().inDaylightTime(c.getTime());
+
+          c.setTime(rc.getNextCheckDate(c.getTime()));
+          c.add(Calendar.MILLISECOND, 0);
+          boolean dltState1 = c.getTimeZone().inDaylightTime(c.getTime());
+
+          assertEquals(c.get(Calendar.MILLISECOND), 0);
+          assertEquals(c.get(Calendar.SECOND), 0);
+          assertEquals(c.get(Calendar.MINUTE), (M[m]+1)%60);
+
+          if(M[m] == 59) {
+        if(dltState0 == dltState1) {
+          assertEquals(c.get(Calendar.HOUR_OF_DAY), (h+1)%24);
+        }
+        if(h == 23) {
+          assertEquals(c.get(Calendar.DAY_OF_MONTH), (d+1)%32);
+          if(d == 31) {
+              assertEquals(c.get(Calendar.MONTH),
+                 (Calendar.JANUARY+M31[i]+1)%12);
+          } else {
+            assertEquals(c.get(Calendar.MONTH),
+                 Calendar.JANUARY+M31[i]);
+          }
+        } else {
+          assertEquals(c.get(Calendar.DAY_OF_MONTH), d);
+        }
+          } else {
+        // allow discrepancies only if we are switching from std to dls time
+        if(c.get(Calendar.HOUR_OF_DAY) != h) {
+          c.add(Calendar.HOUR_OF_DAY, +1);
+          boolean dltState2 = c.getTimeZone().inDaylightTime(c.getTime());
+          if(dltState1 == dltState2) {
+            fail("No switch");
+          }
+        }
+        assertEquals(c.get(Calendar.DAY_OF_MONTH), d);
+        assertEquals(c.get(Calendar.MONTH), Calendar.JANUARY+M31[i]);
+          }
+        }
+      }
+    }
+      }
+    }
+  }
+
+
+    /**
+     * Common test code for 3 parameter constructor.
+     *
+     * @throws IOException if IOException during test.
+     */
+   public void test3Param(final String datePattern,
+                          final String filename) throws IOException {
+       Layout layout = new SimpleLayout();
+       DailyRollingFileAppender appender =
+               new DailyRollingFileAppender(layout, filename, datePattern);
+       assertEquals(datePattern, appender.getDatePattern());
+       Logger root = Logger.getRootLogger();
+       root.addAppender(appender);
+       root.info("Hello, World");
+       assertTrue(new File(filename).exists());
+    }
+
+    /**
+     * Creates an appender with an unrecognized top-of-year pattern.
+     *
+     * @throws IOException if IOException during test.
+     */
+    public void testTopOfYear() throws IOException {
+        try {
+            test3Param("'.'yyyy", "output/drfa_topOfYear.log");
+            fail("Expected illegal state exception.");
+        } catch(IllegalStateException ex) {
+            assertNotNull(ex);
+        }
+    }
+
+    /**
+     * Creates an appender with a top-of-month pattern.
+     *
+     * @throws IOException if IOException during test.
+     */
+    public void testTopOfMonth() throws IOException {
+        test3Param("'.'yyyy-MM", "output/drfa_topOfMonth.log");
+    }
+
+
+    /**
+     * Creates an appender with a top-of-week pattern.
+     *
+     * @throws IOException if IOException during test.
+     */
+    public void testTopOfWeek() throws IOException {
+        test3Param("'.'yyyy-w", "output/drfa_topOfWeek.log");
+    }
+
+    /**
+     * Creates an appender with a top-of-day pattern.
+     *
+     * @throws IOException if IOException during test.
+     */
+    public void testTopOfDay() throws IOException {
+        test3Param("'.'yyyy-MM-dd", "output/drfa_topOfDay.log");
+    }
+
+
+    /**
+     * Creates an appender with a half day pattern.
+     *
+     * @throws IOException if IOException during test.
+     */
+    public void testHalfDay() throws IOException {
+        test3Param("'.'yyyy-MM-dd-a", "output/drfa_halfDay.log");
+    }
+
+    /**
+     * Creates an appender with a top-of-hour pattern.
+     *
+     * @throws IOException if IOException during test.
+     */
+    public void testTopOfHour() throws IOException {
+        test3Param("'.'yyyy-MM-dd-HH", "output/drfa_topOfHour.log");
+    }
+
+    /**
+     * Creates an appender with a top-of-day pattern.
+     *
+     * @throws IOException if IOException during test.
+     */
+    public void testTopOfMinute() throws IOException {
+        test3Param("'.'yyyy-MM-dd-HH-mm", "output/drfa_topOfMinute.log");
+    }
+
+    /**
+     * Attempts to rollOver with no date pattern set.
+     *
+     * @throws IOException if IOException during test.
+     */
+    public void testRolloverNoPattern() throws IOException {
+        Layout layout = new SimpleLayout();
+        DailyRollingFileAppender appender =
+                new DailyRollingFileAppender(layout, "output/drfa_nopattern.log", null);
+
+        VectorErrorHandler errorHandler = new VectorErrorHandler();
+        appender.setErrorHandler(errorHandler);
+        appender.rollOver();
+        assertEquals(1, errorHandler.size());
+        assertEquals("Missing DatePattern option in rollOver().",
+                errorHandler.getMessage(0));
+    }
+
+    /**
+     * Tests rollOver with a minute periodicity.
+     *
+     * @throws IOException
+     * @throws InterruptedException
+     */
+    public void testMinuteRollover() throws IOException, InterruptedException {
+        Layout layout = new SimpleLayout();
+        String filename = "output/drfa_minuteRollover.log";
+        String pattern = "'.'yyyy-MM-dd-HH-mm";
+
+        DailyRollingFileAppender appender =
+                new DailyRollingFileAppender(layout,
+                        filename,
+                        pattern);
+        Logger root = Logger.getRootLogger();
+        root.addAppender(appender);
+        File firstFile =
+                new File(filename + new SimpleDateFormat(pattern).format(new Date()));
+        root.info("Hello, World");
+        //
+        //   create a file by that name so it has to be deleted
+        //       on rollover
+        firstFile.createNewFile();
+        assertTrue(firstFile.exists());
+        assertEquals(0, firstFile.length());
+
+        Calendar cal = Calendar.getInstance();
+        long now = cal.getTime().getTime();
+        cal.set(Calendar.SECOND, 3);
+        cal.set(Calendar.MILLISECOND, 0);
+        cal.add(Calendar.MINUTE, 1);
+        long until = cal.getTime().getTime();
+        Thread.sleep(until - now);
+        root.info("Hello, World");
+        assertTrue(firstFile.exists());
+        assertTrue(firstFile.length() > 0);
+
+    }
+
+    /**
+     * Naive append method to combine rollover fragments.
+     * @param combined stream to which source is appended.
+     * @param source stream containing bytes to append.
+     * @param buf byte array to use in transfer.
+     * @throws IOException if io error during operation.
+     */
+    private static void append(final FileOutputStream combined,
+                               final FileInputStream source,
+                               final byte[] buf) throws IOException {
+        int count1 = source.read(buf);
+        if (count1 > 0) {
+            combined.write(buf, 0, count1);
+        }
+        source.close();
+    }
+
+    /**
+     * Tests rollOver when log file is unabled to be renamed.
+     * See bug 43374.
+     *
+     * @throws IOException if io error.
+     * @throws InterruptedException if test interrupted while waiting for the start of the next minute.
+     */
+    public void testBlockedRollover() throws IOException, InterruptedException {
+        Layout layout = new SimpleLayout();
+        String filename = "output/drfa_blockedRollover.log";
+        String pattern = "'.'yyyy-MM-dd-HH-mm";
+
+
+        Date start = new Date();
+        DailyRollingFileAppender appender =
+                new DailyRollingFileAppender(layout,
+                        filename,
+                        pattern);
+        appender.setAppend(false);
+        Logger root = Logger.getRootLogger();
+        root.addAppender(appender);
+        //
+        //   open next two anticipated rollover file names
+        //
+        File block1 = new File(filename + new SimpleDateFormat(pattern).format(start));
+        File block2 = new File(filename + new SimpleDateFormat(pattern).format(
+                new Date(start.getTime() + 60000)));
+        FileOutputStream os1 = new FileOutputStream(block1);
+        FileOutputStream os2 = new FileOutputStream(block2);
+        root.info("Prior to rollover");
+        //
+        //   sleep until three seconds into next minute
+        //
+        Thread.sleep(63000 - (start.getTime() % 60000));
+        //
+        //  should trigger failed rollover
+        //
+        root.info("Rollover attempt while blocked");
+        os1.close();
+        os2.close();
+        root.info("Message after block removed");
+        appender.close();
+        //
+        //   combine base file and potential rollovers
+        //      since rollover may or may not have been blocked
+        //      depending on platform.
+        //
+        String combinedFilename = "output/drfa_blockedRollover.combined";
+        FileOutputStream combined = new FileOutputStream(combinedFilename);
+        byte[] buf = new byte[500];
+        append(combined, new FileInputStream(block1), buf);
+        append(combined, new FileInputStream(block2), buf);
+        append(combined, new FileInputStream(filename), buf);
+        combined.close();
+        assertTrue(Compare.compare(combinedFilename,
+                "target/test-classes/witness/drfa_blockedRollover.log"));
+    }
+
+    /** Check that the computed rollover period for a pattern containing a week as the finest unit is set to be
+     * a week.  Due to a locale mismatch this was incorrect in non-English locales.  See bug 40888.
+     *
+     */
+    public void testWeeklyRollover() {
+        DailyRollingFileAppender drfa = new DailyRollingFileAppender();
+    	drfa.setDatePattern("'.'yyyy-ww");
+		int checkPeriod = drfa.computeCheckPeriod();
+		assertEquals(DailyRollingFileAppender.TOP_OF_WEEK, checkPeriod);
+    }
+
+
+}

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DRFATestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DefaultThrowableRendererTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/DefaultThrowableRendererTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DefaultThrowableRendererTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DefaultThrowableRendererTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/DefaultThrowableRendererTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DefaultThrowableRendererTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedMyPatternLayout.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/EnhancedMyPatternLayout.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedMyPatternLayout.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedMyPatternLayout.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/EnhancedMyPatternLayout.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedMyPatternLayout.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/EnhancedPatternLayoutTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/EnhancedPatternLayoutTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java?rev=1345524&view=auto
==============================================================================
--- logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java (added)
+++ logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java Sat Jun  2 15:35:46 2012
@@ -0,0 +1,591 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.log4j;
+
+import junit.framework.TestCase;
+import org.apache.log4j.util.AbsoluteDateAndTimeFilter;
+import org.apache.log4j.util.AbsoluteTimeFilter;
+import org.apache.log4j.util.Compare;
+import org.apache.log4j.util.ControlFilter;
+import org.apache.log4j.util.Filter;
+import org.apache.log4j.util.ISO8601Filter;
+import org.apache.log4j.util.EnhancedJunitTestRunnerFilter;
+import org.apache.log4j.util.EnhancedLineNumberFilter;
+import org.apache.log4j.util.RelativeTimeFilter;
+import org.apache.log4j.util.SunReflectFilter;
+import org.apache.log4j.util.Transformer;
+import org.apache.log4j.MDCOrderFilter;
+import org.apache.log4j.spi.ThrowableInformation;
+
+import java.text.ParsePosition;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.TimeZone;
+import java.io.*;
+
+
+public class EnhancedPatternLayoutTestCase extends TestCase {
+  static final String FILE_PREFIX = "target/test-classes/";
+  
+  static String TEMP = "output/temp";
+  static String FILTERED = "output/filtered";
+  static String EXCEPTION1 = "java.lang.Exception: Just testing";
+  static String EXCEPTION2 = "\\s*at .*\\(.*\\)";
+  static String EXCEPTION3 = "\\s*at .*\\((Native Method|Unknown Source)\\)";
+  static String EXCEPTION4 = "\\s*at .*\\(.*Compiled Code\\)";
+
+  static String PAT0 =
+    "\\[main]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - Message \\d{1,2}";
+  static String PAT1 = Filter.ISO8601_PAT + " " + PAT0;
+  static String PAT2 = Filter.ABSOLUTE_DATE_AND_TIME_PAT + " " + PAT0;
+  static String PAT3 = Filter.ABSOLUTE_TIME_PAT + " " + PAT0;
+  static String PAT4 = Filter.RELATIVE_TIME_PAT + " " + PAT0;
+  static String PAT5 =
+    "\\[main]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* : Message \\d{1,2}";
+  static String PAT6 =
+    "\\[main]\\ (DEBUG|INFO |WARN |ERROR|FATAL) org.apache.log4j.EnhancedPatternLayoutTestCase.common\\(EnhancedPatternLayoutTestCase.java(:\\d{1,4})?\\): Message \\d{1,2}";
+  static String PAT11a =
+    "^(DEBUG|INFO |WARN |ERROR|FATAL) \\[main]\\ log4j.EnhancedPatternLayoutTest: Message \\d{1,2}";
+  static String PAT11b =
+    "^(DEBUG|INFO |WARN |ERROR|FATAL) \\[main]\\ root: Message \\d{1,2}";
+  static String PAT12 =
+    "^\\[main]\\ (DEBUG|INFO |WARN |ERROR|FATAL) "
+    + "org.apache.log4j.EnhancedPatternLayoutTestCase.common\\(EnhancedPatternLayoutTestCase.java:\\d{3}\\): "
+    + "Message \\d{1,2}";
+  static String PAT13 =
+    "^\\[main]\\ (DEBUG|INFO |WARN |ERROR|FATAL) "
+    + "apache.log4j.EnhancedPatternLayoutTestCase.common\\(EnhancedPatternLayoutTestCase.java:\\d{3}\\): "
+    + "Message \\d{1,2}";
+  static String PAT14 =
+    "^(TRACE|DEBUG| INFO| WARN|ERROR|FATAL)\\ \\d{1,2}\\ *- Message \\d{1,2}";
+  static String PAT_MDC_1 = "";
+  Logger root;
+  Logger logger;
+  
+
+  public EnhancedPatternLayoutTestCase(final String name) {
+    super(name);
+  }
+
+  public void setUp() {
+    root = Logger.getRootLogger();
+    logger = Logger.getLogger(EnhancedPatternLayoutTest.class);
+  }
+
+  public void tearDown() {
+    root.getLoggerRepository().resetConfiguration();
+  }
+
+    /**
+     * Configures log4j from a properties file resource in class loader path.
+     * @param fileName resource name, only last element is significant.
+     * @throws IOException if resource not found or error reading resource.
+     */
+  private static void configure(final String fileName) throws IOException {
+        PropertyConfigurator.configure(fileName);
+  }
+
+    /**
+     * Compares actual and expected files.
+     * @param actual file name for file generated by test
+     * @param expected resource name containing expected output
+     * @return true if files are the same after adjustments
+     * @throws IOException if IO error during comparison.
+     */
+  private static boolean compare(final String actual,
+                                 final String expected) throws IOException {
+      return Compare.compare(actual, expected);
+  }
+
+  public void test1() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout1.properties");
+    common();
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        new EnhancedLineNumberFilter(), new SunReflectFilter(),
+        new EnhancedJunitTestRunnerFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.1"));
+  }
+
+  public void test2() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout2.properties");
+    common();
+
+    ControlFilter cf1 =
+      new ControlFilter(
+        new String[] { PAT1, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        cf1, new EnhancedLineNumberFilter(), new ISO8601Filter(),
+        new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.2"));
+  }
+
+  public void test3() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout3.properties");
+    common();
+
+    ControlFilter cf1 =
+      new ControlFilter(
+        new String[] { PAT1, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        cf1, new EnhancedLineNumberFilter(), new ISO8601Filter(),
+        new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.3"));
+  }
+
+  // Output format:
+  // 06 avr. 2002 18:30:58,937 [main] DEBUG atternLayoutTest - Message 0  
+  public void test4() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout4.properties");
+    common();
+
+    ControlFilter cf1 =
+      new ControlFilter(
+        new String[] { PAT2, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        cf1, new EnhancedLineNumberFilter(), new AbsoluteDateAndTimeFilter(),
+        new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.4"));
+  }
+
+  public void test5() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout5.properties");
+    common();
+
+    ControlFilter cf1 =
+      new ControlFilter(
+        new String[] { PAT2, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        cf1, new EnhancedLineNumberFilter(), new AbsoluteDateAndTimeFilter(),
+        new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.5"));
+  }
+
+  // 18:54:19,201 [main] DEBUG atternLayoutTest - Message 0
+  public void test6() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout6.properties");
+    common();
+
+    ControlFilter cf1 =
+      new ControlFilter(
+        new String[] { PAT3, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        cf1, new EnhancedLineNumberFilter(), new AbsoluteTimeFilter(),
+        new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.6"));
+  }
+
+  public void test7() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout7.properties");
+    common();
+
+    ControlFilter cf1 =
+      new ControlFilter(
+        new String[] { PAT3, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        cf1, new EnhancedLineNumberFilter(), new AbsoluteTimeFilter(),
+        new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.7"));
+  }
+
+  public void test8() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout8.properties");
+    common();
+
+    ControlFilter cf1 =
+      new ControlFilter(
+        new String[] { PAT4, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        cf1, new EnhancedLineNumberFilter(), new RelativeTimeFilter(),
+        new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.8"));
+  }
+
+  public void test9() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout9.properties");
+    common();
+
+    ControlFilter cf1 =
+      new ControlFilter(
+        new String[] { PAT5, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        cf1, new EnhancedLineNumberFilter(), new SunReflectFilter(),
+        new EnhancedJunitTestRunnerFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.9"));
+  }
+
+  public void test10() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout10.properties");
+    common();
+
+    ControlFilter cf1 =
+      new ControlFilter(
+        new String[] { PAT6, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        cf1, new EnhancedLineNumberFilter(), new SunReflectFilter(),
+        new EnhancedJunitTestRunnerFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.10"));
+  }
+
+  public void test11() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout11.properties");
+    common();
+
+    ControlFilter cf1 =
+      new ControlFilter(
+        new String[] { PAT11a, PAT11b, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        cf1, new EnhancedLineNumberFilter(), new SunReflectFilter(),
+        new EnhancedJunitTestRunnerFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.11"));
+  }
+
+  public void test12() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout12.properties");
+    common();
+
+    ControlFilter cf1 =
+      new ControlFilter(
+        new String[] { PAT12, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        cf1, new EnhancedLineNumberFilter(), new SunReflectFilter(),
+        new EnhancedJunitTestRunnerFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.12"));
+  }
+
+  public void test13() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout13.properties");
+    common();
+
+    ControlFilter cf1 =
+      new ControlFilter(
+        new String[] { PAT13, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        cf1, new EnhancedLineNumberFilter(), new SunReflectFilter(),
+        new EnhancedJunitTestRunnerFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.13"));
+  }
+
+    /**
+     * Test of class abbreviation.
+     *
+     * @throws Exception
+     */
+    public void test14() throws Exception {
+      configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout14.properties");
+      common();
+
+      Transformer.transform(
+        TEMP, FILTERED,
+        new Filter[] {
+          new EnhancedLineNumberFilter(), new SunReflectFilter(),
+          new EnhancedJunitTestRunnerFilter()
+        });
+      assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.14"));
+    }
+
+
+    private static void clearMDC() throws Exception {
+        java.util.Hashtable context = MDC.getContext();
+        if (context != null) {
+            context.clear();
+        }
+    }
+
+  public void testMDC1() throws Exception {
+    configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout.mdc.1.properties");
+    clearMDC();
+    MDC.put("key1", "va11");
+    MDC.put("key2", "va12");
+    logger.debug("Hello World");
+    MDC.remove("key1");
+    MDC.remove("key2");
+
+    Transformer.transform(
+      TEMP, FILTERED,
+      new Filter[] {
+        new EnhancedLineNumberFilter(), new SunReflectFilter(),
+        new EnhancedJunitTestRunnerFilter(),
+        new MDCOrderFilter()
+      });
+    assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.mdc.1"));
+  }
+    /**
+     * Tests log4j 1.2 style extension of EnhancedPatternLayout.
+     * Was test14 in log4j 1.2.
+     * @throws Exception
+     */
+    public void test15() throws Exception {
+      configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout15.properties");
+      common();
+      ControlFilter cf1 = new ControlFilter(new String[]{PAT14, EXCEPTION1,
+                                 EXCEPTION2, EXCEPTION3, EXCEPTION4});
+      Transformer.transform(
+        TEMP, FILTERED,
+        new Filter[] {
+          cf1, new EnhancedLineNumberFilter(), new SunReflectFilter(),
+          new EnhancedJunitTestRunnerFilter()
+        });
+      assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.15"));
+    }
+    /**
+     * Tests explicit UTC time zone in pattern.
+     * @throws Exception
+     */
+    public void test16() throws Exception {
+      final long start = new Date().getTime();
+      configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout16.properties");
+      common();
+      final long end = new Date().getTime();
+      FileReader reader = new FileReader("output/patternLayout16.log");
+      char chars[] = new char[50];
+      reader.read(chars, 0, chars.length);
+      reader.close();
+      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+      format.setTimeZone(TimeZone.getTimeZone("GMT+0"));
+      String utcStr = new String(chars, 0, 19);
+      Date utcDate = format.parse(utcStr, new ParsePosition(0));
+      assertTrue(utcDate.getTime() >= start - 1000 && utcDate.getTime() < end + 1000);
+      String cstStr = new String(chars, 21, 19);
+      format.setTimeZone(TimeZone.getTimeZone("GMT-6"));
+      Date cstDate = format.parse(cstStr, new ParsePosition(0));
+      assertFalse(cstStr.equals(utcStr));
+      assertTrue(cstDate.getTime() >= start - 1000 && cstDate.getTime() < end + 1000);
+    }
+
+  void common() {
+    int i = -1;
+
+    logger.debug("Message " + ++i);
+    root.debug("Message " + i);
+
+    logger.info("Message " + ++i);
+    root.info("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);
+
+    Exception e = new Exception("Just testing");
+
+    logger.debug("Message " + ++i, e);
+    logger.info("Message " + ++i, e);
+    logger.warn("Message " + ++i, e);
+    logger.error("Message " + ++i, e);
+    logger.log(Level.FATAL, "Message " + ++i, e);
+  }
+
+  /**
+    Test case for MDC conversion pattern. */
+  public void testMDC2() throws Exception {
+    String OUTPUT_FILE   = "output/patternLayout.mdc.2";
+    String WITNESS_FILE  = FILE_PREFIX + "witness/pattern/enhancedPatternLayout.mdc.2";
+    
+    String mdcMsgPattern1 = "%m : %X%n";
+    String mdcMsgPattern2 = "%m : %X{key1}%n";
+    String mdcMsgPattern3 = "%m : %X{key2}%n";
+    String mdcMsgPattern4 = "%m : %X{key3}%n";
+    String mdcMsgPattern5 = "%m : %X{key1},%X{key2},%X{key3}%n";
+    
+    // set up appender
+    EnhancedPatternLayout layout = new EnhancedPatternLayout("%m%n");
+    Appender appender = new FileAppender(layout, OUTPUT_FILE, false);
+            
+    // set appender on root and set level to debug
+    root.addAppender(appender);
+    root.setLevel(Level.DEBUG);
+
+    clearMDC();
+    // output starting message
+    root.debug("starting mdc pattern test");
+ 
+    layout.setConversionPattern(mdcMsgPattern1);
+    layout.activateOptions();
+    root.debug("empty mdc, no key specified in pattern");
+    
+    layout.setConversionPattern(mdcMsgPattern2);
+    layout.activateOptions();
+    root.debug("empty mdc, key1 in pattern");
+    
+    layout.setConversionPattern(mdcMsgPattern3);
+    layout.activateOptions();
+    root.debug("empty mdc, key2 in pattern");
+    
+    layout.setConversionPattern(mdcMsgPattern4);
+    layout.activateOptions();
+    root.debug("empty mdc, key3 in pattern");
+    
+    layout.setConversionPattern(mdcMsgPattern5);
+    layout.activateOptions();
+    root.debug("empty mdc, key1, key2, and key3 in pattern");
+
+    MDC.put("key1", "value1");
+    MDC.put("key2", "value2");
+
+    layout.setConversionPattern(mdcMsgPattern1);
+    layout.activateOptions();
+    root.debug("filled mdc, no key specified in pattern");
+    
+    layout.setConversionPattern(mdcMsgPattern2);
+    layout.activateOptions();
+    root.debug("filled mdc, key1 in pattern");
+    
+    layout.setConversionPattern(mdcMsgPattern3);
+    layout.activateOptions();
+    root.debug("filled mdc, key2 in pattern");
+    
+    layout.setConversionPattern(mdcMsgPattern4);
+    layout.activateOptions();
+    root.debug("filled mdc, key3 in pattern");
+    
+    layout.setConversionPattern(mdcMsgPattern5);
+    layout.activateOptions();
+    root.debug("filled mdc, key1, key2, and key3 in pattern");
+
+    MDC.remove("key1");
+    MDC.remove("key2");
+
+    layout.setConversionPattern("%m%n");
+    layout.activateOptions();
+    root.debug("finished mdc pattern test");
+
+
+      Transformer.transform(
+        OUTPUT_FILE, FILTERED,
+        new Filter[] {
+          new EnhancedLineNumberFilter(), new SunReflectFilter(),
+          new EnhancedJunitTestRunnerFilter(),
+          new MDCOrderFilter()
+        });
+
+    assertTrue(compare(FILTERED, WITNESS_FILE));
+  }
+  /**
+    Test case for throwable conversion pattern. */
+  public void testThrowable() throws Exception {
+    String OUTPUT_FILE   = "output/patternLayout.throwable";
+    String WITNESS_FILE  = FILE_PREFIX + "witness/pattern/enhancedPatternLayout.throwable";
+    
+    
+    // set up appender
+    EnhancedPatternLayout layout = new EnhancedPatternLayout("%m%n");
+    Appender appender = new FileAppender(layout, OUTPUT_FILE, false);
+            
+    // set appender on root and set level to debug
+    root.addAppender(appender);
+    root.setLevel(Level.DEBUG);
+    
+    // output starting message
+    root.debug("starting throwable pattern test");
+     Exception ex = new Exception("Test Exception");
+    root.debug("plain pattern, no exception");
+    root.debug("plain pattern, with exception", ex);
+    layout.setConversionPattern("%m%n%throwable");
+    layout.activateOptions();
+    root.debug("%throwable, no exception");
+    root.debug("%throwable, with exception", ex);
+
+    layout.setConversionPattern("%m%n%throwable{short}");
+    layout.activateOptions();
+    root.debug("%throwable{short}, no exception");
+    root.debug("%throwable{short}, with exception", ex);
+
+    layout.setConversionPattern("%m%n%throwable{none}");
+    layout.activateOptions();
+    root.debug("%throwable{none}, no exception");
+    root.debug("%throwable{none}, with exception", ex);
+
+    layout.setConversionPattern("%m%n%throwable{0}");
+    layout.activateOptions();
+    root.debug("%throwable{0}, no exception");
+    root.debug("%throwable{0}, with exception", ex);
+
+    layout.setConversionPattern("%m%n%throwable{1}");
+    layout.activateOptions();
+    root.debug("%throwable{1}, no exception");
+    root.debug("%throwable{1}, with exception", ex);
+
+    layout.setConversionPattern("%m%n%throwable{100}");
+    layout.activateOptions();
+    root.debug("%throwable{100}, no exception");
+    root.debug("%throwable{100}, with exception", ex);
+
+    //
+    //  manufacture a pattern to get just the first two lines
+    //
+    String[] trace = new ThrowableInformation(ex).getThrowableStrRep();
+    layout.setConversionPattern("%m%n%throwable{" + (2 - trace.length) + "}");
+    layout.activateOptions();
+    root.debug("%throwable{-n}, no exception");
+    root.debug("%throwable{-n}, with exception", ex);
+
+
+      Transformer.transform(
+        OUTPUT_FILE, FILTERED,
+        new Filter[] {
+          new EnhancedLineNumberFilter(), new SunReflectFilter(),
+          new EnhancedJunitTestRunnerFilter(),
+          new MDCOrderFilter()
+        });
+
+    assertTrue(compare(FILTERED, WITNESS_FILE));
+  }
+}

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedThrowableRendererTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/EnhancedThrowableRendererTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedThrowableRendererTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedThrowableRendererTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/EnhancedThrowableRendererTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedThrowableRendererTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/FileAppenderTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/FileAppenderTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/FileAppenderTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/FileAppenderTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/FileAppenderTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/FileAppenderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/FileAppenderTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HTMLLayoutTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/HTMLLayoutTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HTMLLayoutTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HTMLLayoutTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/HTMLLayoutTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HTMLLayoutTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HierarchyThresholdTestCase.java
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HierarchyThresholdTestCase.java?rev=1345524&view=auto
==============================================================================
--- logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HierarchyThresholdTestCase.java (added)
+++ logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HierarchyThresholdTestCase.java Sat Jun  2 15:35:46 2012
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.log4j;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.framework.Test;
+
+import org.apache.log4j.util.Compare;
+import org.apache.log4j.xml.XLevel;
+
+/**
+   Test the configuration of the hierarchy-wide threshold.
+
+   @author  Ceki G&uuml;lc&uuml;
+*/
+public class HierarchyThresholdTestCase extends TestCase {
+
+  static final String FILE_PREFIX = "target/test-classes";
+  static final String INPUT_DIR = FILE_PREFIX + "/input";
+  static final String WITNESS_DIR = FILE_PREFIX + "/witness";
+  
+  static String TEMP = "output/temp";
+  static Logger logger = Logger.getLogger(HierarchyThresholdTestCase.class);
+
+  public HierarchyThresholdTestCase(String name) {
+    super(name);
+  }
+
+  public void setUp() {
+  }
+  
+  public void tearDown() {
+    System.out.println("Tearing down test case.");
+    logger.getLoggerRepository().resetConfiguration();
+  }
+  
+  public void test1() throws Exception {
+    PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold1.properties");
+    common();
+    assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.1"));
+  }
+
+  public void test2() throws Exception {
+    PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold2.properties");
+    common();
+    assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.2"));
+  }
+
+  public void test3() throws Exception {
+    PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold3.properties");
+    common();
+    assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.3"));
+  }
+
+  public void test4() throws Exception {
+    PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold4.properties");
+    common();
+    assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.4"));
+  }
+
+  public void test5() throws Exception {
+    PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold5.properties");
+    common();
+    assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.5"));
+  }
+
+  public void test6() throws Exception {
+    PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold6.properties");
+    common();
+    assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.6"));
+  }
+
+  public void test7() throws Exception {
+    PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold7.properties");
+    common();
+    assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.7"));
+  }
+
+  public void test8() throws Exception {
+    PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold8.properties");
+    common();
+    assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.8"));
+  }
+
+
+  static 
+  void common() {
+    String oldThreadName = Thread.currentThread().getName();
+    Thread.currentThread().setName("main");
+
+    logger.log(XLevel.TRACE, "m0");
+    logger.debug("m1");
+    logger.info("m2");
+    logger.warn("m3");
+    logger.error("m4");
+    logger.fatal("m5");
+
+    Thread.currentThread().setName(oldThreadName);
+  }
+
+  public static Test suite() {
+    TestSuite suite = new TestSuite();
+    suite.addTest(new HierarchyThresholdTestCase("test1"));
+    suite.addTest(new HierarchyThresholdTestCase("test2"));
+    suite.addTest(new HierarchyThresholdTestCase("test3"));
+    suite.addTest(new HierarchyThresholdTestCase("test4"));
+    suite.addTest(new HierarchyThresholdTestCase("test5"));
+    suite.addTest(new HierarchyThresholdTestCase("test6"));
+    suite.addTest(new HierarchyThresholdTestCase("test7"));
+    suite.addTest(new HierarchyThresholdTestCase("test8"));
+    return suite;
+  }
+}

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HierarchyThresholdTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/Last.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/Last.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/Last.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/Last.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/Last.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/Last.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/Last.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/LayoutTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/LayoutTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/LayoutTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/LayoutTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/LayoutTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
    (empty)

Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/LayoutTest.java
------------------------------------------------------------------------------
    svn:eol-style = native