Return-Path: X-Original-To: apmail-logging-log4j-dev-archive@www.apache.org Delivered-To: apmail-logging-log4j-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 022A918347 for ; Tue, 23 Feb 2016 18:20:21 +0000 (UTC) Received: (qmail 73793 invoked by uid 500); 23 Feb 2016 18:20:17 -0000 Delivered-To: apmail-logging-log4j-dev-archive@logging.apache.org Received: (qmail 73746 invoked by uid 500); 23 Feb 2016 18:20:17 -0000 Mailing-List: contact log4j-dev-help@logging.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Log4J Developers List" Reply-To: "Log4J Developers List" Delivered-To: mailing list log4j-dev@logging.apache.org Received: (qmail 73736 invoked by uid 99); 23 Feb 2016 18:20:17 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 23 Feb 2016 18:20:17 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 51095C093B for ; Tue, 23 Feb 2016 18:20:17 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.179 X-Spam-Level: * X-Spam-Status: No, score=1.179 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx2-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id 5CDxMUJX6SCs for ; Tue, 23 Feb 2016 18:20:13 +0000 (UTC) Received: from mail-ig0-f177.google.com (mail-ig0-f177.google.com [209.85.213.177]) by mx2-lw-us.apache.org (ASF Mail Server at mx2-lw-us.apache.org) with ESMTPS id F3F165FB0A for ; Tue, 23 Feb 2016 18:20:12 +0000 (UTC) Received: by mail-ig0-f177.google.com with SMTP id y8so117451513igp.0 for ; Tue, 23 Feb 2016 10:20:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to; bh=ONLvEFL6o7L20Cux9LDC/hW34QpvcXNiDewtLjR8ydo=; b=oSKWKM5/KZId5LWEveDxJu0FeKHOpPrguqvjjYUdeph/57ckbYO7wa+zQfzTmHpLy6 vWVhLxOAZAnDL0cp2D2E7jeXG4fhqxSDfnA4JsqikPGFOZaxT9y4CRpaEZsLatYuEaz2 UotfzgDGxTRCRgn98SCE7/4qakkMXCfGUI0EYH4mO8sE2a6wbl/kuFveiccsMognL3Jh sNGh+YSsM49IRYxw3CymhacuWFp/upl6j0Di5HH+aw49K1y0AIy3eih1SPlqOmFbnjny +DmqhkXZe5pYJnZMNLAREsSBRg9hv2GNOT9E7A6FR2IOx7pCyUGClg4C4h2YjZT2ILKj ci6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to; bh=ONLvEFL6o7L20Cux9LDC/hW34QpvcXNiDewtLjR8ydo=; b=Fe7VHubg7bc+lQkEs0A1MXWV314qetK+Js3SpjiJcsTjmIwHl63q4h0skV1WCFSR9K d/xW7pI5PWutW3qf7yY49ai2766Skeob6ore4CbMMiuFH4yRpFbR5TlSzDP6pHU4Xw6A SIWYQ6k9ZKcRdTBL85bCo36SpN0RzbrcRUcsSrJORh8+k6TjOmwPfokfVPz3LZej7t5e h6YqhZcKiRhfeWCQ7TfwJFnTV9Jyys/3Z5hpVSmqXFfGH7KfQ3s/AeiuqrRIMcxABMMp kl4WceB9zKBjmU1ZPGVWVlesKZFT+ItKtYJ3w/OU9KkJIzmErPQzupy28gEMLQ3E+2+V naow== X-Gm-Message-State: AG10YOSNLFcQ6dYskooOBY2JP3UZ0VNyxAR3XxLARDidFAYv6IZOiNblDch2J8fNG8QOOrmGnyjp5s3kvoR75g== MIME-Version: 1.0 X-Received: by 10.50.64.146 with SMTP id o18mr19523090igs.9.1456251612197; Tue, 23 Feb 2016 10:20:12 -0800 (PST) Received: by 10.64.101.201 with HTTP; Tue, 23 Feb 2016 10:20:12 -0800 (PST) In-Reply-To: References: <164427174c42421ba2011c8792f8f674@git.apache.org> Date: Wed, 24 Feb 2016 03:20:12 +0900 Message-ID: Subject: Re: [3/5] logging-log4j2 git commit: fix spuriously failing tests From: Remko Popma To: Log4J Developers List Content-Type: multipart/alternative; boundary=047d7bea43fc0c7fb3052c74003f --047d7bea43fc0c7fb3052c74003f Content-Type: text/plain; charset=UTF-8 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 wrote: > Should we use a LoggerContextRule here? > > Gary > ---------- Forwarded message ---------- > From: > Date: Feb 23, 2016 9:48 AM > Subject: [3/5] logging-log4j2 git commit: fix spuriously failing tests > To: > 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 >> Authored: Wed Feb 24 02:46:04 2016 +0900 >> Committer: rpopma >> 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 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) { >> } >> } >> } >> >> --047d7bea43fc0c7fb3052c74003f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I'm not sure how these Rules work and in which order t= hey 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 <garydgregory@gmail.co= m> wrote:

