Changes

Release History

VersionDateDescription
3.1Feb 20, 2012This release fixes a few bugs and adds some new functionality (see below). It is binary compatible with previous releases
3.0.1June 6, 2011This is a bug-fix release.
3.0May 16, 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 22, 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.1 Not 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.1 - Feb 20, 2012

TypeChangesBy

fix

[FTP] mlistDir doc should be "MLSD" not "MSLD". Fixes NET-441. Thanks to consiliens.sebb

add

[FTP] Allow user to provide default value in case SYST command fails. Fixes NET-440.sebb

fix

POP3Client.capa() should call POP3Client.getAdditionalReply() Fixes NET-438. Thanks to Norman Maurer.sebb

fix

TFTP implementation subject to Sorcerer's Apprentice Syndrome Fixes NET-412. Thanks to Chuck Wolber.sebb

fix

TFTP does not handle RFC 783 retransmits Fixes NET-410. Thanks to Chuck Wolber.sebb

fix

TelnetInputStream doesn't support non-blocking IO when reader thread is not enabled Fixes NET-437. Thanks to Gavin Camp.sebb

add

FTP should support reporting NATed external IP address Fixes NET-346. Thanks to Kevin Samuel.sebb

add

Commons NET site should link to the examples Fixes NET-433.sebb

fix

FTP using HTTP proxy not working Fixes NET-422. Thanks to Tomas Mysik / Magnus Johansson.sebb

fix

FTPClient.storeFIle might fail when ControlKeepAliveTimeout is set (ditto for FTPCLient.retrieveFile) Fixes NET-423. Thanks to Jens Koch.sebb

add

FTPS: Hook to customize _openDataConnection_ SSLSocket before startHandshake() is called Fixes NET-426. Thanks to Ketan.sebb

fix

Can't login to POP3S Server using explicit mode Fixes NET-430. Thanks to Thomas Mathis.sebb

fix

FTPClient fails to close local listener socket when command socket channel encounter "ReadTimeoutException" Fixes NET-434. Thanks to zhangyong.sebb

add

[FTP] Support for SYST "Mac OS" listing - "MACOS Peter's Server" Fixes NET-436. Thanks to Jürgen Jung.sebb

update

[FTP] _openDataConnection_, __storeFile, and __storeFileStream should be protected and take String for FTP command. Likewise for receiveFile and receiveFileStream. Fixes NET-425. Thanks to Steven Jardine.sebb

update

[Telnet] Increasing sub-negotiation message holder array size Fixes NET-416. Thanks to Abhijeet Gaikwad.sebb

fix

SubnetUtils throws ArrayIndexOutOfBoundsException for new SubnetUtils( "1.2.3.4/32" ).getInfo().getAllAddresses() Fixes NET-428. Thanks to sebb.sebb

fix

Problem connecting to TLS/SSL SMTP server using explicit mode. Fixes NET-421. Thanks to Oliver Saggau.sebb

fix

[Site] typo in migration how-to. Fixes NET-415. Thanks to george thomas.sebb

Release 3.0.1 - June 6, 2011

TypeChangesBy

fix

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

Release 3.0 - May 16, 2011

TypeChangesBy

update

Change 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

fix

FTPSSocketFactory does not override createSocket(); causes java.net.SocketException: Unconnected sockets not implemented. Fixes NET-404.sebb

fix

ftp data connection does not use connectTimeout. Fixes NET-399. Thanks to Noah Levitt.sebb

update

Option to override SSL negotiation. Make FTPSClient#execAuth() and FTPSClient#sslNegotiation() protected Fixes NET-400. Thanks to David Kocher.sebb

fix

IMAP, NNTP, POP3 and SMTP classes uses BufferedReader for control channel, which does not follow the standard. Changed reader to CRLFLineReader. Fixes NET-402.sebb

fix

FTP class uses BufferedReader for control channel, which does not follow the standard. Changed reader to CRLFLineReader. Fixes NET-401.sebb

update

AS400 file timestamp format is wrong. Workround exists. Fixes NET-331.sebb

update

Remove semi-redundant check in SubnetUtils.calculate(). Fixes NET-269.sebb

update

Should 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

update

