This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-net.git
The following commit(s) were added to refs/heads/master by this push: new a61b111 Improve ftp client MLST command compatibility new c72538b Merge pull request #45 from yddgit/master a61b111 is described below commit a61b111502aef396230de4d94358d883c3611df0 Author: yang <642444...@qq.com> AuthorDate: Mon Nov 4 23:02:58 2019 +0800 Improve ftp client MLST command compatibility --- src/main/java/org/apache/commons/net/ftp/FTPClient.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/apache/commons/net/ftp/FTPClient.java b/src/main/java/org/apache/commons/net/ftp/FTPClient.java index 94cd7ff..81f86fb 100644 --- a/src/main/java/org/apache/commons/net/ftp/FTPClient.java +++ b/src/main/java/org/apache/commons/net/ftp/FTPClient.java @@ -2544,14 +2544,17 @@ implements Configurable boolean success = FTPReply.isPositiveCompletion(sendCommand(FTPCmd.MLST, pathname)); if (success){ String reply = getReplyStrings()[1]; + // some FTP server reply not contains space before fact(s) + if(reply.charAt(0) != ' ') { reply = " " + reply; } /* check the response makes sense. * Must have space before fact(s) and between fact(s) and file name * Fact(s) can be absent, so at least 3 chars are needed. */ - if (reply.length() < 3 || reply.charAt(0) != ' ') { + if (reply.length() < 3) { throw new MalformedServerReplyException("Invalid server reply (MLST): '" + reply + "'"); } - String entry = reply.substring(1); // skip leading space for parser + // some FTP server reply contains more than one space before fact(s) + String entry = reply.replaceAll("^\\s+", ""); // skip leading space for parser return MLSxEntryParser.parseEntry(entry); } else { return null;