Commons Net
  1. Commons Net
  2. NET-169

Cannot return files with listNames() function

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.4
    • Fix Version/s: 2.0
    • Component/s: None
    • Labels:
      None
    • Environment:

      Windows, Eclipse

      Description

      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

        Activity

        Hide
        Peter Jodeleit added a comment -

        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>

        Show
        Peter Jodeleit added a comment - 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-r r - 1 intranetftp intranet 86 Dec 19 11:02 test.bin 226 Transfer complete. FTP: 64d Bytes empfangen in 0,00Sekunden 68000,00KB/s ftp>
        Hide
        Sebb added a comment -

        Also applied to trunk (version 1.5) in r636508

        Show
        Sebb added a comment - Also applied to trunk (version 1.5) in r636508

          People

          • Assignee:
            Unassigned
            Reporter:
            burak ulutoprak
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development