Sh= ould we use a LoggerContextRule here?

Gary

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

fix sp= uriously failing tests


Project: http://git-wip-us.apache.org/repo= s/asf/logging-log4j2/repo
Commit: http://git-wip-us.apach= e.org/repos/asf/logging-log4j2/commit/047565e8
Tree: http://git-wip-us.apache.or= g/repos/asf/logging-log4j2/tree/047565e8
Diff: http://git-wip-us.apache.or= g/repos/asf/logging-log4j2/diff/047565e8

Branch: refs/heads/master
Commit: 047565e8928b0c9893c25ee92ffdf48dbcd6965c
Parents: 5fea6c4
Author: rpopma <r= popma@apache.org>
Authored: Wed Feb 24 02:46:04 2016 +0900
Committer: rpopma <rpopma@apache.org>
Committed: Wed Feb 24 02:46:04 2016 +0900

----------------------------------------------------------------------
=C2=A0.../routing/PropertiesRoutingAppenderTest.java=C2=A0 =C2=A0 =C2=A0 = =C2=A0|=C2=A0 1 +
=C2=A0.../core/appender/routing/RoutingAppenderTest.java=C2=A0 =C2=A0|=C2= =A0 1 +
=C2=A0.../routing/RoutingAppenderWithPurgingTest.java=C2=A0 =C2=A0 =C2=A0 |= 13 +++++++------
=C2=A0.../appender/routing/RoutingDefaultAppenderTest.java |=C2=A0 1 +
=C2=A0.../org/apache/logging/log4j/junit/CleanFiles.java=C2=A0 =C2=A0| 15 += ++++++++++----
=C2=A05 files changed, 21 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


