Changes

Release History

VersionDateDescription
3.0.1June 2011This is a bug-fix release.
3.0May 2011This release fixes many bugs (see below), and adds new functionality: - basic support for IMAP and IMAPS - support for SMTPS and POP3S FTP changes: - default for lenient future dates is now true, which fixes short date parsing where host clock is ahead of client clock - no longer parses every response line twice - OS auto-detection can be overriden by defining the property 'org.apache.commons.net.ftp.systemType'; - or by creating a properties file '/systemType.properties' which provides a mapping from getSystemType() to parser name See the Javadoc for FTPClient.initiateListParsing(String parserKey, String pathname). - SASL, PLAIN and CRAM-MD5 authentication added - added control channel keep-alive for use with misbehaving routers, see FTPClient.setControlKeepAliveTimeout(long controlIdle) NNTP changes: - reworked to use long for article numbers - added streaming equivalents for the array methods Added TrustManagerUtils and KeyManagerUtils classes to simplify setting up trust and key namagers. KeyManagerUtils can be used to provide client certificates. This release is binary-compatible with 2.2, but there are some minor changes to source compatibility: - telnet.TelnetClient#addOptionHandler(TelnetOptionHandler) now additionally throws IOException - telnet.TelnetClient#deleteOptionHandler() now additionally throws IOException - ftp.FTPSClient ctors no longer throw NoSuchAlgorithmException - Redundant CODE_nnn definitions have been removed from FTPReply, SMTPReply and NNTPReply classes - Unused String constants KEYSTORE_ALGORITHM, PROVIDER, STORE_TYPE, TRUSTSTORE_ALGORITHM removed from FTPSClient All users are recommended to upgrade.
2.2Nov 2010This is primarily a maintenance release, but it also includes new features and enhancements. Users of version 2.0 are encouraged to upgrade to 2.2, as this release includes some important bug fixes. See the detailed list of changes below for full description of all bug fixes and enhancements.
2.1Not released
2.0October 20, 2008Java 5.0 release
1.4.1December 3, 2005fix release to restore jdk 1.3 compatability
1.4.0May 7, 2005Some additions and enhancements
1.3.0December 15, 2004many fixes and enhancements
1.3.0-devJuly 28, 2004regression fix
1.2.2June 25, 2004fix release
1.2.1May 6, 2004fix release
1.2.0April 30, 2004autodetection of system for listings
1.1.0October 23, 2003many enhancements and bug fixes
1.0.0February 23, 2003first jakarta-commons release

Release 3.0.1 - June 2011

TypeChangesBy
fixFTPClient truncates file (storeFile method). Fix bug introduced in release 3.0. Fixes NET-409.sebb

Release 3.0 - May 2011

TypeChangesBy
updateChange lenientFutureDates to default to true. This means short dates will be parsed as the current year when the host clock is up to 1 day ahead of the client clock. Fixes NET-407.sebb
fixFTPSSocketFactory does not override createSocket(); causes java.net.SocketException: Unconnected sockets not implemented. Fixes NET-404.sebb
fixftp data connection does not use connectTimeout. Fixes NET-399. Thanks to Noah Levitt.sebb
updateOption to override SSL negotiation. Make FTPSClient#execAuth() and FTPSClient#sslNegotiation() protected Fixes NET-400. Thanks to David Kocher.sebb
fixIMAP, NNTP, POP3 and SMTP classes uses BufferedReader for control channel, which does not follow the standard. Changed reader to CRLFLineReader. Fixes NET-402.sebb
fixFTP class uses BufferedReader for control channel, which does not follow the standard. Changed reader to CRLFLineReader. Fixes NET-401.sebb
updateAS400 file timestamp format is wrong. Workround exists. Fixes NET-331.sebb
updateRemove semi-redundant check in SubnetUtils.calculate(). Fixes NET-269.sebb
updateShould Telnet class Exception blocks write to System.err? Catch blocks removed, and throws clauses added to allow caller to more easily detect and recover. Fixes NET-219.sebb
updateFTPSClient does not handle AUTH or ADAT and only partially handles PBSZ. FTPSCommand should be deprecated. Fixes NET-397. Thanks to Bogdan Drozdowski.sebb
fixBetter handling of CIDR/31 and CIDR/32 where isInclusive = false. Return 0 for address count, and 0.0.0.0 for each of the addresses Fixes NET-268.sebb
updateMove ProtocolCommandSupport to SocketClient. Fixes NET-395.sebb
updateShould the sendCommandWithID() methods be public? Made methods private, and deleted currently unused ones. Fixes NET-393.sebb
updateAre the sendUntaggedCommand() methods needed? Renamed the method as sendData(), as it's not a command. Fixes NET-394.sebb
updateUse enum for IMAPCommand. Fixes NET-392.sebb
addAdded basic IMAP/IMAPS implementation. Fixes NET-333. Thanks to Bogdan Drozdowski.sebb
fixUnix parser should ignore "total nnn" lines. Fixes NET-389.sebb
removeArticle.addHeaderField() is currently write-only - there is no way to retrieve the headers - is it needed? Method was removed, along with the field. Fixes NET-369.sebb
fixntp.TimeStamp uses incorrect lazy initialisation of static fields simpleFormatter and utcFormatter. Fixes NET-367.sebb
updateParsing is inefficient, as it parses everything twice. Fixes NET-381.sebb
fixVMSVersioningFTPEntryParser#preParse should not call super.preParse(). Fixes NET-388.sebb
fixTelnetInputStream has various threading bugs. Fixes NET-362.sebb
fixTelnetClient use of FromNetASCIIInputStream and ToNetASCIIOutputStream breaks binary mode. See also NET-387. Fixes NET-89.sebb
updateFTP does not apply timeout to initial responses. Fixes NET-385.sebb
updateKeyManagerUtils - the KeyManager is not efficient. Fixes NET-384.sebb
updateKeyManagerUtils - allow alias to be omitted when there is only one private key in the store Fixes NET-383.sebb
addA KeyManager is required when the protection level is set to 'P' with FTPSClient on active mode. Added KeyManagerUtils class to simplify provision of client certificates. Fixes NET-326.sebb
addFEAT response parsing. Added FTPClient methods: boolean hasFeature(feature [,option]), String fetaureValue(feature), String[] featureValues(feature) Fixes NET-273.sebb
addFTPClient - support for processing arbitrary commands that only use the control channel Fixes NET-379.sebb
addFTP listing should support MLST and MLSD. Fixes NET-378.sebb
updateNLST does not take notice of HiddenFiles setting. Fixes NET-377.sebb
updateNNTP Listgroups not working - broken server implementation. Fixes NET-373.sebb
updateDotTerminatedMessageReader should extend BufferedReader, rather than Reader. Fixes NET-375.sebb
updateParserInitializationException doesn't use standard JDK exception chaining Fixes NET-374.sebb
addFTPSClient: java.security.cert.CertificateException: No X509TrustManager implementation available if trustManager == null Fixes NET-372.sebb
addCreate TrustManagerFactory to provide custom TrustManagers. Fixes NET-371.sebb
fixFTPSClient not properly supporting CCC and PROT P. Fixes NET-354. Thanks to Leif John Korshavn.sebb
updateThreader.thread should accept an Iterable rather than a List. Fixes NET-368.sebb
add"Unconnected sockets not implemented" when using FTPSClient Added disconnect() override which resets the socket factories to their defaults Fixes NET-327. Thanks to Bogdan Drozdowski.sebb
add"java.net.SocketException: Broken pipe" when calling "TelnetClient.sendAYT()" Added SocketClient#isAvailable() method to perform additional checks on a socket. Fixes NET-350. Thanks to Bogdan Drozdowski.sebb
addAdd streaming methods (corresponding to array methods) to NNTPClient. Fixes NET-237.sebb
fixFTPClient.listFiles() does not work properly, if remote server speaks German. Match non-space{3} instead of A-Za-z{3} Fixes NET-365.sebb
fixFTPClientConfig: setServerLanguageCode and setShortMonthNames do not work. Ensure that config is passed to all parsers that can use it. Fixes NET-366.sebb
fixNNTPClient has problems with group listings for large groups. Fixes NET-276.sebb
fixPossible NPE in Threader.java Fixes NET-185.sebb
fixnntp.Article is very inefficient and incorrect. Fixes NET-364.sebb
addThe FTP client should autodetect the control encoding. Fixes NET-314. Thanks to Bogdan Drozdowski.sebb
fixCan't connect to a server behind firewall in passive mode. Fixes NET-363. Thanks to daniel damon.sebb
fixQueue is full TelnetInputStream. Fixes NET-348.sebb
addImplement Telnet Command sender. Fixes NET-361.sebb
fixTelnet client: not properly handling IAC bytes within subnegotiation messages: - failing to double IACs on output - failing to de-double IACs in input Fixes NET-345. Thanks to Archie Cobbs.sebb
addTelnet client: Support Client-initiated Subnegotiation Messages. Fixes NET-343. Thanks to Archie Cobbs.sebb
addTelnet client: Support Listener Notification of Incoming Data. Fixes NET-344. Thanks to Archie Cobbs.sebb
fixIncorrect error handling in method initiateListParsing of FTPClient. Fixes NET-270.sebb
addSASL PLAIN and CRAM-MD5 authentication. Fixes NET-352. Thanks to Bogdan Drozdowski.sebb
addThe POP3 client does not support SSL/TLS connections. Fixes NET-357. Thanks to Bogdan Drozdowski.sebb
removeRemoved deprecated unused fields from FTPSClient: - KEYSTORE_ALGORITHM, PROVIDER, STORE_TYPE, TRUSTSTORE_ALGORITHMsebb
fixImplement A Keepalive Mechanism. Control channel keepalive implemented for the following methods: appendFile, storeFile, storeUniqueFile, retrieveFile. Fixes NET-258.sebb
fixStackOverflowError in Threader. Fixes NET-289. Thanks to Luc Claes.sebb
fixPOP3MessageInfo fields should be final. Fixes NET-317.sebb
fixGet rid of using deprecated API in VMSFTPEntryParser. Fixes NET-252.sebb
removeThe method VMSFTPEntryParser.parseFileList(InputStream listStream) should not be present. Fixes NET-330.sebb
fixFTPFileEntryParser API samples are wrong. Fixes NET-303.sebb
addUse properties file (/systemType.properties) to handle new OS-type auto-detection. Fixes NET-229.sebb
addCommons net ftp cannot handle unknown type parser and should allow override of parser through vm argument. The system property "org.apache.commons.net.ftp.systemType" can be used to provide the system type. Fixes NET-332.sebb
fixUnhandled SecurityException in DefaultFTPFileEntryParserFactory.createFileEntryParser when using applets. Fixes NET-286.sebb
fixDefaultFTPFileEntryParserFactory.createFileEntryParser(String key) always tries to load a class. Fixes NET-360.sebb
addNew FTPClient method to retrieve all directory names in the current working directory. Added methods listDirectories(), listDirectories(String path). Fixes NET-156.sebb
addThe SMTPClient does not support authentication. Fixes NET-353. Thanks to Bogdan Drozdowski.sebb
addThe SMTP client does not support SSL/TLS connections. Fixes NET-356. Thanks to Bogdan Drozdowski.sebb
addImplement copy Listener in FTPClient file operations. Fixes NET-358.sebb
fixCopyStreamAdapter unconditionally resets the CopyStreamEvent source and is inefficient. Fixes NET-359.sebb
fixexamples.nntp.NNTPUtils does not compile Fixes NET-355.sebb
addAPOP authentication fails most of the time. Fix by adding leading 0 if necessary. Fixes NET-351. Thanks to Bogdan Drozdowski.sebb