FTPSClient does not handle AUTH or ADAT and only partially handles PBSZ. FTPSCommand should be deprecated. Fixes NET-397. Thanks to Bogdan Drozdowski.sebb

fix

Better 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

update

Move ProtocolCommandSupport to SocketClient. Fixes NET-395.sebb

update

Should the sendCommandWithID() methods be public? Made methods private, and deleted currently unused ones. Fixes NET-393.sebb

update

Are the sendUntaggedCommand() methods needed? Renamed the method as sendData(), as it's not a command. Fixes NET-394.sebb

update

Use enum for IMAPCommand. Fixes NET-392.sebb

add

Added basic IMAP/IMAPS implementation. Fixes NET-333. Thanks to Bogdan Drozdowski.sebb

fix

Unix parser should ignore "total nnn" lines. Fixes NET-389.sebb

remove

Article.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

fix

ntp.TimeStamp uses incorrect lazy initialisation of static fields simpleFormatter and utcFormatter. Fixes NET-367.sebb

update

Parsing is inefficient, as it parses everything twice. Fixes NET-381.sebb

fix

VMSVersioningFTPEntryParser#preParse should not call super.preParse(). Fixes NET-388.sebb

fix

TelnetInputStream has various threading bugs. Fixes NET-362.sebb

fix

TelnetClient use of FromNetASCIIInputStream and ToNetASCIIOutputStream breaks binary mode. See also NET-387. Fixes NET-89.sebb

update

FTP does not apply timeout to initial responses. Fixes NET-385.sebb

update

KeyManagerUtils - the KeyManager is not efficient. Fixes NET-384.sebb

update

KeyManagerUtils - allow alias to be omitted when there is only one private key in the store Fixes NET-383.sebb

add

A 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

add

FEAT response parsing. Added FTPClient methods: boolean hasFeature(feature [,option]), String fetaureValue(feature), String[] featureValues(feature) Fixes NET-273.sebb

add

FTPClient - support for processing arbitrary commands that only use the control channel Fixes NET-379.sebb

add

FTP listing should support MLST and MLSD. Fixes NET-378.sebb

update

NLST does not take notice of HiddenFiles setting. Fixes NET-377.sebb

update

NNTP Listgroups not working - broken server implementation. Fixes NET-373.sebb

update

DotTerminatedMessageReader should extend BufferedReader, rather than Reader. Fixes NET-375.sebb

update

ParserInitializationException doesn't use standard JDK exception chaining Fixes NET-374.sebb

add

FTPSClient: java.security.cert.CertificateException: No X509TrustManager implementation available if trustManager == null Fixes NET-372.sebb

add

Create TrustManagerFactory to provide custom TrustManagers. Fixes NET-371.sebb

fix

FTPSClient not properly supporting CCC and PROT P. Fixes NET-354. Thanks to Leif John Korshavn.sebb

update

Threader.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

add

Add streaming methods (corresponding to array methods) to NNTPClient. Fixes NET-237.sebb

fix

FTPClient.listFiles() does not work properly, if remote server speaks German. Match non-space{3} instead of A-Za-z{3} Fixes NET-365.sebb

fix

FTPClientConfig: setServerLanguageCode and setShortMonthNames do not work. Ensure that config is passed to all parsers that can use it. Fixes NET-366.sebb

fix

NNTPClient has problems with group listings for large groups. Fixes NET-276.sebb

fix

Possible NPE in Threader.java Fixes NET-185.sebb

fix

nntp.Article is very inefficient and incorrect. Fixes NET-364.sebb

add

The FTP client should autodetect the control encoding. Fixes NET-314. Thanks to Bogdan Drozdowski.sebb

fix

Can't connect to a server behind firewall in passive mode. Fixes NET-363. Thanks to daniel damon.sebb

fix

Queue is full TelnetInputStream. Fixes NET-348.sebb

add

Implement Telnet Command sender. Fixes NET-361.sebb

fix

Telnet 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

add

Telnet client: Support Client-initiated Subnegotiation Messages. Fixes NET-343. Thanks to Archie Cobbs.sebb

add

Telnet client: Support Listener Notification of Incoming Data. Fixes NET-344. Thanks to Archie Cobbs.sebb

fix

Incorrect error handling in method initiateListParsing of FTPClient. Fixes NET-270.sebb

add

SASL PLAIN and CRAM-MD5 authentication. Fixes NET-352. Thanks to Bogdan Drozdowski.sebb

add

The POP3 client does not support SSL/TLS connections. Fixes NET-357. Thanks to Bogdan Drozdowski.sebb

remove

Removed deprecated unused fields from FTPSClient: - KEYSTORE_ALGORITHM, PROVIDER, STORE_TYPE, TRUSTSTORE_ALGORITHMsebb

fix

Implement A Keepalive Mechanism. Control channel keepalive implemented for the following methods: appendFile, storeFile, storeUniqueFile, retrieveFile. Fixes NET-258.sebb

fix

StackOverflowError in Threader. Fixes NET-289. Thanks to Luc Claes.sebb

fix

POP3MessageInfo fields should be final. Fixes NET-317.sebb

fix

Get rid of using deprecated API in VMSFTPEntryParser. Fixes NET-252.sebb

remove

The method VMSFTPEntryParser.parseFileList(InputStream listStream) should not be present. Fixes NET-330.sebb

fix

FTPFileEntryParser API samples are wrong. Fixes NET-303.sebb

add

Use properties file (/systemType.properties) to handle new OS-type auto-detection. Fixes NET-229.sebb

add

Commons 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

fix

Unhandled SecurityException in DefaultFTPFileEntryParserFactory.createFileEntryParser when using applets. Fixes NET-286.sebb

fix

DefaultFTPFileEntryParserFactory.createFileEntryParser(String key) always tries to load a class. Fixes NET-360.sebb

add

New FTPClient method to retrieve all directory names in the current working directory. Added methods listDirectories(), listDirectories(String path). Fixes NET-156.sebb

add

The SMTPClient does not support authentication. Fixes NET-353. Thanks to Bogdan Drozdowski.sebb

add

The SMTP client does not support SSL/TLS connections. Fixes NET-356. Thanks to Bogdan Drozdowski.sebb

add

Implement copy Listener in FTPClient file operations. Fixes NET-358.sebb

fix

CopyStreamAdapter unconditionally resets the CopyStreamEvent source and is inefficient. Fixes NET-359.sebb

fix

examples.nntp.NNTPUtils does not compile Fixes NET-355.sebb

add

APOP 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 22, 2010

TypeChangesBy

fix

FromNetASCIIInputStream can throw a NullPointerException Fixes NET-334.sebb

fix

FTPClient.remoteAppend(String filename) uses STOR instead of APPE Fixes NET-341.sebb

fix

Incorrect 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

add

ftp.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

add

Add support for FTPFileFilter filters. New classes FTPFileFilter, FTPFileFilters, new methods: FTPListParseEngine#getFiles(FTPFileFilter filter) FTPClient.listFiles(String pathname, FTPFileFilter filter) Fixes NET-244.sebb

fix

Optionally 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

fix

FromNetASCIIInputStream.read(byte[], int, int) may change length passed to superclass if not doing conversion Fixes NET-328.sebb

add

Testcase to show WindowSizeOptionHandler is working OK Fixes NET-74.sebb

fix

The method VMSFTPEntryParser.parseFileList(InputStream listStream) should not be present. Partial fix - marked method as deprecated and to be removed Fixes NET-330.sebb

fix

Telnet EOR is "consumed" by TelnetInputStream when in BINARY transmission. Send notification to TelnetNotificationHandler. Fixes NET-180.sebb

fix

TelnetInoutStream#__read() bug in the __receiveState handling for the _STATE_IAC state. Fixes NET-329.sebb

fix

SocketClient should ensure input and output streams are closed Fixes NET-283.sebb

fix

FTP: initiateListParsing should not cache entryParser Fixes NET-302.sebb

fix

Improvement to isInRange method in SubnetUtil.SubnetInfo class Fixes NET-282.rwinston

fix

FTPClient.listFiles() corrupts file name in certain circumstances Fixes NET-266.rwinston

fix

Telnet spyStream NullPointerException Fixes NET-264.sebb

update

