[ https://issues.apache.org/jira/browse/FTPSERVER-414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13041229#comment-13041229 ]
Sebb commented on FTPSERVER-414: -------------------------------- The format of the output looks correct, however according to the RFC 959 the status code should be one of STAT 211, 212, 213 450 500, 501, 502, 421, 530 where 211 System status, or system help reply. 212 Directory status. 213 File status. 200 is not a valid reply status, as far as I can tell > STAT / creates invalid directory listing (with Patch) > ----------------------------------------------------- > > Key: FTPSERVER-414 > URL: https://issues.apache.org/jira/browse/FTPSERVER-414 > Project: FtpServer > Issue Type: Bug > Components: Server > Affects Versions: 1.0.5 > Reporter: Emmeran Seehuber > > Some ftp clients (e.g. Cyberduck on Mac OS X) use the STAT command to list > directores. The reply contains an invalid status code in the last line, which > causes the ftp client to ignore the last line. So the last file in the > directory does not show up in the ftp client listing: > 614869 [pool-3-thread-6] INFO > org.apache.ftpserver.listener.nio.FtpLoggingFilter - RECEIVED: STAT / > 615085 [pool-3-thread-6] INFO > org.apache.ftpserver.listener.nio.FtpLoggingFilter - SENT: 200---w------- 1 > roto...@rototor.de roto...@rototor.de 21581 Jan 1 1970 uxz.pdf > --w------- 1 roto...@rototor.de roto...@rototor.de 5788 Jan 1 > 1970 abc.pdf > --w------- 1 roto...@rototor.de roto...@rototor.de 415447 Jan 1 > 1970 def.pdf > 200 --w------- 1 roto...@rototor.de roto...@rototor.de 822782 Jan > 1 1970 xyz.pdf > I dont know if this is a bug in the ftp client. But at least the following > patch to the STAT command fixes the problem for me: > diff --git a/org/apache/ftpserver/command/impl/STAT.java > b/org/apache/ftpserver/command/impl/STAT.java > index 19674b2..5ca76c1 100644 > --- a/org/apache/ftpserver/command/impl/STAT.java > +++ b/org/apache/ftpserver/command/impl/STAT.java > @@ -77,10 +77,6 @@ public class STAT extends AbstractCommand { > > String dirList = directoryLister.listFiles(parsedArg, > session.getFileSystemView(), LIST_FILE_FORMATER); > + // DefaultFtpReply prepends the status code to the last line. > + // This causes the STAT directory listing to loose the last > directory entry in some clients > + // e.g. Cyberduck > + dirList += " \n"; > > session > .write(new DefaultFtpReply( > With this patch applied the output looks like this: > 615085 [pool-3-thread-6] INFO > org.apache.ftpserver.listener.nio.FtpLoggingFilter - SENT: 200---w------- 1 > roto...@rototor.de roto...@rototor.de 21581 Jan 1 1970 uxz.pdf > --w------- 1 roto...@rototor.de roto...@rototor.de 5788 Jan 1 > 1970 abc.pdf > --w------- 1 roto...@rototor.de roto...@rototor.de 415447 Jan 1 > 1970 def.pdf > --w------- 1 roto...@rototor.de roto...@rototor.de 822782 Jan 1 > 1970 xyz.pdf > 200 > And know the clients work correctly. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira