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

Reply via email to