commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erick Lichtas <ELich...@linoma.com>
Subject Commons Net File name of the Connect Enterprise Parser
Date Fri, 11 May 2012 16:39:59 GMT
I've recently ran into a scenario where a connect enterprise server contains file name with
spaces.  Because of this, the EnterpriseUnixFTPEntryParser does not accurately parse the listing
returned by the server.  Below is the raw listing of the server:

-AR-------TCP A ceunix      398082    2843 May 09 02:26 PGP EWN PREDAY MEFSEWN.120509022645
-AR-------TCP A ceunix      451560    3022 May 10 02:24 PGP EWN PREDAY MEFSEWN.120510022415
-ART------TCP A ceunix      427643    3485 May 11 02:22 PGP EWN PREDAY MEFSEWN.120511022237

In this case, the file name returned by the parsing is simply PGP, but the file name is indeed
everything after the timestamp, so "PGP EWN PREDAY MEFSEWN.120509022645" for example.

I am using commons net 2.2.1, but have reviewed the parser for the latest 3.1 and it is the
same.  Group 23 and 24 of the regex contain the entire filename when combined, but group 24
is never used.   I'm curious if there is a reason why group 24 is being ignored and if there
would be any problems changing group 23 to simply include everything after the minute group
(22) and return that as the file name.

By changing the REGEX in the parser to the following, the list parser works as expected for
this listing.

       /**
       * this is the regular expression used by this parser.
       */
       private static final String REGEX = "(([\\-]|[A-Z])([\\-]|[A-Z])([\\-]|[A-Z])([\\-]|[A-Z])([\\-]|[A-Z])"
              + "([\\-]|[A-Z])([\\-]|[A-Z])([\\-]|[A-Z])([\\-]|[A-Z])([\\-]|[A-Z]))"
              + "(\\S*)\\s*"
              + "(\\S+)\\s*"
              + "(\\S*)\\s*"
              + "(\\d*)\\s*"
              + "(\\d*)\\s*"
              + MONTHS
              + "\\s*"
              + "((?:[012]\\d*)|(?:3[01]))\\s*"
              + "((\\d\\d\\d\\d)|((?:[01]\\d)|(?:2[0123])):([012345]\\d))\\s"
              //+ "(\\S*)(\\s*.*)"; - updating group 23 to contain everything after the date
fields
              + "(.*)";

Is there a possibility to get this changed/updated in the api?

Regards,

E R I C K   L I C H T A S
Linoma Software
Senior Software Engineer
p. 402.944.4242 x714
f. 402.944.4243
www.LinomaSoftware.com<http://www.linomasoftware.com/>
www.GoAnywhereMFT.com<http://www.goanywheremft.com/>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message