Deprecated the following unused fields from org.apache.commons.net.ftp.FTPSClient: KEYSTORE_ALGORITHM, PROVIDER, STORE_TYPE, TRUSTSTORE_ALGORITHMsebb

fix

Fix site reportsniallp

fix

Add support for setting external host ip/port range Fixes NET-285.rwinston

fix

Add fix and testcase for DotTerminatedMessageReader Fixes NET-290.rwinston

fix

Add support for IPv6 EPRT/EPSV Fixes NET-288.rwinston

fix

Fix SubnetUtils for /32 subnets and add inclusive host count flag Fixes NET-305.rwinston

fix

Fix NPE when listHiddenFiles was on Fixes NET-300.rwinston

fix

UNIXFTPEntryParser didn't preserve trailing whitespace in files Fixes NET-215.rwinston

fix

method SubnetUtils.SubnetInfo.isInRange(addr) returns incorrect result Fixes NET-236.rwinston

fix

Method createServerSocket of FTPSSocketFactory never called and thus UseClientMode is incorrect in a secured ftp transfer using active mode. Fixes NET-242.rwinston

fix

Fix inconsistent command list in FTPCommand Fixes NET-248.rwinston

fix

DefaultFTPFileEntryParserFactory did not work with Netware FTP server returning "NETWARE TYPE: L8" Fixes NET-250.rwinston

fix

FTP.getReplyStrings() returned array of null Strings Fixes NET-257.rwinston

fix

UnixFTPEntryParser regex did not match some directory entries Fixes NET-259.rwinston

fix

SubnetUtils.SubnetInfo.isInRange(...) returned incorrect values Fixes NET-260.rwinston

update

SubnetUtils.SubnetInfo.isInRange(...) behaviour not documented Fixes NET-261.rwinston

fix

SubnetUtils did not handle /31 and /32 CIDRs well Fixes NET-262.rwinston

fix

UnixFTPEntryParser failed to parse entry in certain conditions Fixes NET-265.rwinston

fix

FTPClient.listFiles() corrupted file name in certain circumstances Fixes NET-266.rwinston

update

Moved class "ThreadContainer" from Threader.java into its own source file Fixes NET-251.rwinston

fix

FTPSClient should accept a pre-configured SSLContext Fixes NET-256.rwinston

add

SubnetUtils / SubNetInfo toString() implementations Fixes NET-263.rwinston

fix

Improve NNTPClient handling of invalid articlesrwinston

update

Refactor examples package.rwinston

add

Javadoc fixes, improvements, and refactoring.sebb

fix

Apply MFMT patch Fixes NET-245.rwinston

fix

Fix copying of reply lines collection Fixes NET-279.rwinston

fix

Fix incorrect NNTP constant Fixes NET-277.rwinston

fix

Restore socket state after CCC command Fixes NET-274.rwinston

fix

Example code in FTPClient doesn't compile Fixes NET-275.rwinston

fix

Fix inconsistent handling of socket read/write buffer sizerwinston

fix

UnixFTPEntryParser fails to parse some entries Fixes NET-294.sebb

Release 2.1

No changes in this release.

Release 2.0 - October 20, 2008

TypeChangesBy

fix

One of the "connect" method in class org.apache.commons.net.SocketClient doesn't handle connection timeout properly Fixes NET-307.rwinston

update

Add null check in TelnetClient::disconnect().rwinston

remove

Remove deprecated FTPFileIterator and FTPFileList classes.rwinston

add

Add connection timeout functionality to SocketClient.rwinston

update

Make the KeyManager and TrustManager settable (niklas@protocol7.com).rwinston

update

Patch FTPSClient to set default SSLServerSocketFactory. Thanks niklas@protocol7.comrwinston

fix

Patch to prevent TFTPClient dropping last packet. Thanks palm@poplarware.com Fixes NET-68.rwinston

update

Change isConnected() method to delegate to underlying socket connection.rwinston

add

FTPS (TLS and SSL) is now supported. Thanks to Jose Juan Montiel, Paul Ferraro, and Satoshi Ishigami.rwinston

update

Commons::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

remove

Removed old ftp2 proposal directories.rwinston

update

Commons::Net now uses JDK regex functionality, saving on an extra [oro] dependency. There are now no external dependencies required.rwinston

fix

Various syntactic issues (FindBugs issues, JDK 5.0 generics support)rwinston

fix

Applied Rob Hasselbaum's rhasselbaum -> alumni.ithaca.edu patch for PR 38688 fixing a TelnetInputStream hang.dfs

update

Exposed control connection of FTP class via _controlInput_ and _controlOutput_ protected member variables in response to PR 38309 reported by josejuan.montiel@gmail.com.dfs

fix

Reverted PR 32859 patch to TFTPClient because it caused final packets to not be sent.dfs

update

Make FTPClient extend SocketClient instead of TelnetClient. From jhindsley@providerlink.com Fixes NET-36.rwinston

fix

Adds an "e" symbolic link flag to the Unix FTP parser. From denisgaebler@netscape.net Fixes NET-39.rwinston

fix

Allow hidden files to be listed. Thanks to mario@ops.co.at Fixes NET-119.rwinston

update

Remove reflective check for Socket::isConnected() (no longer needed)rwinston

add

Added WindowSizeOptionHandler for TelnetClient. Thanks to yuvalkashtan@gmail.com Fixes NET-136.rwinston

update

Refactored *Client classes under net/ package into separate subpackages, and move PrintCommandListener out of the examples/ package.rwinston

add

Added 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

update

Custom SocketFactory interface has been replaced with the JDK SocketFactory implementation. Added ServerSocketFactory instance to SocketClient.rwinston

update

Removed redundant FTP.IMAGE_FILE_TYPE flag.rwinston

update

Added heavily updated MVSFTPEntryParser from henrik.sorensen@balcab.chrwinston

remove

Removed deprecated classes FTPFileListParser, FTPFileListParserImpl, and DefaultFTPFileListParser. Also removed associated deprecated methods from FTPClient.rwinston

fix

Added encoding to FingerClient. From Ulrich Mayring. Fixes NET-164.rwinston

fix

Catch BindException in RCommandClient::connect(). Fixes NET-24.rwinston

fix

Add encoding specifier to SMTPClient. Fixes NET-178.rwinston

add

Add setters for socket send/receive buffer size to SocketClient.rwinston

fix

Fix PASV specifiers that broke previously. From Chris Eagle. Fixes NET-177.rwinston

fix

Catch NPE in FTP parser factory method. Fixes NET-182.rwinston

fix

Don't bind a UDP socket to NTP protocol port. Fixes NET-172.rwinston

fix

Better handling of user and group names with embedded spaces in FTP listings.rwinston

fix

Add configurable multiline parsing. Fixes NET-173.rwinston

fix

Add fix for broken leap year date parsing. Fixes NET-188.rwinston

add

Add SubnetUtils class (suggested by Kenny McLeod)rwinston

fix

Add Unix-type handling for UNKNOWN Type: L8 syst() message systems. Fixes NET-169.rwinston

fix

Allow FTPTimestampParserImpl to take a predefined Calendar instance representing current time. Fixes NET-198.rwinston

fix

Replace Exception with IOException Fixes NET-194.sebb

update

VMS file permission parsing Fixes NET-214.sebb

fix

TelnetInputStream swallows interruptedexception as IOException Fixes NET-208.sebb

fix

the data connection socket is not closed when an IOException occurred Fixes NET-223.sebb

fix

ParserInitializationException when connecting to a Unix FTP server: comparison string must be upper case Fixes NET-230.sebb

fix

FTPFileEntryParserImpl.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

fix

Applied patches for defect 37113. Code incompatible with jdk 1.3. Original patch submitted by Andrea Rombaldscohen

fix

Applied patches for defect 37522. updated project.xml to correct compatibility level.scohen

Release 1.4.0 - May 7, 2005

TypeChangesBy

fix

Fixed typo in method name. FTP.removeCommandListener() was missing the L. Problem reported by Per.Lindberger@linkon.se.dfs

fix

Applied fix for PR 33942 and PR 31793. Original patch submitted by mario@ops.co.atrwinston

fix

TFTPClient was ignoring final ACK (PR 32859). Thanks to perttu.auramo@ekahau.comrwinston

fix

