blob: 643e18ddc9a6ac2311d6cf5f58f40e3ff2175868 [file] [log] [blame]
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This file is also used by the maven-changes-plugin to generate the release notes.
Useful ways of finding items to add to this file are:
1. Add items when you fix a bug or add a feature (this makes the
release process easy :-).
2. Do a JIRA search for tickets closed since the previous release.
3. Use the report generated by the maven-changelog-plugin to see all
SVN commits. Set the project.properties' maven.changelog.range
property to the number of days since the last release.
To generate the release notes from this file:
mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]
then tweak the formatting if necessary
and commit
The <action> type attribute can be add,update,fix,remove.
-->
<document>
<properties>
<title>Apache Commons Net Release Notes</title>
<author email="dev@commons.apache.org">Apache Commons developers</author>
</properties>
<!-- NOTE:
The description below is specially formatted so as to improve the layout of the generated release notes:
The parsing process removes all line feeds, replacing them with a single space.
The Velocity template in resources/templates has been enhanced to replace pairs of adjacent spaces
with a new-line in the release notes. (These spaces are ignored when displaying HTML).
If the output is not quite correct, check for invisible trailing spaces!
N.B. The release notes template groups actions by type, and only extracts data for the current release.
The changes report outputs actions in the order they appear in this file.
To regenerate the release notes:
mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]
Defining changes.version allows one to create the RN without first removing the SNAPSHOT suffix.
-->
<body>
<release version="3.7" date="TBA" descriptioon="
This is mainly a bug-fix release. See further details below.
This release is binary compatible with previous releases.
However it is not source compatible with releases before 3.4, as some methods were added to the interface NtpV3Packet in 3.4
Note that the examples packages were moved under org/apache/commons/net/examples.
The examples are not part of the public API, so this does not affect compatibility.
">
<action issue="NET-673" type="fix" dev="sebb">
IMAPClient.APPEND does not always calculate the correct length
</action>
<action issue="NET-646" type="add" dev="sebb">
ALLO FTP Command for files >2GB
</action>
<action issue="NET-615" type="add" dev="sebb">
IMAPClient could simplify using empty arguments
</action>
<action issue="NET-614" type="add" dev="sebb">
IMAP fails to quote/encode mailbox names
</action>
<action issue="NET-643" type="fix" dev="sebb" due-to="Vasily">
NPE when closing telnet stream
</action>
<action issue="NET-648" type="add" dev="pschumacher">
Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility
</action>
<action issue="NET-641" type="fix" dev="sebb" due-to="pin_ptr">
SubnetUtils.SubnetInfo.isInRange("0.0.0.0") returns true for CIDR/31, 32
</action>
<action issue="NET-638" type="add" dev="sebb" due-to="Daniel Leong">
Telnet subnegotiations hard-limited to 512 bytes - allow override
</action>
<action issue="NET-639" type="fix" dev="sebb" due-to=" Alexander Eller">
MVSFTPEntryParser.preParse - MVS, z/OS - allow for merged Ext/Used fields
</action>
<action issue="NET-636" type="fix" dev="sebb">
examples should be in org.apache.commons.net subpackage
</action>
<action issue="NET-634" type="add" dev="sebb" due-to="Mauro Molinari">
Add SIZE command support
</action>
<action type="add" dev="sebb">
Add POP3ExportMbox example code
</action>
<action issue="NET-633" type="update" dev="sebb" due-to="n0rm1e">
Add XOAUTH2 to IMAP and SMTP
</action>
<action issue="NET-632" type="update" dev="sebb" due-to="prakapenka">
FTPHTTPClient - support for encoding other than UTF-8
</action>
<action issue="NET-631" type="fix" dev="sebb">
Bug in MVSFTPEntryParser.parseUnixList (FindBugs)
</action>
<action issue="NET-584" type="fix" dev="sebb" due-to="Kazantsev Andrey Sergeevich/Nick Manley">
Error when using org.apache.commons.net.ftp.FTPClient setControlKeepAliveTimeout
</action>
<action issue="NET-626" type="update" dev="sebb" due-to="Makoto Sakaguchi">
SubnetUtils#SubnetUtils - improved comment
</action>
<action issue="NET-625" type="update" dev="sebb">
SubnetUtils - improve construction
</action>
<action issue="NET-624" type="update" dev="sebb" due-to="Makoto Sakaguchi">
SubnetInfo#getCidrSignature - improve functions
</action>
<action issue="NET-624" type="fix" dev="sebb" due-to="Makoto Sakaguchi">
SubnetInfo#toCidrNotation: A wrong format subnet mask is allowed
</action>
<action issue="NET-623" type="fix" dev="sebb" due-to="Makoto Sakaguchi">
SubnetUtils - fixed spelling errors
</action>
<action issue="NET-621" type="update" dev="sebb" due-to="Makoto Sakaguchi">
SubnetUtils#SubnetInfo - remove unnecessary accessors
</action>
<action issue="NET-619" type="update" dev="sebb" due-to="Makoto Sakaguchi">
SubnetUtils - improve binary netmask algorithm
</action>
<action issue="NET-613" type="fix" dev="sebb" due-to="Donald Kwakkel">
System Information Leak in ftp parser
</action>
</release>
<release version="3.6" date="2017-02-15" description="
This is mainly a bug-fix release. See further details below.
This release is binary compatible with previous releases.
However it is not source compatible with releases before 3.4, as some methods were added to the interface NtpV3Packet in 3.4
The code now requires a minimum of Java 1.6.
Changes to functionality:
* The FTP client now performs stricter checks on non-multiline command replies.
The 3 digit code must now be followed by a space and some text, as per RFC 959.
To suppress this stricter checking, call FTP#setStrictReplyParsing(false). This should not be needed with a well-behaved server.
Note also that if strict checking is disabled, some functions may unconditionally strip the next character after the code,
without checking it if is a space.
* The FTP client mlistFile() method now checks for a leading space before removing it.
If the space is missing, a MalformedServerReplyException is thrown.
This will only happen if the FTP server is not compliant with RFC 3659.
Notable additions:
* The POP3Mail examples can now get password from console, stdin or an environment variable.
* TFTPClient code has been rewritten to improve error handling and retries.
">
<action issue="NET-613" type="fix" dev="sebb">
TFTPClient assumes that lastBlock == 0 only once
</action>
<action issue="NET-320" type="fix" dev="sebb" due-to="Kevin Bulebush">
Allow TFTPServer.java to bind to a specific network adapter
</action>
<action issue="NET-414" type="fix" dev="sebb" due-to="Chuck Wolber">
Apache Commons TFTP does not reject request replies that originate from a control port.
</action>
<action issue="NET-477" type="fix" dev="sebb" due-to="John Walton">
TFTP sendFile retry broken
</action>
<action issue="NET-612" type="update" dev="sebb">
Allow TFTP socket IO tracing
</action>
<action issue="NET-596" type="fix" dev="sebb" due-to="Vincent Bories-Azeau">
NullPointerException when disconnecting TelnetClient twice with JDK 7
</action>
<action issue="NET-602" type="fix" dev="sebb" due-to="Ross Braithwaite">
Failure to parse times from SYST_L8 systems that report as "WINDOWS Type: L8"
</action>
<action issue="NET-604" type="fix" dev="sebb" due-to="Frank Delporte">
TFTP send and receive don't have progress indication
</action>
<action issue="NET-588" type="fix" dev="sebb" due-to="Dave Nice / Thai H">
FTPClient.setPassiveNatWorkaround assumes host is outside site local range
</action>
<action issue="NET-610" type="fix" dev="sebb" due-to="Sergey Yanzin">
FTPClient.mlistFile incorrectly handles MLST reply
</action>
<action issue="NET-611" type="fix" dev="sebb">
FTP does not validate command reply syntax fully
</action>
<action issue="NET-609" type="fix" dev="sebb" due-to="Tqup3">
DefaultUnixFTPFileEntryParserFactory Issue (leading spaces removal configuration)
</action>
<action type="update" dev="sebb">
POP3Mail example: support host port; allow reading password from Console/stdin/environment
</action>
<action issue="NET-597" type="fix" dev="sebb" due-to="Hiroki Taniura">
FTP fails to parse listings for Solaris 10 FTPd in Japanese
</action>
<action issue="NET-599" type="update" dev="sebb">
Add shorthand FTPClientConfig constructor
</action>
<action issue="NET-593" type="fix" dev="sebb" due-to="Joerg Weule">
HostnameVerifier is called with ip addess instead of the provided hostname
</action>
<action issue="NET-594" type="fix" dev="sebb" due-to="Brad Worrral">
TelnetClient._closeOutputStream unhandled exception from FilterOutputStream.close
</action>
<action issue="NET-592" type="fix" dev="sebb" due-to="Mark Ford">
plainSocket in FTPSClient is never closed
</action>
</release>
<release version="3.5" date="2016-05-05" description="
This is mainly a bug-fix release. See further details below.
This release is binary compatible with previous releases.
However it is not source compatible with releases before 3.4, as some methods were added to the interface NtpV3Packet in 3.4
The code now requires a minimum of Java 1.6.
Notable additions:
The IMAP examples can now get password from console, stdin or an environment variable.
">
<action issue="NET-583" type="fix" dev="sebb" due-to="Holger Rehn">
FTPClient.getReplyString() returns wrong value after connect()
</action>
<action type="add" dev="sebb">
Alternative password input methods for IMAP examples
</action>
<action type="add" dev="sebb">
More tests for Feb 29 handling.
</action>
<action issue="NET-586" type="fix" dev="sebb">
Don't use Feb 29 for short future date tests
</action>
<action type="fix" dev="sebb">
Documentation tweaks
</action>
</release>
<release version="3.4" date="2015-11-26" description="
This is mainly a bug-fix release. See further details below.
This release is binary compatible with previous releases.
However it is not source compatible, as some methods have been added to the interface NtpV3Packet
Notable additions:
IMAPExportMbox (example app) allows IMAP folders to be exported into an mbox file.
This is the inverse of the IMAPImportMbox example added previously
">
<action issue="NET-581" type="fix" dev="sebb">
SimpleSMTPHeader fails to supply the required Date: header
</action>
<action issue="NET-582" type="fix" dev="sebb">
SimpleSMTPHeader does not allow for missing To: field
</action>
<action issue="NET-580" type="fix" dev="sebb" due-to="Simon Arlott">
SMTPClient.sendSimpleMessage() silently ignores failed recipients
Update Javadoc
</action>
<action issue="NET-579" type="fix" dev="sebb" due-to="Simon Arlott">
SSL/TLS SocketClients do not verify the hostname against the certificate
</action>
<action issue="NET-576" type="update" dev="sebb">
Allow FTPClient to use SYST response if system type is not specified in configuration
</action>
<action issue="NET-575" type="update" dev="sebb">
FTPClientExample should support setting the date format
</action>
<action issue="NET-538" type="fix" dev="sebb" due-to="Dzmitry">
FTPHTTPClient should use socket factory to create sockets
</action>
<action issue="NET-566" type="fix" dev="sebb" due-to="Gary Russell">
UnixFTPEntryParser Drops Leading Spaces from File Names
</action>
<action type="update" dev="sebb">
examples/Main now uses a property file to define aliases instead of scanning class files
</action>
<action issue="NET-552" type="fix" dev="sebb" due-to="Quentin Devriendt">
SocketTimeoutException connecting a FTP server via an HTTP Proxy
</action>
<action issue="NET-528" type="add" dev="sebb">
FTPListParseEngine does not provide access to raw responses
</action>
<action issue="NET-565" type="add" dev="sebb">
Add FTPClient method to return an FTPFile from an MDTM command
</action>
<action issue="NET-564" type="update" dev="sebb">
FTPFile.toFormattedString - allow specification of TimeZone for display
</action>
<action issue="NET-562" type="update" dev="sebb">
FTPFile.toFormattedString should print only signficant parts of the parsed date
</action>
<action issue="NET-563" type="fix" dev="sebb">
MLSxEntryParser needs test cases; parsing is too lax
</action>
<action issue="NET-561" type="fix" dev="sebb">
FTPFile.toFormattedString prints user and group in wrong order
</action>
<action issue="NET-544" type="fix" dev="sebb" due-to="Olivier Queyrut ">
FTPClient.initiateListParsing does not correctly check if parserKey was cached
</action>
<action issue="NET-554" type="update" dev="sebb">
Simplify TelnetOptionHandler class hierarchy
</action>
<action issue="NET-558" type="fix" dev="sebb" due-to="Ralph Becker">
FTPClient.getModificationTime(filename) returns complete received line including response code and EOL
Strip the response code and EOL
</action>
<action issue="NET-556" type="update" dev="sebb" due-to="Andy Rosa">
Make SubnetInfo.isInRange(int) public
</action>
<action issue="NET-550" type="fix" dev="sebb" due-to="Geoffrey Hardy">
Default FTPClient bufferSize results in very slow retrieve transfers
Fix code in Util#copyStream (also copyReader) that failed to use the proper default for buffer size 0
</action>
<action issue="NET-551" type="fix" dev="sebb">
Util copyReader calls CopyStreamListener.bytesTransferred with the incorrect value for bytesTransferred
</action>
<action type="update" dev="sebb">
Added control character processing to TelnetClientExample
</action>
<action issue="NET-547" type="update" dev="sebb" due-to="Fabio Scippacercola">
There is a lack of documentation regarding setControlKeepAliveTimeout
</action>
<action issue="NET-549" type="fix" dev="sebb" due-to="Pradeep Natarajan">
Telnet does not convert LF to CRLF in ASCII mode
</action>
<action issue="NET-543" type="fix" dev="sebb" due-to="Ferry Huberts">
telnet: spy read EOL is reversed
</action>
<action issue="NET-540" type="add" dev="sebb">
Article#printThread should have option to use any PrintStream
</action>
<action issue="NET-539" type="fix" dev="sebb">
NPE if Threader.thread invoked with empty list or with null array
</action>
<action issue="NET-536" type="add" dev="sebb">
IMAP FETCH example
IMAPExportMbox can export selected nessages from an IMAP folder
</action>
<action issue="NET-535" type="add" dev="sebb">
IMAP FETCH can overflow reply buffer; provide for partial responses
</action>
<action issue="NET-534" type="update" dev="sebb">
Unnecesssary call to getReplyString() if no listeners configured
</action>
<action issue="NET-530" type="fix" dev="sebb" due-to="fish ship">
input parameter of org.apache.commons.net.ftp.FTP.__getReply(boolean) is not used
</action>
<action issue="NET-529" type="fix" dev="sebb" due-to="Putinas Piliponis">
SubnetUtils throws exception on valid input
</action>
<action issue="NET-527" type="add" dev="sebb" due-to="jason mathews">
Add SimpleNTPServer as example and for testing
</action>
<action issue="NET-516" type="fix" dev="sebb" due-to="Asha K S &amp; pavan">
parser problem occurs if the filename contains one or more characters of which the second byte of Shift-JIS code is 0x85
Fix NT parser
</action>
<action type="update" dev="sebb">
Added control encoding option to FTPClientExample
</action>
<action issue="NET-526" type="update" dev="sebb" due-to="Jason Mathews, MITRE Corp">
Added missing set methods on NTP class and interface
</action>
<action issue="NET-526" type="update" dev="sebb">
Avoid greedy matches within a regex
</action>
<action issue="NET-520" type="fix" dev="sebb">
SubnetUtils("0.0.0.0/0") does not behave as expected
Fixed range checking so network and broadcast addresses are treated as unsigned ints
</action>
<action issue="NET-521" type="fix" dev="sebb">
SubnetUtils.SubnetInfo.getAddressCount() can overflow as it returns an int
</action>
<action issue="NET-515" type="fix" due-to="Sebastian Ritter">
FTPClient sample in class javadoc "bug"
</action>
<action issue="NET-519" type="fix">
Apache Commons Net 3.3 has a performance issue
</action>
<action issue="NET-517" dev="sebb" type="fix" due-to="David Kocher">
FTPClient#reinitialize is package protected
</action>
<action issue="NET-512" dev="sebb" type="add" due-to="Thomas Raddatz">
Downloading files or members from the AS400 QSYS file system is not supported
</action>
<action issue="NET-518" dev="sebb" type="fix" due-to="David Kocher">
FTPClient#initFeatureMap should not initialize empty map if reply code is 530
</action>
<action issue="NET-514" dev="sebb" type="fix">
IMAP APPEND multiple issues in IMapClient.
Deprecated unusable append methods.
Added new append method, as well as example IMapImportMbox class to make use of it.
</action>
<action issue="NET-511" dev="ggregory" type="fix" due-to="Kyriacos Elia, Daniel Scott">
Exception for new SubnetUtils("0.0.0.0/0").
</action>
</release>
<release version="3.3" date="2013-06-11" description="
This is mainly a bug-fix release. See further details below.
">
<action issue="NET-509" dev="sebb" due-to="Anthony Dahanne" type="update">
AuthenticatingSMTPClient needs a constructor with the isImplicit argument for SSL
</action>
<action issue="NET-501" dev="sebb" due-to="Julián Lastiri" type="fix">
Race Condition on TelnetClient.disconnect() and TelnetInputStream.run()
java.lang.IllegalStateException: Queue is full! Cannot process another character.
</action>
<action issue="NET-505" dev="sebb" due-to="Sean Kelley" type="update">
User specified bufferSize reset to default when FTPClient is disconnected or reinitialized resulting in performance degradation.
</action>
<action issue="NET-507" dev="sebb" due-to="Jiri Netolicky" type="update">
Option to disable private IP replacement in FTP passive mode.
</action>
<action issue="NET-503" dev="sebb" due-to="Ofer Regev" type="add">
AuthenticatingSMTPClient does not support non-default encoding
</action>
<action issue="NET-500" dev="sebb" due-to="Michael Frick" type="fix">
Always call FTPClient#setFileType after connection.
Not all servers default to ASCII.
</action>
<action issue="NET-465" dev="sebb" due-to="Jim Kerwood" type="fix">
FTPClient setSendBufferSize and setReceiveBufferSize on data socket.
The previous fix caused performance problems.
Added new getters and setters for the SO_SNDBUF and SO_RCVBUF values to be used on the data socket.
</action>
<action issue="NET-496" dev="sebb" type="add">
Util copyReader/copyStream classes should use default buffer size for non-positive buffer size parameters.
</action>
<action issue="NET-310" dev="sebb" type="add">
FTPCommand conversion to use enum; added FTPCmd emum and deprecated FTPCommand.
</action>
<action issue="NET-480" dev="sebb" due-to="Peter Naber" type="fix">
Wrong passivHost when using FTPHTTPClient with EPSV
</action>
<action issue="NET-494" dev="sebb" type="fix">
FTPClient.CSL.cleanUp() fails to restore timeout value on exception
</action>
<action issue="NET-492" dev="sebb" due-to="Tomasz Jedrzejewski" type="fix">
FTPClient.printWorkingDirectory() incorrectly parses certain valid PWD command results
</action>
</release>
<release version="3.2" date="2012-12-03" description="
This release fixes bugs and adds some new functionality (see below).
It is binary compatible with previous releases.
Note that Clirr shows that two public methods have been removed (NET-485). These are not used within NET.
">
<action issue="NET-46" dev="sebb" type="fix">
retrieveFileStream fails randomly or hangs
</action>
<action issue="NET-485" dev="sebb" type="fix">
Remove unnecessary Base64 methods.
</action>
<action issue="NET-482" dev="sebb" type="update" due-to="Houman Atashbar">
Support XOAUTH.
</action>
<action issue="NET-484" dev="sebb" type="fix">
Base64.CHUNK_SEPARATOR should be private
</action>
<action issue="NET-483" dev="sebb" type="fix">
Base64.encodeBase64(byte[], boolean, boolean, int) does not calculate output size correctly for unchunked output.
</action>
<action issue="NET-466" dev="sebb" type="fix" due-to="Martin Oberhuber">
Regression: TelnetInputStream#available() blocks.
</action>
<action issue="NET-426" dev="sebb" type="fix" due-to="Ketan">
FTPS: Hook to customize _openDataConnection_ SSLSocket before startHandshake() is called.
Implement _openDataConnection(String, String) method to properly
interface with FTPClient.openDataConnection(String, String)
</action>
<action issue="NET-456" dev="sebb" type="fix">
TelnetClient hangs when reader-thread startup is delayed.
</action>
<action issue="NET-449" dev="sebb" type="fix">
listFiles bug with folder that begins with "-". Clarify Javadoc.
</action>
<action issue="NET-473" dev="sebb" type="fix">
FTPClient setSoTimeout (int time) will result in NullPointerException. Clarify Javadoc.
</action>
<action issue="NET-468" dev="sebb" type="add" due-to="Bogdan Drozdowski">
Request for native support for socks proxy routing with Commons net FTP.
</action>
<action issue="NET-475" dev="sebb" type="fix">
FtpClient sends REST when calling listFiles. Clarified Javadoc.
</action>
<action issue="NET-465" dev="sebb" type="add" due-to="Bogdan Drozdowski">
FTPClient setSendBufferSize and setReceiveBufferSize on data socket.
</action>
<action issue="NET-462" dev="sebb" type="add" due-to="Bogdan Drozdowski">
FTPClient in PASSIVE_LOCAL_DATA_CONNECTION_MODE cannot work when host have several different IP.
</action>
<action issue="NET-467" dev="sebb" type="fix">
IMAPClient#fetch() does not handle literal strings.
</action>
<action issue="NET-458" dev="sebb" type="fix" due-to="Denis Molony">
MVSFTPEntryParser.parseSimpleEntry - ArrayIndexOutOfBoundsException.
</action>
<action issue="NET-450" dev="sebb" type="fix" due-to="Roger Hardiman">
Bug in documentation for FTPClient.
</action>
<action dev="sebb" type="add">
The examples can now be run using "java -jar commons-net-examples-m.n.jar".
This will automatically include the main net jar in the classpath.
See documentation.
FTPClientExample now supports "-A" for anonymous login
</action>
<action issue="NET-442" dev="sebb" type="fix">
StringIndexOutOfBoundsException: String index out of range: -1 if server respond with root is current directory.
</action>
<action issue="NET-444" dev="sebb" type="fix">
FTPTimestampParserImpl fails to parse future dates correctly on Feb 28th in a leap year.
</action>
</release>
<release version="3.1" date="Feb 20, 2012" description="
This release fixes a few bugs and adds some new functionality (see below).
It is binary compatible with previous releases
">
<action issue="NET-441" dev="sebb" type="fix" due-to="consiliens">
[FTP] mlistDir doc should be "MLSD" not "MSLD".
</action>
<action issue="NET-440" dev="sebb" type="add">
[FTP] Allow user to provide default value in case SYST command fails.
</action>
<action issue="NET-438" dev="sebb" type="fix" due-to="Norman Maurer">
POP3Client.capa() should call POP3Client.getAdditionalReply()
</action>
<action issue="NET-412" dev="sebb" type="fix" due-to="Chuck Wolber">
TFTP implementation subject to Sorcerer's Apprentice Syndrome
</action>
<action issue="NET-410" dev="sebb" type="fix" due-to="Chuck Wolber">
TFTP does not handle RFC 783 retransmits
</action>
<action issue="NET-437" dev="sebb" type="fix" due-to="Gavin Camp">
TelnetInputStream doesn't support non-blocking IO when reader thread is not enabled
</action>
<action issue="NET-346" dev="sebb" type="add" due-to="Kevin Samuel">
FTP should support reporting NATed external IP address
</action>
<action issue="NET-433" dev="sebb" type="add">
Commons NET site should link to the examples
</action>
<action issue="NET-422" dev="sebb" type="fix" due-to="Tomas Mysik / Magnus Johansson">
FTP using HTTP proxy not working
</action>
<action issue="NET-423" dev="sebb" type="fix" due-to="Jens Koch">
FTPClient.storeFIle might fail when ControlKeepAliveTimeout is set (ditto for FTPCLient.retrieveFile)
</action>
<action issue="NET-426" dev="sebb" type="add" due-to="Ketan">
FTPS: Hook to customize _openDataConnection_ SSLSocket before startHandshake() is called
</action>
<action issue="NET-430" dev="sebb" type="fix" due-to="Thomas Mathis">
Can't login to POP3S Server using explicit mode
</action>
<action issue="NET-434" dev="sebb" type="fix" due-to="zhangyong">
FTPClient fails to close local listener socket when command socket channel encounter "ReadTimeoutException"
</action>
<action issue="NET-436" dev="sebb" type="add" due-to="Jürgen Jung">
[FTP] Support for SYST "Mac OS" listing - "MACOS Peter's Server"
</action>
<action issue="NET-425" dev="sebb" type="update" due-to="Steven Jardine">
[FTP] _openDataConnection_, __storeFile, and __storeFileStream should be protected and take String for FTP command.
Likewise for receiveFile and receiveFileStream.
</action>
<action issue="NET-416" dev="sebb" type="update" due-to="Abhijeet Gaikwad">
[Telnet] Increasing sub-negotiation message holder array size
</action>
<action issue="NET-428" dev="sebb" type="fix" due-to="sebb">
SubnetUtils throws ArrayIndexOutOfBoundsException for new SubnetUtils( "1.2.3.4/32" ).getInfo().getAllAddresses()
</action>
<action issue="NET-421" dev="sebb" type="fix" due-to="Oliver Saggau">
Problem connecting to TLS/SSL SMTP server using explicit mode.
</action>
<action issue="NET-415" dev="sebb" type="fix" due-to="george thomas">
[Site] typo in migration how-to.
</action>
</release>
<release version="3.0.1" date="June 6, 2011" description="
This is a bug-fix release.
">
<action issue="NET-409" dev="sebb" type="fix">
FTPClient truncates file (storeFile method).
Fix bug introduced in release 3.0.
</action>
</release>
<release version="3.0" date="May 16, 2011" description="
This 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.
">
<action issue="NET-407" dev="sebb" type="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.
</action>
<action issue="NET-404" dev="sebb" type="fix">
FTPSSocketFactory does not override createSocket(); causes java.net.SocketException: Unconnected sockets not implemented.
</action>
<action issue="NET-399" dev="sebb" type="fix" due-to="Noah Levitt">
ftp data connection does not use connectTimeout.
</action>
<action issue="NET-400" dev="sebb" type="update" due-to="David Kocher">
Option to override SSL negotiation. Make FTPSClient#execAuth() and FTPSClient#sslNegotiation() protected
</action>
<action issue="NET-402" dev="sebb" type="fix">
IMAP, NNTP, POP3 and SMTP classes uses BufferedReader for control channel, which does not follow the standard.
Changed reader to CRLFLineReader.
</action>
<action issue="NET-401" dev="sebb" type="fix">
FTP class uses BufferedReader for control channel, which does not follow the standard.
Changed reader to CRLFLineReader.
</action>
<action issue="NET-331" dev="sebb" type="update">
AS400 file timestamp format is wrong. Workround exists.
</action>
<action issue="NET-269" dev="sebb" type="update">
Remove semi-redundant check in SubnetUtils.calculate().
</action>
<action issue="NET-219" dev="sebb" type="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.
</action>
<action issue="NET-397" dev="sebb" type="update" due-to="Bogdan Drozdowski" due-to-email="bogdandr # op . pl">
FTPSClient does not handle AUTH or ADAT and only partially handles PBSZ. FTPSCommand should be deprecated.
</action>
<action issue="NET-268" dev="sebb" type="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
</action>
<action issue="NET-395" dev="sebb" type="update">
Move ProtocolCommandSupport to SocketClient.
</action>
<action issue="NET-393" dev="sebb" type="update">
Should the sendCommandWithID() methods be public?
Made methods private, and deleted currently unused ones.
</action>
<action issue="NET-394" dev="sebb" type="update">
Are the sendUntaggedCommand() methods needed?
Renamed the method as sendData(), as it's not a command.
</action>
<action issue="NET-392" dev="sebb" type="update">
Use enum for IMAPCommand.
</action>
<action issue="NET-333" dev="sebb" type="add" due-to="Bogdan Drozdowski" due-to-email="bogdandr # op . pl">
Added basic IMAP/IMAPS implementation.
</action>
<action issue="NET-389" dev="sebb" type="fix">
Unix parser should ignore "total nnn" lines.
</action>
<action issue="NET-369" dev="sebb" type="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.
</action>
<action issue="NET-367" dev="sebb" type="fix">
ntp.TimeStamp uses incorrect lazy initialisation of static fields simpleFormatter and utcFormatter.
</action>
<action issue="NET-381" dev="sebb" type="update">
Parsing is inefficient, as it parses everything twice.
</action>
<action issue="NET-388" dev="sebb" type="fix">
VMSVersioningFTPEntryParser#preParse should not call super.preParse().
</action>
<action issue="NET-362" dev="sebb" type="fix">
TelnetInputStream has various threading bugs.
</action>
<action issue="NET-89" dev="sebb" type="fix">
TelnetClient use of FromNetASCIIInputStream and ToNetASCIIOutputStream breaks binary mode.
See also NET-387.
</action>
<action issue="NET-385" dev="sebb" type="update">
FTP does not apply timeout to initial responses.
</action>
<action issue="NET-384" dev="sebb" type="update">
KeyManagerUtils - the KeyManager is not efficient.
</action>
<action issue="NET-383" dev="sebb" type="update">
KeyManagerUtils - allow alias to be omitted when there is only one private key in the store
</action>
<action issue="NET-326" dev="sebb" type="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.
</action>
<action issue="NET-273" dev="sebb" type="add">
FEAT response parsing. Added FTPClient methods: boolean hasFeature(feature [,option]),
String fetaureValue(feature), String[] featureValues(feature)
</action>
<action issue="NET-379" dev="sebb" type="add">
FTPClient - support for processing arbitrary commands that only use the control channel
</action>
<action issue="NET-378" dev="sebb" type="add">
FTP listing should support MLST and MLSD.
</action>
<action issue="NET-377" dev="sebb" type="update">
NLST does not take notice of HiddenFiles setting.
</action>
<action issue="NET-373" dev="sebb" type="update">
NNTP Listgroups not working - broken server implementation.
</action>
<action issue="NET-375" dev="sebb" type="update">
DotTerminatedMessageReader should extend BufferedReader, rather than Reader.
</action>
<action issue="NET-374" dev="sebb" type="update">
ParserInitializationException doesn't use standard JDK exception chaining
</action>
<action issue="NET-372" dev="sebb" type="add">
FTPSClient: java.security.cert.CertificateException: No X509TrustManager implementation available if trustManager == null
</action>
<action issue="NET-371" dev="sebb" type="add">
Create TrustManagerFactory to provide custom TrustManagers.
</action>
<action issue="NET-354" dev="sebb" type="fix" due-to="Leif John Korshavn">
FTPSClient not properly supporting CCC and PROT P.
</action>
<action issue="NET-368" dev="sebb" type="update">
Threader.thread should accept an Iterable rather than a List.
</action>
<action issue="NET-327" dev="sebb" type="add" due-to="Bogdan Drozdowski" due-to-email="bogdandr # op . pl">
"Unconnected sockets not implemented" when using FTPSClient
Added disconnect() override which resets the socket factories to their defaults
</action>
<action issue="NET-350" dev="sebb" type="add" due-to="Bogdan Drozdowski" due-to-email="bogdandr # op . pl">
"java.net.SocketException: Broken pipe" when calling "TelnetClient.sendAYT()"
Added SocketClient#isAvailable() method to perform additional checks on a socket.
</action>
<action issue="NET-237" dev="sebb" type="add">
Add streaming methods (corresponding to array methods) to NNTPClient.
</action>
<action issue="NET-365" dev="sebb" type="fix">
FTPClient.listFiles() does not work properly, if remote server speaks German.
Match non-space{3} instead of A-Za-z{3}
</action>
<action issue="NET-366" dev="sebb" type="fix">
FTPClientConfig: setServerLanguageCode and setShortMonthNames do not work.
Ensure that config is passed to all parsers that can use it.
</action>
<action issue="NET-276" dev="sebb" type="fix">
NNTPClient has problems with group listings for large groups.
</action>
<action issue="NET-185" dev="sebb" type="fix">
Possible NPE in Threader.java
</action>
<action issue="NET-364" dev="sebb" type="fix">
nntp.Article is very inefficient and incorrect.
</action>
<action issue="NET-314" dev="sebb" type="add" due-to="Bogdan Drozdowski" due-to-email="bogdandr # op . pl">
The FTP client should autodetect the control encoding.
</action>
<action issue="NET-363" dev="sebb" type="fix" due-to="daniel damon">
Can't connect to a server behind firewall in passive mode.
</action>
<action issue="NET-348" dev="sebb" type="fix">
Queue is full TelnetInputStream.
</action>
<action issue="NET-361" dev="sebb" type="add">
Implement Telnet Command sender.
</action>
<action issue="NET-345" dev="sebb" type="fix" due-to="Archie Cobbs">
Telnet client: not properly handling IAC bytes within subnegotiation messages:
- failing to double IACs on output
- failing to de-double IACs in input
</action>
<action issue="NET-343" dev="sebb" type="add" due-to="Archie Cobbs">
Telnet client: Support Client-initiated Subnegotiation Messages.
</action>
<action issue="NET-344" dev="sebb" type="add" due-to="Archie Cobbs">
Telnet client: Support Listener Notification of Incoming Data.
</action>
<action issue="NET-270" dev="sebb" type="fix">
Incorrect error handling in method initiateListParsing of FTPClient.
</action>
<action issue="NET-352" dev="sebb" type="add" due-to="Bogdan Drozdowski" due-to-email="bogdandr # op . pl">
SASL PLAIN and CRAM-MD5 authentication.
</action>
<action issue="NET-357" dev="sebb" type="add" due-to="Bogdan Drozdowski" due-to-email="bogdandr # op . pl">
The POP3 client does not support SSL/TLS connections.
</action>
<action dev="sebb" type="remove">
Removed deprecated unused fields from FTPSClient:
- KEYSTORE_ALGORITHM, PROVIDER, STORE_TYPE, TRUSTSTORE_ALGORITHM
</action>
<action issue="NET-258" dev="sebb" type="fix">
Implement A Keepalive Mechanism. Control channel keepalive implemented for the following methods:
appendFile, storeFile, storeUniqueFile, retrieveFile.
</action>
<action issue="NET-289" dev="sebb" type="fix" due-to="Luc Claes">
StackOverflowError in Threader.
</action>
<action issue="NET-317" dev="sebb" type="fix">
POP3MessageInfo fields should be final.
</action>
<action issue="NET-252" dev="sebb" type="fix">
Get rid of using deprecated API in VMSFTPEntryParser.
</action>
<action issue="NET-330" dev="sebb" type="remove">
The method VMSFTPEntryParser.parseFileList(InputStream listStream) should not be present.
</action>
<action issue="NET-303" dev="sebb" type="fix">
FTPFileEntryParser API samples are wrong.
</action>
<action issue="NET-229" dev="sebb" type="add">
Use properties file (/systemType.properties) to handle new OS-type auto-detection.
</action>
<action issue="NET-332" dev="sebb" type="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.
</action>
<action issue="NET-286" dev="sebb" type="fix">
Unhandled SecurityException in DefaultFTPFileEntryParserFactory.createFileEntryParser when using applets.
</action>
<action issue="NET-360" dev="sebb" type="fix">
DefaultFTPFileEntryParserFactory.createFileEntryParser(String key) always tries to load a class.
</action>
<action issue="NET-156" dev="sebb" type="add">
New FTPClient method to retrieve all directory names in the current working directory.
Added methods listDirectories(), listDirectories(String path).
</action>
<action issue="NET-353" dev="sebb" type="add" due-to="Bogdan Drozdowski" due-to-email="bogdandr # op . pl">
The SMTPClient does not support authentication.
</action>
<action issue="NET-356" dev="sebb" type="add" due-to="Bogdan Drozdowski" due-to-email="bogdandr # op . pl">
The SMTP client does not support SSL/TLS connections.
</action>
<action issue="NET-358" dev="sebb" type="add">
Implement copy Listener in FTPClient file operations.
</action>
<action issue="NET-359" dev="sebb" type="fix">
CopyStreamAdapter unconditionally resets the CopyStreamEvent source and is inefficient.
</action>
<action issue="NET-355" dev="sebb" type="fix">
examples.nntp.NNTPUtils does not compile
</action>
<action issue="NET-351" dev="sebb" type="add" due-to="Bogdan Drozdowski" due-to-email="bogdandr # op . pl">
APOP authentication fails most of the time.
Fix by adding leading 0 if necessary.
</action>
</release>
<release version="2.2" date="Nov 22, 2010" description="
This 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.
">
<action issue="NET-334" dev="sebb" type="fix">
FromNetASCIIInputStream can throw a NullPointerException
</action>
<action issue="NET-341" dev="sebb" type="fix">
FTPClient.remoteAppend(String filename) uses STOR instead of APPE
</action>
<action issue="NET-339" dev="sebb" type="fix">
Incorrect parsing of timestamp on Windows CE
Fix parsing to allow for new-style DOS listing using 24hr clock rather than AM/PM
</action>
<action issue="NET-338" dev="sebb" type="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().
</action>
<action issue="NET-244" dev="sebb" type="add">
Add support for FTPFileFilter filters. New classes FTPFileFilter, FTPFileFilters, new methods:
FTPListParseEngine#getFiles(FTPFileFilter filter)
FTPClient.listFiles(String pathname, FTPFileFilter filter)
</action>
<action issue="NET-313" dev="sebb" type="fix">
Optionally enable EPSV with IPv4; Only send EPRT with IPv6.
Fix incorrect port used with EPRT. Allow activeMaxPort == activeMinPort in getActivePort() method.
</action>
<action issue="NET-328" dev="sebb" type="fix">
FromNetASCIIInputStream.read(byte[], int, int) may change length passed to superclass if not doing conversion
</action>
<action issue="NET-74" dev="sebb" type="add">
Testcase to show WindowSizeOptionHandler is working OK
</action>
<action issue="NET-330" dev="sebb" type="fix">
The method VMSFTPEntryParser.parseFileList(InputStream listStream) should not be present.
Partial fix - marked method as deprecated and to be removed
</action>
<action issue="NET-180" dev="sebb" type="fix">
Telnet EOR is "consumed" by TelnetInputStream when in BINARY transmission.
Send notification to TelnetNotificationHandler.
</action>
<action issue="NET-329" dev="sebb" type="fix">
TelnetInoutStream#__read() bug in the __receiveState handling for the _STATE_IAC state.
</action>
<action issue="NET-283" dev="sebb" type="fix">
SocketClient should ensure input and output streams are closed
</action>
<action issue="NET-302" dev="sebb" type="fix">
FTP: initiateListParsing should not cache entryParser
</action>
<action issue="NET-282" dev="rwinston" type="fix">
Improvement to isInRange method in SubnetUtil.SubnetInfo class
</action>
<action issue="NET-266" dev="rwinston" type="fix">
FTPClient.listFiles() corrupts file name in certain circumstances
</action>
<action issue="NET-264" dev="sebb" type="fix">
Telnet spyStream NullPointerException
</action>
<action dev="sebb" type="update">
Deprecated the following unused fields from org.apache.commons.net.ftp.FTPSClient:
KEYSTORE_ALGORITHM, PROVIDER, STORE_TYPE, TRUSTSTORE_ALGORITHM
</action>
<action dev="niallp" type="fix">
Fix site reports
</action>
<action issue="NET-285" dev="rwinston" type="fix">
Add support for setting external host ip/port range
</action>
<action issue="NET-290" dev="rwinston" type="fix">
Add fix and testcase for DotTerminatedMessageReader
</action>
<action issue="NET-288" dev="rwinston" type="fix">
Add support for IPv6 EPRT/EPSV
</action>
<action issue="NET-305" dev="rwinston" type="fix">
Fix SubnetUtils for /32 subnets and add inclusive host count flag
</action>
<action issue="NET-300" dev="rwinston" type="fix">
Fix NPE when listHiddenFiles was on
</action>
<action issue="NET-215" dev="rwinston" type="fix">
UNIXFTPEntryParser didn't preserve trailing whitespace in files
</action>
<action issue="NET-236" dev="rwinston" type="fix">
method SubnetUtils.SubnetInfo.isInRange(addr) returns incorrect result
</action>
<action issue="NET-242" dev="rwinston" type="fix">
Method createServerSocket of FTPSSocketFactory never called and thus UseClientMode is incorrect in a secured ftp transfer using active mode.
</action>
<action issue="NET-248" dev="rwinston" type="fix">
Fix inconsistent command list in FTPCommand
</action>
<action issue="NET-250" dev="rwinston" type="fix">
DefaultFTPFileEntryParserFactory did not work with Netware FTP server returning "NETWARE TYPE: L8"
</action>
<action issue="NET-257" dev="rwinston" type="fix">
FTP.getReplyStrings() returned array of null Strings
</action>
<action issue="NET-259" dev="rwinston" type="fix">
UnixFTPEntryParser regex did not match some directory entries
</action>
<action issue="NET-260" dev="rwinston" type="fix">
SubnetUtils.SubnetInfo.isInRange(...) returned incorrect values
</action>
<action issue="NET-261" dev="rwinston" type="update">
SubnetUtils.SubnetInfo.isInRange(...) behaviour not documented
</action>
<action issue="NET-262" dev="rwinston" type="fix">
SubnetUtils did not handle /31 and /32 CIDRs well
</action>
<action issue="NET-265" dev="rwinston" type="fix">
UnixFTPEntryParser failed to parse entry in certain conditions
</action>
<action issue="NET-266" dev="rwinston" type="fix">
FTPClient.listFiles() corrupted file name in certain circumstances
</action>
<action issue="NET-251" dev="rwinston" type="update">
Moved class "ThreadContainer" from Threader.java into its own source file
</action>
<action issue="NET-256" dev="rwinston" type="fix">
FTPSClient should accept a pre-configured SSLContext
</action>
<action issue="NET-263" dev="rwinston" type="add">
SubnetUtils / SubNetInfo toString() implementations
</action>
<action dev="rwinston" type="fix">
Improve NNTPClient handling of invalid articles
</action>
<action dev="rwinston" type="update">
Refactor examples package.
</action>
<action dev="sebb" type="add">
Javadoc fixes, improvements, and refactoring.
</action>
<action issue="NET-245" dev="rwinston" type="fix">
Apply MFMT patch
</action>
<action issue="NET-279" dev="rwinston" type="fix">
Fix copying of reply lines collection
</action>
<action issue="NET-277" dev="rwinston" type="fix">
Fix incorrect NNTP constant
</action>
<action issue="NET-274" dev="rwinston" type="fix">
Restore socket state after CCC command
</action>
<action issue="NET-275" dev="rwinston" type="fix">
Example code in FTPClient doesn't compile
</action>
<action dev="rwinston" type="fix">
Fix inconsistent handling of socket read/write buffer size
</action>
<action issue="NET-294" dev="sebb" type="fix">
UnixFTPEntryParser fails to parse some entries
</action>
</release>
<release version="2.1" description="Not released"/>
<release version="2.0" date="October 20, 2008" description="Java 5.0 release">
<action dev="rwinston" type="fix" issue="NET-307">
One of the "connect" method in class org.apache.commons.net.SocketClient doesn't handle connection timeout properly
</action>
<action dev="rwinston" type="update">
Add null check in TelnetClient::disconnect().
</action>
<action dev="rwinston" type="remove">
Remove deprecated FTPFileIterator and FTPFileList classes.
</action>
<action dev="rwinston" type="add">
Add connection timeout functionality to SocketClient.
</action>
<action dev="rwinston" type="update">
Make the KeyManager and TrustManager settable (niklas@protocol7.com).
</action>
<action dev="rwinston" type="update">
Patch FTPSClient to set default SSLServerSocketFactory. Thanks niklas@protocol7.com
</action>
<action dev="rwinston" type="fix" issue="NET-68">
Patch to prevent TFTPClient dropping last packet. Thanks palm@poplarware.com
</action>
<action dev="rwinston" type="update">
Change isConnected() method to delegate to underlying socket connection.
</action>
<action dev="rwinston" type="add">
FTPS (TLS and SSL) is now supported. Thanks to Jose Juan Montiel, Paul Ferraro, and Satoshi Ishigami.
</action>
<action dev="rwinston" type="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.
</action>
<action dev="rwinston" type="remove">
Removed old ftp2 proposal directories.
</action>
<action dev="rwinston" type="update">
Commons::Net now uses JDK regex functionality, saving on an extra [oro] dependency. There are now
no external dependencies required.
</action>
<action dev="rwinston" type="fix">
Various syntactic issues (FindBugs issues, JDK 5.0 generics support)
</action>
<action dev="dfs" type="fix">
Applied Rob Hasselbaum's
rhasselbaum -> alumni.ithaca.edu
patch for PR 38688 fixing a
TelnetInputStream hang.
</action>
<action dev="dfs" type="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.
</action>
<action dev="dfs" type="fix">
Reverted PR 32859 patch to TFTPClient
because it caused final packets to not
be sent.
</action>
<action dev="rwinston" type="update" issue="NET-36">
Make FTPClient extend SocketClient instead of TelnetClient. From jhindsley@providerlink.com
</action>
<action dev="rwinston" type="fix" issue="NET-39">
Adds an "e" symbolic link flag to the Unix FTP parser. From denisgaebler@netscape.net
</action>
<action dev="rwinston" type="fix" issue="NET-119">
Allow hidden files to be listed. Thanks to mario@ops.co.at
</action>
<action dev="rwinston" type="update">
Remove reflective check for Socket::isConnected() (no longer needed)
</action>
<action dev="rwinston" type="add" issue="NET-136">
Added WindowSizeOptionHandler for TelnetClient. Thanks to yuvalkashtan@gmail.com
</action>
<action dev="rwinston" type="update">
Refactored *Client classes under net/ package into separate subpackages, and move PrintCommandListener
out of the examples/ package.
</action>
<action dev="rwinston" type="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.
</action>
<action dev="rwinston" type="update">
Custom SocketFactory interface has been replaced with the JDK SocketFactory implementation. Added
ServerSocketFactory instance to SocketClient.
</action>
<action dev="rwinston" type="update">
Removed redundant FTP.IMAGE_FILE_TYPE flag.
</action>
<action dev="rwinston" type="update">
Added heavily updated MVSFTPEntryParser from henrik.sorensen@balcab.ch
</action>
<action dev="rwinston" type="remove">
Removed deprecated classes FTPFileListParser, FTPFileListParserImpl, and DefaultFTPFileListParser. Also
removed associated deprecated methods from FTPClient.
</action>
<action dev="rwinston" type="fix" issue="NET-164">
Added encoding to FingerClient. From Ulrich Mayring.
</action>
<action dev="rwinston" type="fix" issue="NET-24">
Catch BindException in RCommandClient::connect().
</action>
<action dev="rwinston" type="fix" issue="NET-178">
Add encoding specifier to SMTPClient.
</action>
<action dev="rwinston" type="add">
Add setters for socket send/receive buffer size to SocketClient.
</action>
<action dev="rwinston" type="fix" issue="NET-177">
Fix PASV specifiers that broke previously. From Chris Eagle.
</action>
<action dev="rwinston" type="fix" issue="NET-182">
Catch NPE in FTP parser factory method.
</action>
<action dev="rwinston" type="fix" issue="NET-172">
Don't bind a UDP socket to NTP protocol port.
</action>
<action dev="rwinston" type="fix">
Better handling of user and group names with embedded spaces in FTP listings.
</action>
<action dev="rwinston" type="fix" issue="NET-173">
Add configurable multiline parsing.
</action>
<action dev="rwinston" type="fix" issue="NET-188">
Add fix for broken leap year date parsing.
</action>
<action dev="rwinston" type="add">
Add SubnetUtils class (suggested by Kenny McLeod)
</action>
<action dev="rwinston" type="fix" issue="NET-169">
Add Unix-type handling for UNKNOWN Type: L8 syst() message systems.
</action>
<action dev="rwinston" type="fix" issue="NET-198">
Allow FTPTimestampParserImpl to take a predefined Calendar instance representing current time.
</action>
<action dev="sebb" type="fix" issue="NET-194">
Replace Exception with IOException
</action>
<action dev="sebb" type="update" issue="NET-214">
VMS file permission parsing
</action>
<action dev="sebb" type="fix" issue="NET-208">
TelnetInputStream swallows interruptedexception as IOException
</action>
<action dev="sebb" type="fix" issue="NET-223">
the data connection socket is not closed when an IOException occurred
</action>
<action dev="sebb" type="fix" issue="NET-230">
ParserInitializationException when connecting to a Unix FTP server: comparison string must be upper case
</action>
<action dev="sebb" type="fix" issue="NET-225">
FTPFileEntryParserImpl.preParse() doesn't remove unparsable entries at the end of the file list
</action>
</release>
<!-- 1.5.0 has not yet been released, so comment out the section until it is ready for release -->
<!--
<release version="1.5.0" date="" description="">
<action dev="dfs" type="fix" issue="NET-3">
TelnetInputStream.java: Applied Rob
Hasselbaum's
rhasselbaum@alumni.ithaca.edu
patch for PR 38688 fixing a
TelnetInputStream hang.
</action>
<action dev="rwinston" type="fix"
issue="NET-73">
TelnetInputStream.java: Fixing another
potential deadlock for
telnet and FTP (patch courtesy Rob Hasselbaum).
</action>
<action dev="dfs" type="update" issue="NET-57">
FTP.java: Exposed control connection of
FTP
class via _controlInput_ and
_controlOutput_
protected member variables in response
to PR 38309 reported by
josejuan.montiel@gmail.com.
</action>
<action dev="rwinston" type="fix"
issue="NET-68">
TFTPClient.java: Fix bug causing final
packets
to not be sent.
</action>
<action dev="rwinston" type="fix"
issue="NET-161">
TFTPClient.java: Fix sendFile() (related
to NET-68).
</action>
<action dev="rwinston" type="fix"
issue="NET-181">
TFTPClient.java: block number
wraparound.
</action>
<action dev="scohen" type="fix" issue="NET-16">
UNIXFTPEntryParser.java: support for
group names with
spaces (patch courtesy D. Kilzer).
</action>
<action dev="scohen" type="fix" issue="NET-62">
DefaultFTPFileEntryParserFactory.java:
Wrap
NoClassDefFoundError in FTP parser exception
when ORO is not available.
</action>
<action dev="rwinston" type="add"
issue="NET-33">
FTPClient.java: Fix closing FTP
ServerSocket after timeout
</action>
<action dev="rwinston" type="add">
FTPClientConfig.java: Added an FTP
parser for Netware FTP servers.
Tested on Novell Netware 6.5.
</action>
<action dev="rwinston" type="fix"
issue="NET-188">
FTPTimestampParserImpl.java: Fix leap
year date parsing bug.
</action>
<action dev="rwinston" type="fix">
Article.java: Fix minor issues with NNTP
parsing.
</action>
</release>
-->
<release version="1.4.1" date="December 3, 2005" description="fix release to restore jdk 1.3 compatability">
<action dev="scohen" type="fix">
Applied patches for defect 37113. Code incompatible with jdk 1.3. Original patch submitted by Andrea Rombald
</action>
<action dev="scohen" type="fix">
Applied patches for defect 37522. updated project.xml to correct compatibility level.
</action>
</release>
<release version="1.4.0" date="May 7, 2005" description="Some additions and enhancements">
<action dev="dfs" type="fix">
Fixed typo in method name.
FTP.removeCommandListener() was missing
the L. Problem reported by
Per.Lindberger@linkon.se.
</action>
<action dev="rwinston" type="fix">
Applied fix for PR 33942 and PR 31793. Original patch submitted by mario@ops.co.at
</action>
<action dev="rwinston" type="fix">
TFTPClient was ignoring final ACK (PR 32859). Thanks to perttu.auramo@ekahau.com
</action>
<action dev="rwinston" type="fix">
Applied fix for ACL parsing in the FTP client (PR 33972). Submitted by robertalasch@yahoo.com
</action>
<action dev="rwinston" type="fix">
Added missing NTP/SNTP unit tests to the codebase.
</action>
<action dev="dfs" type="fix">
Applied fix for POP3Client returning empty reply strings (PR 34133). Thanks to sammy_c@lineone.net
</action>
<action dev="rwinston" type="fix">
NTP port parameter was being ignored (PR 34219). Fixed by felix.eichhorn@3soft.de
</action>
<action dev="scohen" type="add">
An FTP parser for MVS was added. Submitted by wnoto@openfinance.com
</action>
<action dev="scohen" type="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.
</action>
</release>
<release version="1.3.0" date="December 15, 2004" description="many fixes and enhancements">
<action dev="rwinston" type="fix">
Applied patch for PR 31793. Thanks to mario@ops.co.at
</action>
<action dev="rwinston" type="add">
Added message threading functionality to the NNTP client.
</action>
<action dev="rwinston" type="update">
Added return code 521 to FTPReply.java - this should obviate the need for the Ant FTP task to manually declare it.
</action>
<action dev="rwinston" type="fix">
Add explicit notify() in TelnetInputStream::read(), so available() returns an accurate value. Thanks to tpalkot@gmail.com.
</action>
<action dev="rwinston" type="add">
Added SNTP/NTP components into the Commons-Net codebase, courtesy of
Jason Matthews.
</action>
<action dev="rwinston" type="add">
Added POP3 test suite, courtesy of Mike George mike.george@comcast.net.
</action>
<action dev="scohen" type="fix">
Applied fix for FTPClient returning null for certain timestamp formats (BUG #30737)
</action>
<action dev="rwinston" type="fix">
Build.xml fixes - dont include example classes in redistributable
.jar, remove test dependency from javadoc target, and exclude private members from generated javadoc.
</action>
<action dev="rwinston" type="fix">
Fixed bug in TFTPClient::setMaxTimeout(), spotted by steve@widge.net
</action>
<action dev="dfs" type="fix">
Some changes to facilitate compilation under JDK 5.0
</action>
<action dev="rwinston" type="fix">
Return correct NNTP article count when high and low watermarks are 0.
Spotted by jmordax@terra.es
</action>
<action dev="rwinston" type="fix">
Remove trailing null byte in TFTP packets. Thanks to gerard.dens@alcatel.be
</action>
<action dev="dfs" type="fix">
Many javadoc fixes.
</action>
<action dev="rwinston" type="update">
Allow FTPClient to set transfer buffer size.
</action>
<action dev="rwinston" type="update">
Ensure consistent handling of encoding throughout FTPClient
operations. Patch submitted by leif@tanukisoftware.com.
</action>
<action dev="dfs" type="fix">
Fix TelnetClient zombie thread issue
</action>
</release>
<release version="1.3.0-dev" date="July 28, 2004"
description="regression fix">
<action dev="dfs" type="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:
https://issues.apache.org/bugzilla/show_bug.cgi?id=30345
</action>
</release>
<release version="1.2.2" date="June 25, 2004" description="fix release">
<action dev="scohen" type="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.
</action>
<action dev="scohen" type="fix">
fixed handling of certain unusual "special" file types in the Unix parser.
</action>
</release>
<release version="1.2.1" date="May 6, 2004" description="fix release">
<action dev="scohen" type="fix">
changed code that rendered package uncompilable under JDK 1.2
</action>
</release>
<release version="1.2.0" date="April 30, 2004" description="autodetection of system for listings">
<action dev="scohen" type="fix">
Mario Ivankovits mario@ops.co.at added
functionality supporting correct handling of the &quot;dirstyle&quot;
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.
</action>
<action dev="scohen" type="add">
Mario Ivankovits mario@ops.co.at added parser for OS400.
</action>
<action dev="jbrekke,scohen" type="fix">
Added a functional junit test testing list parsing against real servers
and fix several bugs found through this test.
</action>
<action dev="dfs" type="add">
Ted Wise ctwise@bellsouth.net provided a
patch to add the XHDR extended NNTP command.
</action>
<action dev="scohen,dfs" type="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.
</action>
<action dev="scohen" type="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.
</action>
</release>
<!-- Not yet released; probably never will be
<release version="1.1.1" date="TBD" description="last jdk1.1 compatible release">
<action dev="scohen" type="fix">
Removed all JDK 1.1 incompatibilities that had been introduced
unintentionally in previous versions. Release 1.1.1 is the last
JDK 1.1 compatible release. Any future 1.1.x maintenance releases
will remain JDK !.1 compatible, but version 1.2 may break
compatibility and will be guaranteed to work with only J2SE 1.2
and later.
</action>
</release>
-->
<release version="1.1.0" date="October 23, 2003" description="many enhancements and bug fixes">
<action dev="dfs" type="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.
</action>
<action dev="dfs" type="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.
</action>
<action dev="dfs" type="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.
</action>
<action dev="dfs" type="fix">
Applied patch from Stephane Este-Gracias
sestegra@free.fr that fixes the parsing of
VMS listings by VMSFTPEntryParser..
</action>
<action dev="brekke" type="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 ).
</action>
<action dev="brekke" type="fix">
FTP.smnt(String dir) was not passing on the dir to the SMNT command as an argument.
</action>
<action dev="brekke" type="add">
Added a link to the FAQ currently hosted on the Apache Wiki.
</action>
<action dev="dfs" type="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.
</action>
<action dev="dfs" type="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.
</action>
<action dev="brekke" type="add">
Added terminal option support to the telnet client with tests.
From Bruno D'Avanzo ( b.davanzo@inwind.it ).
</action>
<action dev="scohen" type="add">
New parsers merged with mainline with support for old list parsers.
</action>
</release>
<release version="1.0.0" date="February 23, 2003" description="first jakarta-commons release">
<action dev="brekke" type="add">
Added a migration document for moving from NetComponents to Commons/Net.
</action>
<action dev="brekke" type="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.
</action>
<action dev="dfs" type="fix">
Cleaned up license header on some source.
</action>
<action dev="dfs" type="fix">
Moved .io and .util to .net.io and .net.util in preparation for
1.0 release.
</action>
<action dev="dfs" type="fix">
Fixed typo in NNTP.removeProtocolCommandListener() method name. It
was missing an L. From: joev@atg.com.
</action>
<action dev="brekke" type="add">
Various site updates including this changes doc and publish
date information.
</action>
<action dev="dfs" type="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 ).
</action>
<action dev="dfs" type="fix">
Applied a fix for potential deadlock in TelnetInputStream by
changing a wait() to a wait(100).
From: Tapan Karecha ( tapan@india.hp.com ).
</action>
<action dev="dfs" type="update">
FTP examples now use passive ftp connections.
</action>
</release>
</body>
</document>