You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2009/09/14 02:33:44 UTC
svn commit: r814451 - in /commons/proper/net/trunk:
src/java/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java
src/test/org/apache/commons/net/ftp/parser/UnixFTPEntryParserTest.java
xdocs/changes.xml
Author: sebb
Date: Mon Sep 14 00:33:44 2009
New Revision: 814451
URL: http://svn.apache.org/viewvc?rev=814451&view=rev
Log:
NET-294 UnixFTPEntryParser fails to parse some entries
Modified:
commons/proper/net/trunk/src/java/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java
commons/proper/net/trunk/src/test/org/apache/commons/net/ftp/parser/UnixFTPEntryParserTest.java
commons/proper/net/trunk/xdocs/changes.xml
Modified: commons/proper/net/trunk/src/java/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java
URL: http://svn.apache.org/viewvc/commons/proper/net/trunk/src/java/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java?rev=814451&r1=814450&r2=814451&view=diff
==============================================================================
--- commons/proper/net/trunk/src/java/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java (original)
+++ commons/proper/net/trunk/src/java/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java Mon Sep 14 00:33:44 2009
@@ -88,23 +88,25 @@
private static final String REGEX =
"([bcdlfmpSs-])"
+"(((r|-)(w|-)([xsStTL-]))((r|-)(w|-)([xsStTL-]))((r|-)(w|-)([xsStTL-])))\\+?\\s+"
- + "(\\d+)\\s+"
- + "(\\S+)\\s+"
- + "(?:(\\S+(?:\\s\\S+)*)\\s+)?"
- + "(\\d+(?:,\\s*\\d+)?)\\s+"
+ + "(\\d+)\\s+" // link count
+ + "(\\S+)\\s+" // owner name
+ + "(?:(\\S+(?:\\s\\S+)*)\\s+)?" // group name (optional spaces)
+ + "(\\d+(?:,\\s*\\d+)?)\\s+" // size or n,m
/*
- numeric or standard format date
+ * numeric or standard format date:
+ * yyyy-mm-dd (expecting hh:mm to follow)
+ * MMMM [d]d
+ * [d]d MMM
*/
- + "((?:\\d+[-/]\\d+[-/]\\d+)|(?:\\S+\\s+\\S+))\\s+"
-
+ + "((?:\\d+[-/]\\d+[-/]\\d+)|(?:[a-zA-Z]{3}\\s+\\d{1,2})|(?:\\d{1,2}\\s+[a-zA-Z]{3}))\\s+"
/*
- year (for non-recent standard format)
- or time (for numeric or recent standard format
+ year (for non-recent standard format) - yyyy
+ or time (for numeric or recent standard format [h]h:mm
*/
+ "(\\d+(?::\\d+)?)\\s+"
- + "(\\S*)(\\s*.*)";
+ + "(\\S*)(\\s*.*)"; // the rest
/**
Modified: commons/proper/net/trunk/src/test/org/apache/commons/net/ftp/parser/UnixFTPEntryParserTest.java
URL: http://svn.apache.org/viewvc/commons/proper/net/trunk/src/test/org/apache/commons/net/ftp/parser/UnixFTPEntryParserTest.java?rev=814451&r1=814450&r2=814451&view=diff
==============================================================================
--- commons/proper/net/trunk/src/test/org/apache/commons/net/ftp/parser/UnixFTPEntryParserTest.java (original)
+++ commons/proper/net/trunk/src/test/org/apache/commons/net/ftp/parser/UnixFTPEntryParserTest.java Mon Sep 14 00:33:44 2009
@@ -74,7 +74,8 @@
"lrwxrwxrwx 1 neeme neeme 23 Mar 2 18:06 macros -> ./../../global/macros/.",
"-rw-r--r-- 1 ftp group with spaces in it as allowed in cygwin see bug 38634 83853 Jan 22 2001 zxJDBC-1.2.4.tar.gz",
"crw-r----- 1 root kmem 0, 27 Jan 30 11:42 kmem", //FreeBSD device
- "crw------- 1 root sys 109,767 Jul 2 2004 pci@1c,600000:devctl" //Solaris device
+ "crw------- 1 root sys 109,767 Jul 2 2004 pci@1c,600000:devctl", //Solaris device
+ "-rwxrwx--- 1 ftp ftp-admin 816026400 Oct 5 2008 bloplab 7 cd1.img", // NET-294
};
@@ -233,6 +234,18 @@
assertEquals(df.format(cal.getTime()), df.format(f.getTimestamp().getTime()));
}
+ public void testNET294() {
+ FTPFile f = getParser().parseFTPEntry(
+ "-rwxrwx--- 1 ftp ftp-admin 816026400 Oct 5 2008 bloplab 7 cd1.img");
+ assertNotNull(f);
+ assertEquals("ftp", f.getUser());
+ assertEquals("ftp-admin", f.getGroup());
+ assertEquals(816026400L,f.getSize());
+ assertNotNull("Timestamp should not be null",f.getTimestamp());
+ assertEquals(2008,f.getTimestamp().get(Calendar.YEAR));
+ assertEquals("bloplab 7 cd1.img",f.getName());
+ }
+
/**
* Method suite.
@@ -268,6 +281,7 @@
case 'b':
case 'c':
assertEquals(0, f.getHardLinkCount());
+ //$FALL-THROUGH$ TODO fix if DEVICE_TYPE introduced
case 'f':
case '-':
assertEquals("Type of "+ test, type, FTPFile.FILE_TYPE);
@@ -290,5 +304,6 @@
}
}
+ assertNotNull("Expecting valid timestamp",f.getTimestamp());
}
}
Modified: commons/proper/net/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/net/trunk/xdocs/changes.xml?rev=814451&r1=814450&r2=814451&view=diff
==============================================================================
--- commons/proper/net/trunk/xdocs/changes.xml (original)
+++ commons/proper/net/trunk/xdocs/changes.xml Mon Sep 14 00:33:44 2009
@@ -105,6 +105,9 @@
<action dev="sebb" type="fix" issue="NET-225">
FTPFileEntryParserImpl.preParse() doesn't remove unparsable entries at the end of the file list
</action>
+ <action dev="sebb" type="fix" issue="NET-294">
+ UnixFTPEntryParser fails to parse some entries
+ </action>
</release>
<release version="1.4.1" date="December 3, 2005" description="fix release to restore jdk 1.3 compatability">