OK. I found the problem. It was indeed a problem with the test. Java doesn’t 
close Streams automatically.

Ralph

> On Feb 19, 2020, at 5:19 PM, Ralph Goers <ralph.go...@dslextreme.com> wrote:
> 
> OK. This is even crazier. I commented out all the calls to Log4j in the code. 
> So all the test does is create a directory, copy a file into the directory, 
> read the file, and then delete the file. That has the same behavior. The 
> delete says it worked but the file is still in the directory when I look 
> there and the directory delete still fails saying it isn’t empty.
> 
> So something in the test itself must be causing this.
> 
> Ralph
> 
>> On Feb 19, 2020, at 4:57 PM, Ralph Goers <ralph.go...@dslextreme.com> wrote:
>> 
>> I have modified this test so that it now does something reasonable, and yet 
>> it still fails trying to delete the directory the logs are written to after 
>> the test has completed. I do not understand why. I have verified that 
>> Files.delete and Files.exist both say the files have been deleted yet when I 
>> try to delete the directory it fails because it isn’t empty. And when I put 
>> a breakpoint there and look at the directory I still see the files.
>> 
>> All this implies that the file handles are still in use by something but I 
>> have no idea what it could be.  Any ideas?
>> 
>> The implication of this test is that files are not being released when log4j 
>> rolls the files or shuts down, so Windows users would experience problems.
>> 
>> Ralph
>> 
>>> On Feb 17, 2020, at 10:59 PM, Ralph Goers <ralph.go...@dslextreme.com> 
>>> wrote:
>>> 
>>> 
>>> 
>>>> On Feb 17, 2020, at 10:42 PM, Ralph Goers <ralph.go...@dslextreme.com> 
>>>> wrote:
>>>> 
>>>> This test is failing on Windows. I have been debugging it for the last 6 
>>>> hours. It is failing because it is trying to create the test log directory 
>>>> and Windows says it isn’t empty. The thing is, Files.delete has been 
>>>> called against all the files in the directory without error. I put a 
>>>> breakpoint when it tries to delete the folder and I can still see the file 
>>>> in the directory even though delete worked. I have also verified that the 
>>>> RollingFileManager closed the OutputStream. After the program terminates 
>>>> the file disappears but the directory is still there.
>>>> 
>>>> Have I said before how much I hate Windows?
>>>> 
>>>> Anyone have any idea why the file handle is not being released? 
>>>> 
>>> 
>>> Actually, this whole test doesn’t make any sense. I don’t know what I was 
>>> thinking when I created it.  It will never trigger the 
>>> OnStartupTriggeringPolicy since it uses a static variable to track the JVM 
>>> start time. 
>>> 
>>> Ralph
>>> 
>>> 
>>> 
>> 
>> 
>> 
> 
> 
> 


Reply via email to