Release 2.2 - Nov 2010

TypeChangesBy
fixFromNetASCIIInputStream can throw a NullPointerException Fixes NET-334.sebb
fixFTPClient.remoteAppend(String filename) uses STOR instead of APPE Fixes NET-341.sebb
fixIncorrect parsing of timestamp on Windows CE Fix parsing to allow for new-style DOS listing using 24hr clock rather than AM/PM Fixes NET-339.sebb
addftp.FTPClient.initiateListParsing(String parserKey, String pathname) can call createFileEntryParser with null systemName. Fix this by adding getSystemType() which does not return null, and deprecating getSystemName(). Fixes NET-338.sebb
addAdd support for FTPFileFilter filters. New classes FTPFileFilter, FTPFileFilters, new methods: FTPListParseEngine#getFiles(FTPFileFilter filter) FTPClient.listFiles(String pathname, FTPFileFilter filter) Fixes NET-244.sebb
fixOptionally enable EPSV with IPv4; Only send EPRT with IPv6. Fix incorrect port used with EPRT. Allow activeMaxPort == activeMinPort in getActivePort() method. Fixes NET-313.sebb
fixFromNetASCIIInputStream.read(byte[], int, int) may change length passed to superclass if not doing conversion Fixes NET-328.sebb
addTestcase to show WindowSizeOptionHandler is working OK Fixes NET-74.sebb
fixThe method VMSFTPEntryParser.parseFileList(InputStream listStream) should not be present. Partial fix - marked method as deprecated and to be removed Fixes NET-330.sebb
fixTelnet EOR is "consumed" by TelnetInputStream when in BINARY transmission. Send notification to TelnetNotificationHandler. Fixes NET-180.sebb
fixTelnetInoutStream#__read() bug in the __receiveState handling for the _STATE_IAC state. Fixes NET-329.sebb
fixSocketClient should ensure input and output streams are closed Fixes NET-283.sebb
fixFTP: initiateListParsing should not cache entryParser Fixes NET-302.sebb
fixImprovement to isInRange method in SubnetUtil.SubnetInfo class Fixes NET-282.rwinston
fixFTPClient.listFiles() corrupts file name in certain circumstances Fixes NET-266.rwinston
fixTelnet spyStream NullPointerException Fixes NET-264.sebb
updateDeprecated the following unused fields from org.apache.commons.net.ftp.FTPSClient: KEYSTORE_ALGORITHM, PROVIDER, STORE_TYPE, TRUSTSTORE_ALGORITHMsebb
fixFix site reportsniallp
fixAdd support for setting external host ip/port range Fixes NET-285.rwinston
fixAdd fix and testcase for DotTerminatedMessageReader Fixes NET-290.rwinston
fixAdd support for IPv6 EPRT/EPSV Fixes NET-288.rwinston
fixFix SubnetUtils for /32 subnets and add inclusive host count flag Fixes NET-305.rwinston
fixFix NPE when listHiddenFiles was on Fixes NET-300.rwinston
fixUNIXFTPEntryParser didn't preserve trailing whitespace in files Fixes NET-215.rwinston
fixmethod SubnetUtils.SubnetInfo.isInRange(addr) returns incorrect result Fixes NET-236.rwinston
fixMethod createServerSocket of FTPSSocketFactory never called and thus UseClientMode is incorrect in a secured ftp transfer using active mode. Fixes NET-242.rwinston
fixFix inconsistent command list in FTPCommand Fixes NET-248.rwinston
fixDefaultFTPFileEntryParserFactory did not work with Netware FTP server returning "NETWARE TYPE: L8" Fixes NET-250.rwinston
fixFTP.getReplyStrings() returned array of null Strings Fixes NET-257.rwinston
fixUnixFTPEntryParser regex did not match some directory entries Fixes NET-259.rwinston
fixSubnetUtils.SubnetInfo.isInRange(...) returned incorrect values Fixes NET-260.rwinston
updateSubnetUtils.SubnetInfo.isInRange(...) behaviour not documented Fixes NET-261.rwinston
fixSubnetUtils did not handle /31 and /32 CIDRs well Fixes NET-262.rwinston
fixUnixFTPEntryParser failed to parse entry in certain conditions Fixes NET-265.rwinston
fixFTPClient.listFiles() corrupted file name in certain circumstances Fixes NET-266.rwinston
updateMoved class "ThreadContainer" from Threader.java into its own source file Fixes NET-251.rwinston
fixFTPSClient should accept a pre-configured SSLContext Fixes NET-256.rwinston
addSubnetUtils / SubNetInfo toString() implementations Fixes NET-263.rwinston
fixImprove NNTPClient handling of invalid articlesrwinston
updateRefactor examples package.rwinston
addJavadoc fixes, improvements, and refactoring.sebb
fixApply MFMT patch Fixes NET-245.rwinston
fixFix copying of reply lines collection Fixes NET-279.rwinston
fixFix incorrect NNTP constant Fixes NET-277.rwinston
fixRestore socket state after CCC command Fixes NET-274.rwinston
fixExample code in FTPClient doesn't compile Fixes NET-275.rwinston
fixFix inconsistent handling of socket read/write buffer sizerwinston
fixUnixFTPEntryParser fails to parse some entries Fixes NET-294.sebb

