Edit: Because of the way these shared *listeners* are found...
On Sun, May 4, 2014 at 9:38 AM, Bruce Brouwer <bruce.brou...@gmail.com>wrote: > This is what I was starting to investigate with LOG4J2-609. > > I don't think this is quite there yet. For one, in > StatusConsoleListener.close(), System.out and System.err can change over > time, so doing the != check might still close something that at one time > was System.out but no longer is. > > Also, a StatusConsoleListener is shared among different JSONConfiguration > and XMLConfiguration instances (think about multiple WARs in a Tomcat > instance where log4j is in Tomcat's shared lib directory). If we undeployed > one of those WARs, it would shutdown the StatusConsoleListener that was > shared with the other WAR deployments. > > Also think about where some of these WARs wanted to use System.out and > others want to use a log file for status logging. Because of the way these > shared loggers are found, only the first StatusConsoleListener registered > would actually take effect. So sometimes when you start Tomcat, status logs > go to System.out, other times they go to a log file. I'd hate having to > debug that one if I didn't know about this issue. > > I have an idea of how to address this, but it unfortunately isn't as > simple as closing the StatusConsoleListener. > > > On Sat, May 3, 2014 at 10:04 PM, Matt Sicker <boa...@gmail.com> wrote: > >> Hooray, we've finally figured out the bug. :) >> >> >> On 3 May 2014 19:49, Remko Popma <remko.po...@gmail.com> wrote: >> >>> I just updated from SVN and all tests now pass. >>> The build works now. Thanks! >>> >>> >>> On Sun, May 4, 2014 at 7:55 AM, Matt Sicker <boa...@gmail.com> wrote: >>> >>>> I just fixed it in r1592291 haha >>>> >>>> >>>> On 3 May 2014 17:54, Ralph Goers <ralph.go...@dslextreme.com> wrote: >>>> >>>>> Yes. It cause them to close. Anything written to System.out or >>>>> System.err will fail. >>>>> >>>>> On May 3, 2014, at 3:51 PM, Matt Sicker <boa...@gmail.com> wrote: >>>>> >>>>> Does closing them do anything? >>>>> >>>>> >>>>> On 3 May 2014 17:10, Ralph Goers <ralph.go...@dslextreme.com> wrote: >>>>> >>>>>> Perhaps we need a StatusFileListerner when writing to a file? >>>>>> >>>>>> Ralph >>>>>> >>>>>> On May 3, 2014, at 3:03 PM, Ralph Goers <ralph.go...@dslextreme.com> >>>>>> wrote: >>>>>> >>>>>> System.out or System.err should never be closed. >>>>>> >>>>>> Ralph >>>>>> >>>>>> On May 3, 2014, at 10:59 AM, Matt Sicker <boa...@gmail.com> wrote: >>>>>> >>>>>> I've implemented Closeable on StatusListener in r1592258. Please try >>>>>> out the unit tests again and let me know if this solves the issue on >>>>>> Windows. >>>>>> >>>>>> >>>>>> On 3 May 2014 12:30, Matt Sicker <boa...@gmail.com> wrote: >>>>>> >>>>>>> I think this is actually a bug. StatusListener should implement >>>>>>> Closeable, and when the listeners are cleared, it should loop through >>>>>>> and >>>>>>> close them before clearing the list of listeners. Otherwise, files can >>>>>>> stay >>>>>>> opened and Windows still hasn't figured out how to handle that. >>>>>>> >>>>>>> >>>>>>> On 3 May 2014 11:22, Remko Popma <remko.po...@gmail.com> wrote: >>>>>>> >>>>>>>> Thanks, commenting out that test to verify my changes was exactly >>>>>>>> what I was doing now... :-) >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Sun, May 4, 2014 at 1:20 AM, Ralph Goers < >>>>>>>> ralph.go...@dslextreme.com> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> Oh, and if you are trying to do some work just comment out the >>>>>>>>> @Test of the failing test - but don’t commit that. >>>>>>>>> Ralph >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On May 3, 2014, at 9:19 AM, Ralph Goers < >>>>>>>>> ralph.go...@dslextreme.com> wrote: >>>>>>>>> >>>>>>>>> That happens because the file is still being referenced by >>>>>>>>> something when it is trying to delete it. It should be because the >>>>>>>>> file is >>>>>>>>> open but I recall reading that Windows sometimes holds on to file >>>>>>>>> references longer than it should. This was probably caused by the >>>>>>>>> changes >>>>>>>>> Matt made to the unit test framework a month or so ago. I will bring >>>>>>>>> up my >>>>>>>>> Windows VM and take a look at it this afternoon. >>>>>>>>> >>>>>>>>> Ralph >>>>>>>>> >>>>>>>>> On May 3, 2014, at 8:58 AM, Remko Popma <remko.po...@gmail.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Yes, windows 7. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Sun, May 4, 2014 at 12:54 AM, Ralph Goers < >>>>>>>>> ralph.go...@dslextreme.com> wrote: >>>>>>>>> >>>>>>>>>> FileOutputTest was failing for me last week and I thought I fixed >>>>>>>>>> it. But it was failing because the file was empty, not because it >>>>>>>>>> couldn’t >>>>>>>>>> be deleted. I guess you must be running on Windows? >>>>>>>>>> >>>>>>>>>> Ralph >>>>>>>>>> >>>>>>>>>> On May 3, 2014, at 8:44 AM, Remko Popma <remko.po...@gmail.com> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> > When I run mvn clean install, I get this problem: >>>>>>>>>> > >>>>>>>>>> > Failed tests: >>>>>>>>>> > FileOutputTest.testConfig Could not delete target\status.log, >>>>>>>>>> last modifed 14/05/04 0:27 >>>>>>>>>> > >>>>>>>>>> > FileOutputTest has a "CleanFiles" rule that seems to fail: >>>>>>>>>> > public RuleChain rules = RuleChain.outerRule(new >>>>>>>>>> CleanFiles(STATUS_LOG)).around(new InitialLoggerContext(CONFIG)); >>>>>>>>>> > >>>>>>>>>> > How do I fix this? >>>>>>>>>> > >>>>>>>>>> > Remko >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> --------------------------------------------------------------------- >>>>>>>>>> To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org >>>>>>>>>> For additional commands, e-mail: >>>>>>>>>> log4j-dev-h...@logging.apache.org >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Matt Sicker <boa...@gmail.com> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Matt Sicker <boa...@gmail.com> >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Matt Sicker <boa...@gmail.com> >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Matt Sicker <boa...@gmail.com> >>>> >>> >>> >> >> >> -- >> Matt Sicker <boa...@gmail.com> >> > > > > -- > > Bruce Brouwer > -- Bruce Brouwer