[jcifs] Timeout while reading a directory or file
Donato Marro
marro at e-spirit.de
Tue Jul 13 12:32:53 GMT 2004
Hi,
i wrote this simple application to test the access to a share
by using the jcfis-classes:
public class NpaTest {
public static void main(String[] args) {
NtlmPasswordAuthentication ntlm = new NtlmPasswordAuthentication("myDomain", args[0], args[1]);
try {
SmbFile directory = null;
SmbFile[] content = null;
System.out.println("Press enter to read the directory");
int c = 0;
while ((c = System.in.read()) != -1) {
if (c == '\r') {
try {
System.out.print("Reading directory... ");
directory = new SmbFile("smb:" + args[2] + "/", ntlm);
content = directory.listFiles();
System.out.println("ok!");
}
catch(Exception e) {
System.out.println("failed!");
e.printStackTrace();
ntlm = new NtlmPasswordAuthentication("myDomain", args[0], args[1]);
}
}
}
}
catch(IOException ioe) {
System.out.println("failed!");
ioe.printStackTrace();
}
}
}
Now i've got the following output:
D:\>java NpaTest myUsername myPass //server/share
Press enter to read the directory
Reading directory... ok!
Reading directory... ok!
Reading directory... ok!
Reading directory... ok!
(and so on for 30 seconds...)
Reading directory... failed!
jcifs.smb.SmbException: An error occured sending the request.
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at jcifs.netbios.NbtSocket.<init>(NbtSocket.java:59)
at jcifs.smb.SmbTransport.ensureOpen(SmbTransport.java:275)
at jcifs.smb.SmbTransport.send(SmbTransport.java:602)
at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:847)
at jcifs.smb.SmbTree.treeConnect(SmbTree.java:119)
at jcifs.smb.SmbFile.connect(SmbFile.java:790)
at jcifs.smb.SmbFile.connect0(SmbFile.java:760)
at jcifs.smb.SmbFile.sendTransaction(SmbFile.java:630)
at jcifs.smb.SmbFile.doFindFirstNext(SmbFile.java:1661)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1553)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1461)
at NpaTest.main(NpaTest.java:22)
at jcifs.smb.SmbTransport.send(SmbTransport.java:633)
at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:847)
at jcifs.smb.SmbTree.treeConnect(SmbTree.java:119)
at jcifs.smb.SmbFile.connect(SmbFile.java:790)
at jcifs.smb.SmbFile.connect0(SmbFile.java:760)
at jcifs.smb.SmbFile.sendTransaction(SmbFile.java:630)
at jcifs.smb.SmbFile.doFindFirstNext(SmbFile.java:1661)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1553)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1461)
at NpaTest.main(NpaTest.java:22)
Reading directory... failed!
jcifs.smb.SmbException: An error occured sending the request.
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at jcifs.netbios.NbtSocket.<init>(NbtSocket.java:59)
at jcifs.smb.SmbTransport.ensureOpen(SmbTransport.java:275)
at jcifs.smb.SmbTransport.send(SmbTransport.java:602)
at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:847)
at jcifs.smb.SmbTree.treeConnect(SmbTree.java:119)
at jcifs.smb.SmbFile.connect(SmbFile.java:790)
at jcifs.smb.SmbFile.connect0(SmbFile.java:760)
at jcifs.smb.SmbFile.sendTransaction(SmbFile.java:630)
at jcifs.smb.SmbFile.doFindFirstNext(SmbFile.java:1661)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1553)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1461)
at NpaTest.main(NpaTest.java:22)
at jcifs.smb.SmbTransport.send(SmbTransport.java:633)
at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:847)
at jcifs.smb.SmbTree.treeConnect(SmbTree.java:119)
at jcifs.smb.SmbFile.connect(SmbFile.java:790)
at jcifs.smb.SmbFile.connect0(SmbFile.java:760)
at jcifs.smb.SmbFile.sendTransaction(SmbFile.java:630)
at jcifs.smb.SmbFile.doFindFirstNext(SmbFile.java:1661)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1553)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1461)
at NpaTest.main(NpaTest.java:22)
(and so on... until restarting the application)
The exception is always thrown after 30 seconds. But the strange
thing is that i get it only on one of our servers. Running the
application with another server as argument does fine. Only one
server causes this timeout-exception.
Anyone an idea on how to avoid this exception or what exactly causes
this problem?
I'm using Jcifs 0.9.4
Greets,
Donato Marro
More information about the jcifs
mailing list