FIle being kept upon until +/- 20 seconds after I close its InputStream

Vincent Partington <[email protected]>
Newsgroups gmane.network.samba.java
Message-ID <CB45EF63.1629B%[email protected]>
Hi there,

When I run the program below, the file I am reading is being kept upon +/- 20 seconds after the close() method has been invoked. This means that it cannot be accessed by other files, e.g. executables I run on that Windows box.

public void shouldReadFile() throws IOException {

SmbFile file = new SmbFile("smb://Administrator:secret@win-s2008r2/C$/windows/temp/overthere-20120125T170658757.tmp/large.dat");

byte[] largeFileContentsRead = new byte[1 * 1024 * 1024];

InputStream in = file.getInputStream();

try {

ByteStreams.readFully(in, largeFileContentsRead);

} finally {

in.close();

}

System.out.println("Done!");

}

For about twenty seconds after close() is called, the following can be seen on the target machine:
PS C:\Users\Administrator\desktop> .\handle.exe large

Handle v3.46
Copyright (C) 1997-2011 Mark Russinovich
Sysinternals - www.sysinternals.com

System             pid: 4      type: File          31A4: C:\Windows\Temp\overthere-20120125T170658757.tmp\large.dat

Also netstat is reporting that there is still a connection:
C:\Windows\Temp>netstat

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    172.16.172.179:445     TIMMY:51613            ESTABLISHED


I have been able to track this down to the transport thread that is still working on that connection until it receives a socket timeout and closes itself "hard". But I have no idea what is causing that timeout. Does anybody have any what is going on? This happens with Jcifs 1.3.3 and 1.3.17.

BTW, when I write to a file this does not happen!

Thanks in advance! Regards, Vincent.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.