Release 2.1 - null

No changes in this release.

Release 2.0 - October 20, 2008

TypeChangesBy
fixOne of the "connect" method in class org.apache.commons.net.SocketClient doesn't handle connection timeout properly Fixes NET-307.rwinston
updateAdd null check in TelnetClient::disconnect().rwinston
removeRemove deprecated FTPFileIterator and FTPFileList classes.rwinston
addAdd connection timeout functionality to SocketClient.rwinston
updateMake the KeyManager and TrustManager settable (niklas@protocol7.com).rwinston
updatePatch FTPSClient to set default SSLServerSocketFactory. Thanks niklas@protocol7.comrwinston
fixPatch to prevent TFTPClient dropping last packet. Thanks palm@poplarware.com Fixes NET-68.rwinston
updateChange isConnected() method to delegate to underlying socket connection.rwinston
addFTPS (TLS and SSL) is now supported. Thanks to Jose Juan Montiel, Paul Ferraro, and Satoshi Ishigami.rwinston
updateCommons::Net now uses Maven 2. The project.xml has been replaced with a pom.xml, and the source tree layout has been changed accordingly.rwinston
removeRemoved old ftp2 proposal directories.rwinston
updateCommons::Net now uses JDK regex functionality, saving on an extra [oro] dependency. There are now no external dependencies required.rwinston
fixVarious syntactic issues (FindBugs issues, JDK 5.0 generics support)rwinston
fixApplied Rob Hasselbaum's rhasselbaum -> alumni.ithaca.edu patch for PR 38688 fixing a TelnetInputStream hang.dfs
updateExposed control connection of FTP class via _controlInput_ and _controlOutput_ protected member variables in response to PR 38309 reported by josejuan.montiel@gmail.com.dfs
fixReverted PR 32859 patch to TFTPClient because it caused final packets to not be sent.dfs
updateMake FTPClient extend SocketClient instead of TelnetClient. From jhindsley@providerlink.com Fixes NET-36.rwinston
fixAdds an "e" symbolic link flag to the Unix FTP parser. From denisgaebler@netscape.net Fixes NET-39.rwinston
fixAllow hidden files to be listed. Thanks to mario@ops.co.at Fixes NET-119.rwinston
updateRemove reflective check for Socket::isConnected() (no longer needed)rwinston
addAdded WindowSizeOptionHandler for TelnetClient. Thanks to yuvalkashtan@gmail.com Fixes NET-136.rwinston
updateRefactored *Client classes under net/ package into separate subpackages, and move PrintCommandListener out of the examples/ package.rwinston
addAdded an ant target to the Maven build to generate an FTP-only jar file, for clients who wish to use only FTP-based functionality.rwinston
updateCustom SocketFactory interface has been replaced with the JDK SocketFactory implementation. Added ServerSocketFactory instance to SocketClient.rwinston
updateRemoved redundant FTP.IMAGE_FILE_TYPE flag.rwinston
updateAdded heavily updated MVSFTPEntryParser from henrik.sorensen@balcab.chrwinston
removeRemoved deprecated classes FTPFileListParser, FTPFileListParserImpl, and DefaultFTPFileListParser. Also removed associated deprecated methods from FTPClient.rwinston
fixAdded encoding to FingerClient. From Ulrich Mayring. Fixes NET-164.rwinston
fixCatch BindException in RCommandClient::connect(). Fixes NET-24.rwinston
fixAdd encoding specifier to SMTPClient. Fixes NET-178.rwinston
addAdd setters for socket send/receive buffer size to SocketClient.rwinston
fixFix PASV specifiers that broke previously. From Chris Eagle. Fixes NET-177.rwinston
fixCatch NPE in FTP parser factory method. Fixes NET-182.rwinston
fixDon't bind a UDP socket to NTP protocol port. Fixes NET-172.rwinston
fixBetter handling of user and group names with embedded spaces in FTP listings.rwinston
fixAdd configurable multiline parsing. Fixes NET-173.rwinston
fixAdd fix for broken leap year date parsing. Fixes NET-188.rwinston
addAdd SubnetUtils class (suggested by Kenny McLeod)rwinston
fixAdd Unix-type handling for UNKNOWN Type: L8 syst() message systems. Fixes NET-169.rwinston
fixAllow FTPTimestampParserImpl to take a predefined Calendar instance representing current time. Fixes NET-198.rwinston
fixReplace Exception with IOException Fixes NET-194.sebb
updateVMS file permission parsing Fixes NET-214.sebb
fixTelnetInputStream swallows interruptedexception as IOException Fixes NET-208.sebb
fixthe data connection socket is not closed when an IOException occurred Fixes NET-223.sebb
fixParserInitializationException when connecting to a Unix FTP server: comparison string must be upper case Fixes NET-230.sebb
fixFTPFileEntryParserImpl.preParse() doesn't remove unparsable entries at the end of the file list Fixes NET-225.sebb

