You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by Gary Gregory <ga...@gmail.com> on 2016/02/23 19:14:10 UTC

Fwd: [3/5] logging-log4j2 git commit: fix spuriously failing tests

Should we use a LoggerContextRule here?

Gary
---------- Forwarded message ----------
From: <rp...@apache.org>
Date: Feb 23, 2016 9:48 AM
Subject: [3/5] logging-log4j2 git commit: fix spuriously failing tests
To: <co...@logging.apache.org>
Cc:

fix spuriously failing tests
>
>
> Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
> Commit:
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/047565e8
> Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/047565e8
> Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/047565e8
>
> Branch: refs/heads/master
> Commit: 047565e8928b0c9893c25ee92ffdf48dbcd6965c
> Parents: 5fea6c4
> Author: rpopma <rp...@apache.org>
> Authored: Wed Feb 24 02:46:04 2016 +0900
> Committer: rpopma <rp...@apache.org>
> Committed: Wed Feb 24 02:46:04 2016 +0900
>
> ----------------------------------------------------------------------
>  .../routing/PropertiesRoutingAppenderTest.java       |  1 +
>  .../core/appender/routing/RoutingAppenderTest.java   |  1 +
>  .../routing/RoutingAppenderWithPurgingTest.java      | 13 +++++++------
>  .../appender/routing/RoutingDefaultAppenderTest.java |  1 +
>  .../org/apache/logging/log4j/junit/CleanFiles.java   | 15 +++++++++++----
>  5 files changed, 21 insertions(+), 10 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
> ----------------------------------------------------------------------
> diff --git
> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
> index 81910fc..a02a9d1 100644
> ---
> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
> +++
> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
> @@ -58,6 +58,7 @@ public class PropertiesRoutingAppenderTest {
>      @After
>      public void tearDown() throws Exception {
>          this.app.clear();
> +        this.init.getContext().stop();
>      }
>
>      @Test
>
>
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
> ----------------------------------------------------------------------
> diff --git
> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
> index 6f1613a..85f704e 100644
> ---
> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
> +++
> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
> @@ -57,6 +57,7 @@ public class RoutingAppenderTest {
>      @After
>      public void tearDown() throws Exception {
>          this.app.clear();
> +        this.init.getContext().stop();
>      }
>
>      @Test
>
>
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
> ----------------------------------------------------------------------
> diff --git
> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
> index 49ffabe..9920690 100644
> ---
> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
> +++
> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
> @@ -43,7 +43,7 @@ public class RoutingAppenderWithPurgingTest {
>      private static final String MANUAL_LOG_FILE1 =
> "target/routing-purge-manual/routingtest-1.log";
>      private static final String MANUAL_LOG_FILE2 =
> "target/routing-purge-manual/routingtest-2.log";
>      private static final String MANUAL_LOG_FILE3 =
> "target/routing-purge-manual/routingtest-3.log";
> -
> +
>
>      private ListAppender app;
>      private RoutingAppender routingAppenderIdle;
> @@ -54,9 +54,9 @@ public class RoutingAppenderWithPurgingTest {
>      public LoggerContextRule init = new LoggerContextRule(CONFIG);
>
>      @Rule
> -    public CleanFiles files = new CleanFiles(IDLE_LOG_FILE1,
> IDLE_LOG_FILE2, IDLE_LOG_FILE3,
> +    public CleanFiles files = new CleanFiles(IDLE_LOG_FILE1,
> IDLE_LOG_FILE2, IDLE_LOG_FILE3,
>                 MANUAL_LOG_FILE1, MANUAL_LOG_FILE2, MANUAL_LOG_FILE3);
> -
> +
>
>      @Before
>      public void setUp() throws Exception {
> @@ -70,6 +70,7 @@ public class RoutingAppenderWithPurgingTest {
>      @After
>      public void tearDown() throws Exception {
>          this.app.clear();
> +        this.init.getContext().stop();
>      }
>
>      @Test(timeout = 5000)
> @@ -85,7 +86,7 @@ public class RoutingAppenderWithPurgingTest {
>          EventLogger.logEvent(msg);
>          String[] files = {IDLE_LOG_FILE1, IDLE_LOG_FILE2, IDLE_LOG_FILE3,
> MANUAL_LOG_FILE1, MANUAL_LOG_FILE2, MANUAL_LOG_FILE3};
>          assertFileExistance(files);
> -
> +
>          assertEquals("Incorrect number of appenders with
> IdlePurgePolicy.", 3, routingAppenderIdle.getAppenders().size());
>          assertEquals("Incorrect number of appenders with IdlePurgePolicy
> with HangingAppender.",
>                  3,
> routingAppenderIdleWithHangingAppender.getAppenders().size());
> @@ -96,7 +97,7 @@ public class RoutingAppenderWithPurgingTest {
>
>          assertEquals("Incorrect number of appenders with
> IdlePurgePolicy.", 1, routingAppenderIdle.getAppenders().size());
>          assertEquals("Incorrect number of appenders with manual purge.",
> 3, routingAppenderManual.getAppenders().size());
> -
> +
>          routingAppenderManual.deleteAppender("1");
>          routingAppenderManual.deleteAppender("2");
>          routingAppenderManual.deleteAppender("3");
> @@ -104,7 +105,7 @@ public class RoutingAppenderWithPurgingTest {
>          assertEquals("Incorrect number of appenders with
> IdlePurgePolicy.", 1, routingAppenderIdle.getAppenders().size());
>          assertEquals("Incorrect number of appenders with manual purge.",
> 0, routingAppenderManual.getAppenders().size());
>      }
> -
> +
>      private void assertFileExistance(String... files) {
>         for (String file : files) {
>                         assertTrue("File should exist - " + file + " file
> ", new File(file).exists());
>
>
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
> ----------------------------------------------------------------------
> diff --git
> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
> index a84460c..44d52e0 100644
> ---
> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
> +++
> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
> @@ -56,6 +56,7 @@ public class RoutingDefaultAppenderTest {
>          if (app != null) {
>              app.clear();
>          }
> +        this.init.getContext().stop();
>      }
>
>      @Test
>
>
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
> ----------------------------------------------------------------------
> diff --git
> a/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
> b/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
> index 36386af..6713aea 100644
> ---
> a/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
> +++
> b/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
> @@ -31,6 +31,7 @@ import static org.junit.Assert.*;
>   * A JUnit test rule to automatically delete certain files after a test
> is run.
>   */
>  public class CleanFiles extends ExternalResource {
> +    private static final int MAX_TRIES = 10;
>      private final List<File> files;
>
>      public CleanFiles(final File... files) {
> @@ -46,11 +47,17 @@ public class CleanFiles extends ExternalResource {
>
>      private void clean() {
>          for (final File file : files) {
> -            if (file.exists()) {
> +            for (int i = 0; i < MAX_TRIES; i++) {
> +                if (file.exists()) {
> +                    try {
> +
> FileSystems.getDefault().provider().delete(file.toPath());
> +                    } catch (IOException e) {
> +                        fail(e.toString());
> +                    }
> +                }
>                  try {
> -
> FileSystems.getDefault().provider().delete(file.toPath());
> -                } catch (IOException e) {
> -                    fail(e.toString());
> +                    Thread.sleep(200);
> +                } catch (InterruptedException e) {
>                  }
>              }
>          }
>
>

Re: [3/5] logging-log4j2 git commit: fix spuriously failing tests

Posted by Matt Sicker <bo...@gmail.com>.
If you have more than one rule, you need to use a RuleChain to specify the
order. A lot of the rolling appender unit tests use this. Just grep for
RuleChain.outerRule

On 23 February 2016 at 12:20, Remko Popma <re...@gmail.com> wrote:

> I'm not sure how these Rules work and in which order they execute...
> Perhaps there is a better way to address this than what I did.
>
> On Wed, Feb 24, 2016 at 3:14 AM, Gary Gregory <ga...@gmail.com>
> wrote:
>
>> Should we use a LoggerContextRule here?
>>
>> Gary
>> ---------- Forwarded message ----------
>> From: <rp...@apache.org>
>> Date: Feb 23, 2016 9:48 AM
>> Subject: [3/5] logging-log4j2 git commit: fix spuriously failing tests
>> To: <co...@logging.apache.org>
>> Cc:
>>
>> fix spuriously failing tests
>>>
>>>
>>> Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
>>> Commit:
>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/047565e8
>>> Tree:
>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/047565e8
>>> Diff:
>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/047565e8
>>>
>>> Branch: refs/heads/master
>>> Commit: 047565e8928b0c9893c25ee92ffdf48dbcd6965c
>>> Parents: 5fea6c4
>>> Author: rpopma <rp...@apache.org>
>>> Authored: Wed Feb 24 02:46:04 2016 +0900
>>> Committer: rpopma <rp...@apache.org>
>>> Committed: Wed Feb 24 02:46:04 2016 +0900
>>>
>>> ----------------------------------------------------------------------
>>>  .../routing/PropertiesRoutingAppenderTest.java       |  1 +
>>>  .../core/appender/routing/RoutingAppenderTest.java   |  1 +
>>>  .../routing/RoutingAppenderWithPurgingTest.java      | 13 +++++++------
>>>  .../appender/routing/RoutingDefaultAppenderTest.java |  1 +
>>>  .../org/apache/logging/log4j/junit/CleanFiles.java   | 15
>>> +++++++++++----
>>>  5 files changed, 21 insertions(+), 10 deletions(-)
>>> ----------------------------------------------------------------------
>>>
>>>
>>>
>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
>>> ----------------------------------------------------------------------
>>> diff --git
>>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
>>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
>>> index 81910fc..a02a9d1 100644
>>> ---
>>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
>>> +++
>>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
>>> @@ -58,6 +58,7 @@ public class PropertiesRoutingAppenderTest {
>>>      @After
>>>      public void tearDown() throws Exception {
>>>          this.app.clear();
>>> +        this.init.getContext().stop();
>>>      }
>>>
>>>      @Test
>>>
>>>
>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
>>> ----------------------------------------------------------------------
>>> diff --git
>>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
>>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
>>> index 6f1613a..85f704e 100644
>>> ---
>>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
>>> +++
>>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
>>> @@ -57,6 +57,7 @@ public class RoutingAppenderTest {
>>>      @After
>>>      public void tearDown() throws Exception {
>>>          this.app.clear();
>>> +        this.init.getContext().stop();
>>>      }
>>>
>>>      @Test
>>>
>>>
>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
>>> ----------------------------------------------------------------------
>>> diff --git
>>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
>>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
>>> index 49ffabe..9920690 100644
>>> ---
>>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
>>> +++
>>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
>>> @@ -43,7 +43,7 @@ public class RoutingAppenderWithPurgingTest {
>>>      private static final String MANUAL_LOG_FILE1 =
>>> "target/routing-purge-manual/routingtest-1.log";
>>>      private static final String MANUAL_LOG_FILE2 =
>>> "target/routing-purge-manual/routingtest-2.log";
>>>      private static final String MANUAL_LOG_FILE3 =
>>> "target/routing-purge-manual/routingtest-3.log";
>>> -
>>> +
>>>
>>>      private ListAppender app;
>>>      private RoutingAppender routingAppenderIdle;
>>> @@ -54,9 +54,9 @@ public class RoutingAppenderWithPurgingTest {
>>>      public LoggerContextRule init = new LoggerContextRule(CONFIG);
>>>
>>>      @Rule
>>> -    public CleanFiles files = new CleanFiles(IDLE_LOG_FILE1,
>>> IDLE_LOG_FILE2, IDLE_LOG_FILE3,
>>> +    public CleanFiles files = new CleanFiles(IDLE_LOG_FILE1,
>>> IDLE_LOG_FILE2, IDLE_LOG_FILE3,
>>>                 MANUAL_LOG_FILE1, MANUAL_LOG_FILE2, MANUAL_LOG_FILE3);
>>> -
>>> +
>>>
>>>      @Before
>>>      public void setUp() throws Exception {
>>> @@ -70,6 +70,7 @@ public class RoutingAppenderWithPurgingTest {
>>>      @After
>>>      public void tearDown() throws Exception {
>>>          this.app.clear();
>>> +        this.init.getContext().stop();
>>>      }
>>>
>>>      @Test(timeout = 5000)
>>> @@ -85,7 +86,7 @@ public class RoutingAppenderWithPurgingTest {
>>>          EventLogger.logEvent(msg);
>>>          String[] files = {IDLE_LOG_FILE1, IDLE_LOG_FILE2,
>>> IDLE_LOG_FILE3, MANUAL_LOG_FILE1, MANUAL_LOG_FILE2, MANUAL_LOG_FILE3};
>>>          assertFileExistance(files);
>>> -
>>> +
>>>          assertEquals("Incorrect number of appenders with
>>> IdlePurgePolicy.", 3, routingAppenderIdle.getAppenders().size());
>>>          assertEquals("Incorrect number of appenders with
>>> IdlePurgePolicy with HangingAppender.",
>>>                  3,
>>> routingAppenderIdleWithHangingAppender.getAppenders().size());
>>> @@ -96,7 +97,7 @@ public class RoutingAppenderWithPurgingTest {
>>>
>>>          assertEquals("Incorrect number of appenders with
>>> IdlePurgePolicy.", 1, routingAppenderIdle.getAppenders().size());
>>>          assertEquals("Incorrect number of appenders with manual
>>> purge.", 3, routingAppenderManual.getAppenders().size());
>>> -
>>> +
>>>          routingAppenderManual.deleteAppender("1");
>>>          routingAppenderManual.deleteAppender("2");
>>>          routingAppenderManual.deleteAppender("3");
>>> @@ -104,7 +105,7 @@ public class RoutingAppenderWithPurgingTest {
>>>          assertEquals("Incorrect number of appenders with
>>> IdlePurgePolicy.", 1, routingAppenderIdle.getAppenders().size());
>>>          assertEquals("Incorrect number of appenders with manual
>>> purge.", 0, routingAppenderManual.getAppenders().size());
>>>      }
>>> -
>>> +
>>>      private void assertFileExistance(String... files) {
>>>         for (String file : files) {
>>>                         assertTrue("File should exist - " + file + "
>>> file ", new File(file).exists());
>>>
>>>
>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
>>> ----------------------------------------------------------------------
>>> diff --git
>>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
>>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
>>> index a84460c..44d52e0 100644
>>> ---
>>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
>>> +++
>>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
>>> @@ -56,6 +56,7 @@ public class RoutingDefaultAppenderTest {
>>>          if (app != null) {
>>>              app.clear();
>>>          }
>>> +        this.init.getContext().stop();
>>>      }
>>>
>>>      @Test
>>>
>>>
>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
>>> ----------------------------------------------------------------------
>>> diff --git
>>> a/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
>>> b/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
>>> index 36386af..6713aea 100644
>>> ---
>>> a/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
>>> +++
>>> b/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
>>> @@ -31,6 +31,7 @@ import static org.junit.Assert.*;
>>>   * A JUnit test rule to automatically delete certain files after a test
>>> is run.
>>>   */
>>>  public class CleanFiles extends ExternalResource {
>>> +    private static final int MAX_TRIES = 10;
>>>      private final List<File> files;
>>>
>>>      public CleanFiles(final File... files) {
>>> @@ -46,11 +47,17 @@ public class CleanFiles extends ExternalResource {
>>>
>>>      private void clean() {
>>>          for (final File file : files) {
>>> -            if (file.exists()) {
>>> +            for (int i = 0; i < MAX_TRIES; i++) {
>>> +                if (file.exists()) {
>>> +                    try {
>>> +
>>> FileSystems.getDefault().provider().delete(file.toPath());
>>> +                    } catch (IOException e) {
>>> +                        fail(e.toString());
>>> +                    }
>>> +                }
>>>                  try {
>>> -
>>> FileSystems.getDefault().provider().delete(file.toPath());
>>> -                } catch (IOException e) {
>>> -                    fail(e.toString());
>>> +                    Thread.sleep(200);
>>> +                } catch (InterruptedException e) {
>>>                  }
>>>              }
>>>          }
>>>
>>>
>


-- 
Matt Sicker <bo...@gmail.com>

Re: [3/5] logging-log4j2 git commit: fix spuriously failing tests

Posted by Remko Popma <re...@gmail.com>.
I'm not sure how these Rules work and in which order they execute...
Perhaps there is a better way to address this than what I did.

On Wed, Feb 24, 2016 at 3:14 AM, Gary Gregory <ga...@gmail.com>
wrote:

> Should we use a LoggerContextRule here?
>
> Gary
> ---------- Forwarded message ----------
> From: <rp...@apache.org>
> Date: Feb 23, 2016 9:48 AM
> Subject: [3/5] logging-log4j2 git commit: fix spuriously failing tests
> To: <co...@logging.apache.org>
> Cc:
>
> fix spuriously failing tests
>>
>>
>> Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
>> Commit:
>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/047565e8
>> Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/047565e8
>> Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/047565e8
>>
>> Branch: refs/heads/master
>> Commit: 047565e8928b0c9893c25ee92ffdf48dbcd6965c
>> Parents: 5fea6c4
>> Author: rpopma <rp...@apache.org>
>> Authored: Wed Feb 24 02:46:04 2016 +0900
>> Committer: rpopma <rp...@apache.org>
>> Committed: Wed Feb 24 02:46:04 2016 +0900
>>
>> ----------------------------------------------------------------------
>>  .../routing/PropertiesRoutingAppenderTest.java       |  1 +
>>  .../core/appender/routing/RoutingAppenderTest.java   |  1 +
>>  .../routing/RoutingAppenderWithPurgingTest.java      | 13 +++++++------
>>  .../appender/routing/RoutingDefaultAppenderTest.java |  1 +
>>  .../org/apache/logging/log4j/junit/CleanFiles.java   | 15 +++++++++++----
>>  5 files changed, 21 insertions(+), 10 deletions(-)
>> ----------------------------------------------------------------------
>>
>>
>>
>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
>> ----------------------------------------------------------------------
>> diff --git
>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
>> index 81910fc..a02a9d1 100644
>> ---
>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
>> +++
>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.java
>> @@ -58,6 +58,7 @@ public class PropertiesRoutingAppenderTest {
>>      @After
>>      public void tearDown() throws Exception {
>>          this.app.clear();
>> +        this.init.getContext().stop();
>>      }
>>
>>      @Test
>>
>>
>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
>> ----------------------------------------------------------------------
>> diff --git
>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
>> index 6f1613a..85f704e 100644
>> ---
>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
>> +++
>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
>> @@ -57,6 +57,7 @@ public class RoutingAppenderTest {
>>      @After
>>      public void tearDown() throws Exception {
>>          this.app.clear();
>> +        this.init.getContext().stop();
>>      }
>>
>>      @Test
>>
>>
>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
>> ----------------------------------------------------------------------
>> diff --git
>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
>> index 49ffabe..9920690 100644
>> ---
>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
>> +++
>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest.java
>> @@ -43,7 +43,7 @@ public class RoutingAppenderWithPurgingTest {
>>      private static final String MANUAL_LOG_FILE1 =
>> "target/routing-purge-manual/routingtest-1.log";
>>      private static final String MANUAL_LOG_FILE2 =
>> "target/routing-purge-manual/routingtest-2.log";
>>      private static final String MANUAL_LOG_FILE3 =
>> "target/routing-purge-manual/routingtest-3.log";
>> -
>> +
>>
>>      private ListAppender app;
>>      private RoutingAppender routingAppenderIdle;
>> @@ -54,9 +54,9 @@ public class RoutingAppenderWithPurgingTest {
>>      public LoggerContextRule init = new LoggerContextRule(CONFIG);
>>
>>      @Rule
>> -    public CleanFiles files = new CleanFiles(IDLE_LOG_FILE1,
>> IDLE_LOG_FILE2, IDLE_LOG_FILE3,
>> +    public CleanFiles files = new CleanFiles(IDLE_LOG_FILE1,
>> IDLE_LOG_FILE2, IDLE_LOG_FILE3,
>>                 MANUAL_LOG_FILE1, MANUAL_LOG_FILE2, MANUAL_LOG_FILE3);
>> -
>> +
>>
>>      @Before
>>      public void setUp() throws Exception {
>> @@ -70,6 +70,7 @@ public class RoutingAppenderWithPurgingTest {
>>      @After
>>      public void tearDown() throws Exception {
>>          this.app.clear();
>> +        this.init.getContext().stop();
>>      }
>>
>>      @Test(timeout = 5000)
>> @@ -85,7 +86,7 @@ public class RoutingAppenderWithPurgingTest {
>>          EventLogger.logEvent(msg);
>>          String[] files = {IDLE_LOG_FILE1, IDLE_LOG_FILE2,
>> IDLE_LOG_FILE3, MANUAL_LOG_FILE1, MANUAL_LOG_FILE2, MANUAL_LOG_FILE3};
>>          assertFileExistance(files);
>> -
>> +
>>          assertEquals("Incorrect number of appenders with
>> IdlePurgePolicy.", 3, routingAppenderIdle.getAppenders().size());
>>          assertEquals("Incorrect number of appenders with IdlePurgePolicy
>> with HangingAppender.",
>>                  3,
>> routingAppenderIdleWithHangingAppender.getAppenders().size());
>> @@ -96,7 +97,7 @@ public class RoutingAppenderWithPurgingTest {
>>
>>          assertEquals("Incorrect number of appenders with
>> IdlePurgePolicy.", 1, routingAppenderIdle.getAppenders().size());
>>          assertEquals("Incorrect number of appenders with manual purge.",
>> 3, routingAppenderManual.getAppenders().size());
>> -
>> +
>>          routingAppenderManual.deleteAppender("1");
>>          routingAppenderManual.deleteAppender("2");
>>          routingAppenderManual.deleteAppender("3");
>> @@ -104,7 +105,7 @@ public class RoutingAppenderWithPurgingTest {
>>          assertEquals("Incorrect number of appenders with
>> IdlePurgePolicy.", 1, routingAppenderIdle.getAppenders().size());
>>          assertEquals("Incorrect number of appenders with manual purge.",
>> 0, routingAppenderManual.getAppenders().size());
>>      }
>> -
>> +
>>      private void assertFileExistance(String... files) {
>>         for (String file : files) {
>>                         assertTrue("File should exist - " + file + " file
>> ", new File(file).exists());
>>
>>
>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
>> ----------------------------------------------------------------------
>> diff --git
>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
>> index a84460c..44d52e0 100644
>> ---
>> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
>> +++
>> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java
>> @@ -56,6 +56,7 @@ public class RoutingDefaultAppenderTest {
>>          if (app != null) {
>>              app.clear();
>>          }
>> +        this.init.getContext().stop();
>>      }
>>
>>      @Test
>>
>>
>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
>> ----------------------------------------------------------------------
>> diff --git
>> a/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
>> b/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
>> index 36386af..6713aea 100644
>> ---
>> a/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
>> +++
>> b/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
>> @@ -31,6 +31,7 @@ import static org.junit.Assert.*;
>>   * A JUnit test rule to automatically delete certain files after a test
>> is run.
>>   */
>>  public class CleanFiles extends ExternalResource {
>> +    private static final int MAX_TRIES = 10;
>>      private final List<File> files;
>>
>>      public CleanFiles(final File... files) {
>> @@ -46,11 +47,17 @@ public class CleanFiles extends ExternalResource {
>>
>>      private void clean() {
>>          for (final File file : files) {
>> -            if (file.exists()) {
>> +            for (int i = 0; i < MAX_TRIES; i++) {
>> +                if (file.exists()) {
>> +                    try {
>> +
>> FileSystems.getDefault().provider().delete(file.toPath());
>> +                    } catch (IOException e) {
>> +                        fail(e.toString());
>> +                    }
>> +                }
>>                  try {
>> -
>> FileSystems.getDefault().provider().delete(file.toPath());
>> -                } catch (IOException e) {
>> -                    fail(e.toString());
>> +                    Thread.sleep(200);
>> +                } catch (InterruptedException e) {
>>                  }
>>              }
>>          }
>>
>>