Issue Details (XML | Word | Printable)

Key: NET-169
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: burak ulutoprak
Votes: 1
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Commons Net

Cannot return files with listNames() function

Created: 29/Aug/07 04:56 PM   Updated: 12/Mar/08 09:03 PM
Return to search
Component/s: None
Affects Version/s: 1.4
Fix Version/s: 2.0

Time Tracking:
Not Specified

Environment: Windows, Eclipse

Resolution Date: 08/Mar/08 07:48 PM


 Description  « Hide
Hi,
I am connecting to an ftp server with my username and password. When I call ftpClient.listNames(); it returns 0 length string array although i am very sure that there are files inside.

I also know that when I changed the ftp server to another one this function works. So I am assuming the server that I connected has a weird ftp server. When I called the function ftpClient.getSystemName() it returns UNKNOWN Type: L8.
If I call ftpClient.listNames I got this exception
org.apache.commons.net.ftp.parser.ParserInitializationException: Unknown parser type: UNKNOWN Type: L8
at org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory.createFileEntryParser(DefaultFTPFileEntryParserFactory.java:125)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2362)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2145)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2192)

I have to get the filenames from the server, so how can I solve the problem.
Thanks for the helps.
Burak Ulutoprak



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Peter Jodeleit added a comment - 19/Dec/07 11:11 AM
I can reproduce the problem against a "ProFTPD 1.2.10 Server".
I tracked and suspect the method "org.apache.commons.net.ftp.FTPClient#initiateListParsing(FTPFileEntryParser, String)" (is called by "org.apache.commons.net.ftp.FTPClient#listFiles(String)").

The suspected code is:

if ((socket = openDataConnection(FTPCommand.LIST, pathname)) == null)

{ return engine; // we end up here! }

(see http://commons.apache.org/net/xref/org/apache/commons/net/ftp/FTPClient.html#2392)

If i set a breakpoint at this line "getReplyString()" delivers "200 PORT command successful".

The trace of my use case (delete a directory recursivly) with logging turned on:

TRACE 19.12.2007 12:02:41.621 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: LIST LIST /home/tomcat/webapps/intranet/test
TRACE 19.12.2007 12:02:41.621 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 200 PORT command successful
DEBUG 19.12.2007 12:02:41.621 (de.espirit.firstspirit.io.FtpFileSystemOperations): no files in path /home/tomcat/webapps/intranet/test
TRACE 19.12.2007 12:02:41.621 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: RMD RMD /home/tomcat/webapps/intranet/test
WARN 19.12.2007 12:02:41.621 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 425 Unable to build data connection: Connection refused

The same RMD command on the shell:

>ftp XXXXX
Verbindung mit corona.e-spirit.de wurde hergestellt.
220 ProFTPD 1.2.10 Server (XXXXX) [XXX.XXX.XXX.XXX]
Benutzer (XXXXX:(none)): xxxxxx
331 Password required for xxxxxx.
Kennwort:
230 User xxxxxx logged in.
ftp> rmdir /home/tomcat/webapps/intranet/test
550 /home/tomcat/webapps/intranet/test: Directory not empty
ftp> dir /home/tomcat/webapps/intranet/test
200 PORT command successful
150 Opening ASCII mode data connection for file list
rw-rr- 1 intranetftp intranet 86 Dec 19 11:02 test.bin
226 Transfer complete.
FTP: 64d Bytes empfangen in 0,00Sekunden 68000,00KB/s
ftp>


Rory Winston made changes - 08/Mar/08 07:48 PM
Field Original Value New Value
Status Open [ 1 ] Closed [ 6 ]
Resolution Fixed [ 1 ]
Fix Version/s 2.0 [ 12312040 ]
Repository Revision Date User Message
ASF #635059 Sat Mar 08 19:49:53 UTC 2008 rwinston Add a fix for UNKNOWN Type: L8 SYST messages (NET-169)
Files Changed
MODIFY /commons/proper/net/branches/NET_2_0/src/main/java/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.java
MODIFY /commons/proper/net/branches/NET_2_0/src/main/java/org/apache/commons/net/ftp/FTPClientConfig.java

Sebb added a comment - 12/Mar/08 09:03 PM
Also applied to trunk (version 1.5) in r636508

Repository Revision Date User Message
ASF #636508 Wed Mar 12 21:03:47 UTC 2008 sebb Add a fix for UNKNOWN Type: L8 SYST messages (NET-169)
Files Changed
MODIFY /commons/proper/net/trunk/src/java/org/apache/commons/net/ftp/FTPClientConfig.java
MODIFY /commons/proper/net/trunk/src/java/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.java