h= ttp://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-co= re/src/test/java/org/apache/logging/log4j/core/appender/routing/PropertiesR= outingAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appende= r/routing/PropertiesRoutingAppenderTest.java b/log4j-core/src/test/java/org= /apache/logging/log4j/core/appender/routing/PropertiesRoutingAppenderTest.j= ava
index 81910fc..a02a9d1 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routi= ng/PropertiesRoutingAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routi= ng/PropertiesRoutingAppenderTest.java
@@ -58,6 +58,7 @@ public class PropertiesRoutingAppenderTest {
=C2=A0 =C2=A0 =C2=A0@After
=C2=A0 =C2=A0 =C2=A0public void tearDown() throws Exception {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0this.app.clear();
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 this.init.getContext().stop();
=C2=A0 =C2=A0 =C2=A0}

=C2=A0 =C2=A0 =C2=A0@Test

http://git-= wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-core/src/tes= t/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.j= ava
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appende= r/routing/RoutingAppenderTest.java b/log4j-core/src/test/java/org/apache/lo= gging/log4j/core/appender/routing/RoutingAppenderTest.java
index 6f1613a..85f704e 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routi= ng/RoutingAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routi= ng/RoutingAppenderTest.java
@@ -57,6 +57,7 @@ public class RoutingAppenderTest {
=C2=A0 =C2=A0 =C2=A0@After
=C2=A0 =C2=A0 =C2=A0public void tearDown() throws Exception {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0this.app.clear();
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 this.init.getContext().stop();
=C2=A0 =C2=A0 =C2=A0}

=C2=A0 =C2=A0 =C2=A0@Test

= http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/047565e8/log4j-c= ore/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingApp= enderWithPurgingTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appende= r/routing/RoutingAppenderWithPurgingTest.java b/log4j-core/src/test/java/or= g/apache/logging/log4j/core/appender/routing/RoutingAppenderWithPurgingTest= .java
index 49ffabe..9920690 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routi= ng/RoutingAppenderWithPurgingTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routi= ng/RoutingAppenderWithPurgingTest.java
@@ -43,7 +43,7 @@ public class RoutingAppenderWithPurgingTest {
=C2=A0 =C2=A0 =C2=A0private static final String MANUAL_LOG_FILE1 =3D "= target/routing-purge-manual/routingtest-1.log";
=C2=A0 =C2=A0 =C2=A0private static final String MANUAL_LOG_FILE2 =3D "= target/routing-purge-manual/routingtest-2.log";
=C2=A0 =C2=A0 =C2=A0private static final String MANUAL_LOG_FILE3 =3D "= target/routing-purge-manual/routingtest-3.log";
-
+

=C2=A0 =C2=A0 =C2=A0private ListAppender app;
=C2=A0 =C2=A0 =C2=A0private RoutingAppender routingAppenderIdle;
@@ -54,9 +54,9 @@ public class RoutingAppenderWithPurgingTest {
=C2=A0 =C2=A0 =C2=A0public LoggerContextRule init =3D new LoggerContextRule= (CONFIG);

=C2=A0 =C2=A0 =C2=A0@Rule
-=C2=A0 =C2=A0 public CleanFiles files =3D new CleanFiles(IDLE_LOG_FILE1, I= DLE_LOG_FILE2, IDLE_LOG_FILE3,
+=C2=A0 =C2=A0 public CleanFiles files =3D new CleanFiles(IDLE_LOG_FILE1, I= DLE_LOG_FILE2, IDLE_LOG_FILE3,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 MANUAL_LOG_FILE1, M= ANUAL_LOG_FILE2, MANUAL_LOG_FILE3);
-
+

=C2=A0 =C2=A0 =C2=A0@Before
=C2=A0 =C2=A0 =C2=A0public void setUp() throws Exception {
@@ -70,6 +70,7 @@ public class RoutingAppenderWithPurgingTest {
=C2=A0 =C2=A0 =C2=A0@After
=C2=A0 =C2=A0 =C2=A0public void tearDown() throws Exception {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0this.app.clear();
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 this.init.getContext().stop();
=C2=A0 =C2=A0 =C2=A0}

=C2=A0 =C2=A0 =C2=A0@Test(timeout =3D 5000)
@@ -85,7 +86,7 @@ public class RoutingAppenderWithPurgingTest {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0EventLogger.logEvent(msg);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0String[] files =3D {IDLE_LOG_FILE1, IDLE_= LOG_FILE2, IDLE_LOG_FILE3, MANUAL_LOG_FILE1, MANUAL_LOG_FILE2, MANUAL_LOG_F= ILE3};
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0assertFileExistance(files);
-
+
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0assertEquals("Incorrect number of ap= penders with IdlePurgePolicy.", 3, routingAppenderIdle.getAppenders().= size());
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0assertEquals("Incorrect number of ap= penders with IdlePurgePolicy with HangingAppender.",
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A03, routingApp= enderIdleWithHangingAppender.getAppenders().size());
@@ -96,7 +97,7 @@ public class RoutingAppenderWithPurgingTest {

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0assertEquals("Incorrect number of ap= penders with IdlePurgePolicy.", 1, routingAppenderIdle.getAppenders().= size());
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0assertEquals("Incorrect number of ap= penders with manual purge.", 3, routingAppenderManual.getAppenders().s= ize());
-
+
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0routingAppenderManual.deleteAppender(&quo= t;1");
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0routingAppenderManual.deleteAppender(&quo= t;2");
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0routingAppenderManual.deleteAppender(&quo= t;3");
@@ -104,7 +105,7 @@ public class RoutingAppenderWithPurgingTest {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0assertEquals("Incorrect number of ap= penders with IdlePurgePolicy.", 1, routingAppenderIdle.getAppenders().= size());
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0assertEquals("Incorrect number of ap= penders with manual purge.", 0, routingAppenderManual.getAppenders().s= ize());
=C2=A0 =C2=A0 =C2=A0}
-
+
=C2=A0 =C2=A0 =C2=A0private void assertFileExistance(String... files) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 for (String file : files) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 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/RoutingDefault= AppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appende= r/routing/RoutingDefaultAppenderTest.java b/log4j-core/src/test/java/org/ap= ache/logging/log4j/core/appender/routing/RoutingDefaultAppenderTest.java index a84460c..44d52e0 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routi= ng/RoutingDefaultAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/routi= ng/RoutingDefaultAppenderTest.java
@@ -56,6 +56,7 @@ public class RoutingDefaultAppenderTest {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (app !=3D null) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0app.clear();
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 this.init.getContext().stop();
=C2=A0 =C2=A0 =C2=A0}

=C2=A0 =C2=A0 =C2=A0@Test

http://git-wip-us.apache.org/repos/a= sf/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/CleanF= iles.java b/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFi= les.java
index 36386af..6713aea 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.ja= va
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.ja= va
@@ -31,6 +31,7 @@ import static org.junit.Assert.*;
=C2=A0 * A JUnit test rule to automatically delete certain files after a te= st is run.
=C2=A0 */
=C2=A0public class CleanFiles extends ExternalResource {
+=C2=A0 =C2=A0 private static final int MAX_TRIES =3D 10;
=C2=A0 =C2=A0 =C2=A0private final List<File> files;

=C2=A0 =C2=A0 =C2=A0public CleanFiles(final File... files) {
@@ -46,11 +47,17 @@ public class CleanFiles extends ExternalResource {

=C2=A0 =C2=A0 =C2=A0private void clean() {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0for (final File file : files) {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (file.exists()) {
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 for (int i =3D 0; i < MAX_TRI= ES; i++) {
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (file.exists())= {
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 try = {
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 FileSystems.getDefault().provider().delete(file.toPath());
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 } ca= tch (IOException e) {
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 fail(e.toString());
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 } +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0try {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 File= Systems.getDefault().provider().delete(file.toPath());
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 } catch (IOExcepti= on e) {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 fail= (e.toString());
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Thre= ad.sleep(200);
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 } catch (Interrupt= edException e) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}


--047d7bea43fc0c7fb3052c74003f--