This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-net.git
commit f30259f709d8505b492854e584ee5683b46f0ef4 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Sat Nov 26 13:25:59 2022 -0500 [NET-707] Process files with spaces in name for OS400 #95. Based on PR #95 and sebbASF's feedback; might need to be refined later --- src/changes/changes.xml | 3 +++ .../apache/commons/net/ftp/parser/OS400FTPEntryParser.java | 2 +- .../commons/net/ftp/parser/OS400FTPEntryParserTest.java | 12 +++++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index b63ccaf2..e0319c49 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -92,6 +92,9 @@ The <action> type attribute can be add,update,fix,remove. <action type="fix" dev="ggregory" due-to="Gary Gregory"> Remove reflection from SSLSocketUtils. </action> + <action type="fix" issue="NET-707" dev="ggregory" due-to="Dmytro Sylaiev, sebbASF, Gary Gregory"> + Process files with spaces in name for OS400 #95. + </action> <!-- ADD --> <action type="add" dev="ggregory" due-to="Gary Gregory"> [FTP] Add FTPClient.mdtmInstant(String). diff --git a/src/main/java/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.java b/src/main/java/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.java index c2e3d639..d50c6da1 100644 --- a/src/main/java/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.java +++ b/src/main/java/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.java @@ -238,7 +238,7 @@ public class OS400FTPEntryParser extends ConfigurableFTPFileEntryParserImpl { + "(?:(\\d+)\\s+)?" // size, empty for members + "(?:(\\S+)\\s+(\\S+)\\s+)?" // date stuff, empty for members + "(\\*STMF|\\*DIR|\\*FILE|\\*MEM)\\s+" // *STMF/*DIR/*FILE/*MEM - + "(?:(\\S+)\\s*)?"; // file name, missing, when CWD is a *FILE + + "((\\S+\\s*)+)?"; // file name, missing, when CWD is a *FILE /** * The default constructor for a OS400FTPEntryParser object. diff --git a/src/test/java/org/apache/commons/net/ftp/parser/OS400FTPEntryParserTest.java b/src/test/java/org/apache/commons/net/ftp/parser/OS400FTPEntryParserTest.java index 8e082b1c..33dd7805 100644 --- a/src/test/java/org/apache/commons/net/ftp/parser/OS400FTPEntryParserTest.java +++ b/src/test/java/org/apache/commons/net/ftp/parser/OS400FTPEntryParserTest.java @@ -132,7 +132,7 @@ public class OS400FTPEntryParserTest extends CompositeFTPParseTestFramework { assertEquals(df.format(cal.getTime()), df.format(f.getTimestamp().getTime())); } - + /** * @see FTPParseTestFramework#testParseFieldsOnFile() */ @@ -156,6 +156,16 @@ public class OS400FTPEntryParserTest extends CompositeFTPParseTestFramework { assertEquals(df.format(cal.getTime()), df.format(f.getTimestamp().getTime())); } + /** + * Test file names with spaces. + */ + public void testParseFileNameWithSpaces() { + final FTPFile f = getParser().parseFTPEntry("MYUSER 3 06/12/21 12:00:00 *STMF file with space.txt"); + assertNotNull("Could not parse entry.", f); + assertTrue("Should have been a file.", f.isFile()); + assertEquals("file with space.txt", f.getName()); + } + @Override public void testRecentPrecision() { testPrecision("----rwxr-x 1 PEP 0 4019 Mar 18 18:58 einladung.zip", CalendarUnit.MINUTE);