You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/11/26 18:26:06 UTC
[commons-net] 02/02: [NET-707] Process files with spaces in name for OS400 #95.
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 <ga...@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);