Not at this instant. I am actually still working. I should have time this weekend.
Ralph > On Sep 1, 2016, at 2:38 PM, Gary Gregory <[email protected]> wrote: > > I need some help to get that fixed. It seems that there are a lot of > subtleties in that part of the code. Can you help? > > Thank you, > Gary > > On Thu, Sep 1, 2016 at 2:32 PM, Ralph Goers <[email protected] > <mailto:[email protected]>> wrote: > Yeah, that looks wrong. > > Ralph > >> On Sep 1, 2016, at 2:18 PM, Gary Gregory <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hi, >> >> I think we have some kind of discrepancy in >> org.apache.logging.log4j.core.Logger between: >> >> /** >> * This method is not exposed through the public API and is used >> primarily for unit testing. >> * >> * @param appender The Appender to add to the Logger. >> */ >> public void addAppender(final Appender appender) { >> privateConfig.config.addLoggerAppender(this, appender); >> } >> >> and: >> >> /** >> * This method is not exposed through the public API and is used >> primarily for unit testing. >> * >> * @param appender The Appender to remove from the Logger. >> */ >> public void removeAppender(final Appender appender) { >> privateConfig.loggerConfig.removeAppender(appender.getName()); >> } >> >> Because, when in individual test methods in >> >> org.apache.logging.log4j.core.appender.SocketAppenderTest >> >> We do calls like >> >> root.addAppender(newAppender) >> >> and in the @After teardown method we do: >> >> root.removeAppender(appender); >> >> But that does not remove the appender from the 'appenders' map in >> org.apache.logging.log4j.core.config.AbstractConfiguration. So the next time >> you try to add a fresh appender in the next test, the code in >> addLoggerAppender calls putIfAbsent and since it is still there, the old >> closed appender is used and tests fail. >> >> I have some new tests locally that are not committed that show this problem. >> >> To see it you can simply duplicate the method testTcpAppender() as >> testTcpAppender2() and boom! >> >> Gary >> >> >> -- >> E-Mail: [email protected] <mailto:[email protected]> | >> [email protected] <mailto:[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 <http://garygregory.wordpress.com/> >> Home: http://garygregory.com/ <http://garygregory.com/> >> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory> > > > > -- > E-Mail: [email protected] <mailto:[email protected]> | > [email protected] <mailto:[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 <http://garygregory.wordpress.com/> > Home: http://garygregory.com/ <http://garygregory.com/> > Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