Applied fix for ACL parsing in the FTP client (PR 33972). Submitted by robertalasch@yahoo.comrwinston

fix

Added missing NTP/SNTP unit tests to the codebase.rwinston

fix

Applied fix for POP3Client returning empty reply strings (PR 34133). Thanks to sammy_c@lineone.netdfs

fix

NTP port parameter was being ignored (PR 34219). Fixed by felix.eichhorn@3soft.derwinston

add

An FTP parser for MVS was added. Submitted by wnoto@openfinance.comscohen

add

Added 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

fix

Applied patch for PR 31793. Thanks to mario@ops.co.atrwinston

add

Added message threading functionality to the NNTP client.rwinston

update

Added return code 521 to FTPReply.java - this should obviate the need for the Ant FTP task to manually declare it.rwinston

fix

Add explicit notify() in TelnetInputStream::read(), so available() returns an accurate value. Thanks to tpalkot@gmail.com.rwinston

add

Added SNTP/NTP components into the Commons-Net codebase, courtesy of Jason Matthews.rwinston

add

Added POP3 test suite, courtesy of Mike George mike.george@comcast.net.rwinston

fix

Applied fix for FTPClient returning null for certain timestamp formats (BUG #30737)scohen

fix

Build.xml fixes - dont include example classes in redistributable .jar, remove test dependency from javadoc target, and exclude private members from generated javadoc.rwinston

fix

Fixed bug in TFTPClient::setMaxTimeout(), spotted by steve@widge.netrwinston

fix

Some changes to facilitate compilation under JDK 5.0dfs

fix

Return correct NNTP article count when high and low watermarks are 0. Spotted by jmordax@terra.esrwinston

fix

Remove trailing null byte in TFTP packets. Thanks to gerard.dens@alcatel.berwinston

fix

Many javadoc fixes.dfs

update

Allow FTPClient to set transfer buffer size.rwinston

update

Ensure consistent handling of encoding throughout FTPClient operations. Patch submitted by leif@tanukisoftware.com.rwinston

fix

Fix TelnetClient zombie thread issuedfs

Release 1.3.0-dev - July 28, 2004

TypeChangesBy

fix

Fixed 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

fix

fixed 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

fix

fixed handling of certain unusual "special" file types in the Unix parser.scohen

Release 1.2.1 - May 6, 2004

TypeChangesBy

fix

changed code that rendered package uncompilable under JDK 1.2scohen

Release 1.2.0 - April 30, 2004

TypeChangesBy

fix

Mario 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

add

Mario Ivankovits mario@ops.co.at added parser for OS400.scohen

fix

Added a functional junit test testing list parsing against real servers and fix several bugs found through this test.jbrekke,scohen

add

Ted Wise ctwise@bellsouth.net provided a patch to add the XHDR extended NNTP command.dfs

update

Deprecated 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

add

Added 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

add

Rory 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

fix

Changed 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

fix

Applied 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

fix

Applied patch from Stephane Este-Gracias sestegra@free.fr that fixes the parsing of VMS listings by VMSFTPEntryParser..dfs

fix

If 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

fix

FTP.smnt(String dir) was not passing on the dir to the SMNT command as an argument.brekke

add

Added a link to the FAQ currently hosted on the Apache Wiki.brekke

update

Changed 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

update

Changed 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

add

Added terminal option support to the telnet client with tests. From Bruno D'Avanzo ( b.davanzo@inwind.it ).brekke

add

New parsers merged with mainline with support for old list parsers.scohen

Release 1.0.0 - February 23, 2003

TypeChangesBy

add

Added a migration document for moving from NetComponents to Commons/Net.brekke

fix

Moved 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

fix

Cleaned up license header on some source.dfs

fix

Moved .io and .util to .net.io and .net.util in preparation for 1.0 release.dfs

fix

Fixed typo in NNTP.removeProtocolCommandListener() method name. It was missing an L. From: joev@atg.com.dfs

add

Various site updates including this changes doc and publish date information.brekke

fix

Patch 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

fix

Applied a fix for potential deadlock in TelnetInputStream by changing a wait() to a wait(100). From: Tapan Karecha ( tapan@india.hp.com ).dfs

update

FTP examples now use passive ftp connections.dfs