Release 1.4.1 - December 3, 2005

TypeChangesBy
fixApplied patches for defect 37113. Code incompatible with jdk 1.3. Original patch submitted by Andrea Rombaldscohen
fixApplied patches for defect 37522. updated project.xml to correct compatibility level.scohen

Release 1.4.0 - May 7, 2005

TypeChangesBy
fixFixed typo in method name. FTP.removeCommandListener() was missing the L. Problem reported by Per.Lindberger@linkon.se.dfs
fixApplied fix for PR 33942 and PR 31793. Original patch submitted by mario@ops.co.atrwinston
fixTFTPClient was ignoring final ACK (PR 32859). Thanks to perttu.auramo@ekahau.comrwinston
fixApplied fix for ACL parsing in the FTP client (PR 33972). Submitted by robertalasch@yahoo.comrwinston
fixAdded missing NTP/SNTP unit tests to the codebase.rwinston
fixApplied fix for POP3Client returning empty reply strings (PR 34133). Thanks to sammy_c@lineone.netdfs
fixNTP port parameter was being ignored (PR 34219). Fixed by felix.eichhorn@3soft.derwinston
addAn FTP parser for MVS was added. Submitted by wnoto@openfinance.comscohen
addAdded functionality for extensible parsing of FTP responses, using a configurable format string. This should enable the FTP client to operate across many different locales and date formats.scohen

Release 1.3.0 - December 15, 2004

TypeChangesBy
fixApplied patch for PR 31793. Thanks to mario@ops.co.atrwinston
addAdded message threading functionality to the NNTP client.rwinston
updateAdded return code 521 to FTPReply.java - this should obviate the need for the Ant FTP task to manually declare it.rwinston
fixAdd explicit notify() in TelnetInputStream::read(), so available() returns an accurate value. Thanks to tpalkot@gmail.com.rwinston
addAdded SNTP/NTP components into the Commons-Net codebase, courtesy of Jason Matthews.rwinston
addAdded POP3 test suite, courtesy of Mike George mike.george@comcast.net.rwinston
fixApplied fix for FTPClient returning null for certain timestamp formats (BUG #30737)scohen
fixBuild.xml fixes - dont include example classes in redistributable .jar, remove test dependency from javadoc target, and exclude private members from generated javadoc.rwinston
fixFixed bug in TFTPClient::setMaxTimeout(), spotted by steve@widge.netrwinston
fixSome changes to facilitate compilation under JDK 5.0dfs
fixReturn correct NNTP article count when high and low watermarks are 0. Spotted by jmordax@terra.esrwinston
fixRemove trailing null byte in TFTP packets. Thanks to gerard.dens@alcatel.berwinston
fixMany javadoc fixes.dfs
updateAllow FTPClient to set transfer buffer size.rwinston
updateEnsure consistent handling of encoding throughout FTPClient operations. Patch submitted by leif@tanukisoftware.com.rwinston
fixFix TelnetClient zombie thread issuedfs

Release 1.3.0-dev - July 28, 2004

TypeChangesBy
fixFixed regression from migration to new parsers. Most of the new parsers parsed the file size as an integer instead of a long. Changed all of them to set the size to long. This problem was detected by the reporter of: http://issues.apache.org/bugzilla/show_bug.cgi?id=30345dfs

Release 1.2.2 - June 25, 2004

TypeChangesBy
fixfixed bug in the way FTPClient.listFiles worked when a directory was not specified. Current directory was not being 'remembered'. This was most problematic in the dependent ftp task of Ant.scohen
fixfixed handling of certain unusual "special" file types in the Unix parser.scohen

Release 1.2.1 - May 6, 2004

TypeChangesBy
fixchanged code that rendered package uncompilable under JDK 1.2scohen

Release 1.2.0 - April 30, 2004

TypeChangesBy
fixMario Ivankovits mario@ops.co.at added functionality supporting correct handling of the "dirstyle" attribute of NT and OS400 servers that allows them to mimic Unix ftp servers. and a bug fix affecting handling of sticky and suid bits on Unix FTP servers.scohen
addMario Ivankovits mario@ops.co.at added parser for OS400.scohen
fixAdded a functional junit test testing list parsing against real servers and fix several bugs found through this test.jbrekke,scohen
addTed Wise ctwise@bellsouth.net provided a patch to add the XHDR extended NNTP command.dfs
updateDeprecated FTPFileListParser interface, DefaultFTPFileListParser class, and the FTPClient.listFiles methods that accepted an FTPFileListParser parameter. These deprecated classes and methods will be removed in version 2.0.scohen,dfs
addAdded org.apache.commons.net.parser.FTPFileEntryParserFactory interface and a default implementation: DefaultFTPFileEntryParserFactory. This addition facilitates the autodetection of which FTPFileEntryParser to use to generate listings. FTPClient.listFiles methods were added that implement autodetection.scohen

Release 1.1.0 - October 23, 2003

TypeChangesBy
addRory Winston Rory.Winston@telewest.co.uk provided patches to add the following extended NNTP commands to NNTPClient: XOVER, AUTHINFO USER, AUTHINFO PASS, and LIST ACTIVE.dfs
fixChanged connection hooks for FTP, SMTP, POP3, and NNTP classes to force use of an 8-bit US-ASCII superset (ISO-8859-1) for protocol communication. This was necessary because InputStreamReader and OutputStreamWriter use the default client-side character set encoding. fasselin@ca.ibm.com reported failure of SMTP on OS/390 which has EBCDIC as the native character set.dfs
fixApplied variation of fix suggested by Matthieu Recouly matthieu.recouly@laposte.net so that UnixFTPEntryParser may handle listings of the form: "drwxr-xr-x 1 usernameftp 512 Jan 29 23:32 prog" where the space between user name and group is omitted.dfs
fixApplied patch from Stephane Este-Gracias sestegra@free.fr that fixes the parsing of VMS listings by VMSFTPEntryParser..dfs
fixIf the buffer queue run full, the run() method sometimes hangs forever. Changed wait() to wait(100) as with other changes in TelnetInputStream. Fix submitted From: J. Matysiak ( j.matysiak@cenit.de ).brekke
fixFTP.smnt(String dir) was not passing on the dir to the SMNT command as an argument.brekke
addAdded a link to the FAQ currently hosted on the Apache Wiki.brekke
updateChanged package private NNTP._reader and NNTP._writer member variables to protected NNTP._reader_ and NNTP._writer_ variables as suggested by issue report 16995 to facilitate extending NNTPClient functionality in subclasses.dfs
updateChanged name of FTPClient.__openDataConnection() to FTPClient._openDataConnection_() to remain consistent with the convention in the code that protected members are of the form _foo_. At some point __openDataConnection() had been changed from private to protected.dfs
addAdded terminal option support to the telnet client with tests. From Bruno D'Avanzo ( b.davanzo@inwind.it ).brekke
addNew parsers merged with mainline with support for old list parsers.scohen

Release 1.0.0 - February 23, 2003

TypeChangesBy
addAdded a migration document for moving from NetComponents to Commons/Net.brekke
fixMoved the ftp2 tree with tests to a proposal directory and setup a build for that code. This can grow in this area so users don't think it is production ready.brekke
fixCleaned up license header on some source.dfs
fixMoved .io and .util to .net.io and .net.util in preparation for 1.0 release.dfs
fixFixed typo in NNTP.removeProtocolCommandListener() method name. It was missing an L. From: joev@atg.com.dfs
addVarious site updates including this changes doc and publish date information.brekke
fixPatch for restarting FTP file transfers. The offset was not being sent immediately before the data transfer command on account. The bug was apparently introduced in NetComponents when it was decided to always send a PORT command before each data transfer to avoid socket reuse problems on Windows. From: Tapan Karecha ( tapan@india.hp.com ).dfs
fixApplied a fix for potential deadlock in TelnetInputStream by changing a wait() to a wait(100). From: Tapan Karecha ( tapan@india.hp.com ).dfs
updateFTP examples now use passive ftp connections.dfs