On Tue, Apr 1, 2014 at 1:51 AM, Ralph Goers <[email protected]> wrote:
> Is this a flaw in the recent changes Matt made? > My guess is yes. > Do they need to be reverted? Or are the tests themselves flawed? I also > haven't had the time to investigate. > Well, this is the tricky part. Matt has suggested that these failures might reveal a problem in the file appender holding on to its file too long. Why only on Windows, how knows :( It seems like the kind of problem that would be generic... Gary > > Ralph > > On Mar 31, 2014, at 10:32 PM, Remko Popma <[email protected]> wrote: > > I haven't tried to build since a week ago, sorry, totally swamped at work. > > But I agree this should not stay this way. > > Sent from my iPhone > > On 2014/04/01, at 14:17, Gary Gregory <[email protected]> wrote: > > Sadly it looks like it. I have not heard from other Windows users though. > IMO this is not acceptable. This could also be a bug in the test or the > file appender. > > Gary > > > -------- Original message -------- > From: Remko Popma > Date:04/01/2014 00:41 (GMT-05:00) > To: Log4J Developers List > Subject: Re: unit test failures? > > Does everyone who wants to build on windows now need to exclude certain > tests in order for the build to succeed? > > Remko > > Sent from my iPhone > > On 2014/04/01, at 12:50, Gary Gregory <[email protected]> wrote: > > I've tweaked the POM to allow for Maven to skip specific tests like so: > > mvn test -Dlog4j.skip.test1=**/ConfigurationTest.java > -Dlog4j.skip.test2=**/FileOutputTest.java > > Gary > > > On Mon, Mar 31, 2014 at 9:38 PM, Gary Gregory <[email protected]>wrote: > >> If I change the method to: >> >> private void clean() { >> for (final File file : files) { >> if (file.exists()) { >> if (!file.delete()) { >> StatusLogger.getLogger().error( >> "TODO [FileAppender problem?] Could not >> delete file " + file + ", last modifed " >> + DateFormat.getInstance().format(new >> Date(file.lastModified()))); >> } else { >> file.deleteOnExit(); >> } >> } >> } >> >> I get 3 failures (instead of 9): >> >> ConfigurationTest >> org.apache.logging.log4j.core.config.ConfigurationTest >> [0] >> testLogToFile[0](org.apache.logging.log4j.core.config.ConfigurationTest) >> java.lang.AssertionError: >> Expected: is <1> >> but: was <2> >> >> at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20) >> >> at org.junit.Assert.assertThat(Assert.java:865) >> >> at org.junit.Assert.assertThat(Assert.java:832) >> >> at >> org.apache.logging.log4j.core.config.ConfigurationTest.testLogToFile(ConfigurationTest.java:138) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >> >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >> >> at java.lang.reflect.Method.invoke(Unknown Source) >> >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) >> >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) >> >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) >> >> at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) >> >> at >> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) >> >> at >> org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) >> >> at >> org.apache.logging.log4j.junit.InitialLoggerContext$1.evaluate(InitialLoggerContext.java:52) >> >> at org.junit.rules.RunRules.evaluate(RunRules.java:20) >> >> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) >> >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) >> >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) >> >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) >> >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) >> >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) >> >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) >> >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) >> >> at org.junit.runners.ParentRunner.run(ParentRunner.java:309) >> >> at org.junit.runners.Suite.runChild(Suite.java:127) >> >> at org.junit.runners.Suite.runChild(Suite.java:26) >> >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) >> >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) >> >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) >> >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) >> >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) >> >> at org.junit.runners.ParentRunner.run(ParentRunner.java:309) >> >> at >> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) >> >> at >> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) >> >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) >> >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) >> >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) >> >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) >> >> >> >> [1] >> testLogToFile[1](org.apache.logging.log4j.core.config.ConfigurationTest) >> java.lang.AssertionError: >> Expected: is <1> >> but: was <3> >> >> at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20) >> >> at org.junit.Assert.assertThat(Assert.java:865) >> >> at org.junit.Assert.assertThat(Assert.java:832) >> >> at >> org.apache.logging.log4j.core.config.ConfigurationTest.testLogToFile(ConfigurationTest.java:138) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >> >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >> >> at java.lang.reflect.Method.invoke(Unknown Source) >> >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) >> >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) >> >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) >> >> at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) >> >> at >> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) >> >> at >> org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) >> >> at >> org.apache.logging.log4j.junit.InitialLoggerContext$1.evaluate(InitialLoggerContext.java:52) >> >> at org.junit.rules.RunRules.evaluate(RunRules.java:20) >> >> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) >> >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) >> >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) >> >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) >> >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) >> >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) >> >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) >> >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) >> >> at org.junit.runners.ParentRunner.run(ParentRunner.java:309) >> >> at org.junit.runners.Suite.runChild(Suite.java:127) >> >> at org.junit.runners.Suite.runChild(Suite.java:26) >> >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) >> >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) >> >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) >> >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) >> >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) >> >> at org.junit.runners.ParentRunner.run(ParentRunner.java:309) >> >> at >> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) >> >> at >> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) >> >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) >> >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) >> >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) >> >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) >> >> >> >> [2] >> testLogToFile[2](org.apache.logging.log4j.core.config.ConfigurationTest) >> java.lang.AssertionError: >> Expected: is <1> >> but: was <4> >> >> at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20) >> >> at org.junit.Assert.assertThat(Assert.java:865) >> >> at org.junit.Assert.assertThat(Assert.java:832) >> >> at >> org.apache.logging.log4j.core.config.ConfigurationTest.testLogToFile(ConfigurationTest.java:138) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >> >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >> >> at java.lang.reflect.Method.invoke(Unknown Source) >> >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) >> >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) >> >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) >> >> at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) >> >> at >> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) >> >> at >> org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) >> >> at >> org.apache.logging.log4j.junit.InitialLoggerContext$1.evaluate(InitialLoggerContext.java:52) >> >> at org.junit.rules.RunRules.evaluate(RunRules.java:20) >> >> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) >> >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) >> >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) >> >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) >> >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) >> >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) >> >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) >> >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) >> >> at org.junit.runners.ParentRunner.run(ParentRunner.java:309) >> >> at org.junit.runners.Suite.runChild(Suite.java:127) >> >> at org.junit.runners.Suite.runChild(Suite.java:26) >> >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) >> >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) >> >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) >> >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) >> >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) >> >> at org.junit.runners.ParentRunner.run(ParentRunner.java:309) >> >> at >> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) >> >> at >> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) >> >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) >> >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) >> >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) >> >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) >> >> >> Gary >> >> >> >> >> On Mon, Mar 31, 2014 at 4:10 PM, Matt Sicker <[email protected]> wrote: >> >>> In >>> log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java on >>> line 48, could you try deleting the "assertTrue" part? >>> >>> I get occasional test failures myself from the same test in my TeamCity >>> instance, but it seems to be a different issue with the log file *not* >>> being deleted! It's actually possible that this modified test has exposed a >>> potential bug with the FileAppender code. It seems to be holding on to the >>> file longer than it should. >>> >>> >>> On 31 March 2014 13:54, Ralph Goers <[email protected]> wrote: >>> >>>> I’d guess it is Windows specific. I haven’t looked at what Matt did to >>>> this yet. >>>> >>>> Ralph >>>> >>>> >>>> >>>> On Mar 31, 2014, at 11:08 AM, Gary Gregory <[email protected]> >>>> wrote: >>>> >>>> I just tested a clean trunk and I get the following failures: >>>> >>>> Failed tests: >>>> ConfigurationTest.testLogToFile[0] Could not delete target\test.log, >>>> last modifed 3/31/14 1:50 PM >>>> ConfigurationTest.testConfiguredAppenders[0] Could not delete >>>> target\test.log, last modifed 3/31/14 1:51 PM >>>> ConfigurationTest.testLogger[0] Could not delete target\test.log, >>>> last modifed 3/31/14 1:51 PM >>>> ConfigurationTest.testLogToFile[1] Could not delete target\test.log, >>>> last modifed 3/31/14 1:51 PM >>>> ConfigurationTest.testConfiguredAppenders[1] Could not delete >>>> target\test.log, last modifed 3/31/14 1:51 PM >>>> ConfigurationTest.testLogger[1] Could not delete target\test.log, >>>> last modifed 3/31/14 1:51 PM >>>> ConfigurationTest.testLogToFile[2] Could not delete target\test.log, >>>> last modifed 3/31/14 1:51 PM >>>> ConfigurationTest.testConfiguredAppenders[2] Could not delete >>>> target\test.log, last modifed 3/31/14 1:51 PM >>>> ConfigurationTest.testLogger[2] Could not delete target\test.log, >>>> last modifed 3/31/14 1:51 PM >>>> FileOutputTest.testConfig:59 Couldn't delete file target\status.log >>>> >>>> Tests run: 542, Failures: 10, Errors: 0, Skipped: 15 >>>> >>>> I tested with: >>>> >>>> Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; >>>> 2013-02-19 08:51:28-0500) >>>> Maven home: C:\Java\apache-maven-3.0.5\bin\.. >>>> Java version: 1.6.0_45, vendor: Sun Microsystems Inc. >>>> Java home: C:\Program Files\Java\jdk1.6.0_45\jre >>>> Default locale: en_US, platform encoding: Cp1252 >>>> OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows" >>>> >>>> and: >>>> >>>> Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; >>>> 2013-02-19 08:51:28-0500) >>>> Maven home: C:\Java\apache-maven-3.0.5\bin\.. >>>> Java version: 1.8.0_20-ea, vendor: Oracle Corporation >>>> Java home: C:\Program Files\Java\*jdk1.8.0_20*\jre >>>> Default locale: en_US, platform encoding: Cp1252 >>>> OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos" >>>> >>>> Matt? Bueller? Anybody? >>>> >>>> Gary >>>> >>>> >>>> On Mon, Mar 31, 2014 at 2:48 AM, Ralph Goers < >>>> [email protected]> wrote: >>>> >>>>> Trunk is building for me. >>>>> >>>>> Ralph >>>>> >>>>> On Mar 30, 2014, at 7:43 PM, Gary Gregory <[email protected]> >>>>> wrote: >>>>> >>>>> Hi All: >>>>> >>>>> I have a large change set (can't break it up into smaller bits) on my >>>>> machine and it does not seem related to the following failures I see: >>>>> >>>>> Results : >>>>> >>>>> Failed tests: >>>>> XmlFileAppenderTest.testFlushAtEndOfBatch:70 line1 incorrect: [ >>>>> <Event logger="com.foo.Bar" timestamp="1396233402662" level="INFO" >>>>> thread="main" >>>>> fcqn="org.apache.logging.log4j.spi.AbstractLoggerProvider">], >>>>> does not contain: [<log4j:Even >>>>> t ] >>>>> ConfigurationTest.testLogToFile[0] null >>>>> ConfigurationTest.testConfiguredAppenders[0] null >>>>> ConfigurationTest.testLogger[0] null >>>>> ConfigurationTest.testLogToFile[1] null >>>>> ConfigurationTest.testConfiguredAppenders[1] null >>>>> ConfigurationTest.testLogger[1] null >>>>> ConfigurationTest.testLogToFile[2] null >>>>> ConfigurationTest.testConfiguredAppenders[2] null >>>>> ConfigurationTest.testLogger[2] null >>>>> FileOutputTest.testConfig:59 Couldn't delete file >>>>> >>>>> Tests in error: >>>>> >>>>> JpaH2AppenderTest>AbstractJpaAppenderTest.testBaseJpaEntityAppender:107 » >>>>> AppenderLogging >>>>> >>>>> JpaH2AppenderTest>AbstractJpaAppenderTest.testPerformanceOfAppenderWith10000EventsUsingBasicEntity:224 >>>>> » AppenderLogging >>>>> >>>>> JpaH2AppenderTest>AbstractJpaAppenderTest.testBasicJpaEntityAppender:169 » >>>>> AppenderLogging >>>>> >>>>> JpaHyperSqlAppenderTest>AbstractJpaAppenderTest.testBaseJpaEntityAppender:107 >>>>> » AppenderLogging >>>>> >>>>> JpaHyperSqlAppenderTest>AbstractJpaAppenderTest.testPerformanceOfAppenderWith10000EventsUsingBasicEntity:224 >>>>> » AppenderLogging >>>>> >>>>> JpaHyperSqlAppenderTest>AbstractJpaAppenderTest.testBasicJpaEntityAppender:169 >>>>> » AppenderLogging >>>>> >>>>> Tests run: 569, Failures: 11, Errors: 6, Skipped: 21 >>>>> >>>>> Can folks comment on whether they can do a clean build? >>>>> >>>>> Thank you! >>>>> >>>>> Gary >>>>> >>>>> -- >>>>> E-Mail: [email protected] | [email protected] >>>>> Java Persistence with Hibernate, Second >>>>> Edition<http://www.manning.com/bauer3/> >>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>> Blog: http://garygregory.wordpress.com >>>>> Home: http://garygregory.com/ >>>>> Tweet! http://twitter.com/GaryGregory >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> E-Mail: [email protected] | [email protected] >>>> Java Persistence with Hibernate, Second >>>> Edition<http://www.manning.com/bauer3/> >>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>> Spring Batch in Action <http://www.manning.com/templier/> >>>> Blog: http://garygregory.wordpress.com >>>> Home: http://garygregory.com/ >>>> Tweet! http://twitter.com/GaryGregory >>>> >>>> >>>> >>> >>> >>> -- >>> Matt Sicker <[email protected]> >>> >> >> >> >> -- >> E-Mail: [email protected] | [email protected] >> Java Persistence with Hibernate, Second >> Edition<http://www.manning.com/bauer3/> >> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >> Spring Batch in Action <http://www.manning.com/templier/> >> Blog: http://garygregory.wordpress.com >> Home: http://garygregory.com/ >> Tweet! http://twitter.com/GaryGregory >> > > > > -- > E-Mail: [email protected] | [email protected] > Java Persistence with Hibernate, Second > Edition<http://www.manning.com/bauer3/> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> > Spring Batch in Action <http://www.manning.com/templier/> > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory > > -- E-Mail: [email protected] | [email protected] Java Persistence with Hibernate, Second Edition<http://www.manning.com/bauer3/> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> Spring Batch in Action <http://www.manning.com/templier/> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory
