After a long time, Commons::Net 2.0 is (hopefully) nearly ready for release. I’m cutting RC3 for 2.0 and 1.5.0 (a maintenance release) as I speak, and I have created the latest tags in SVN. This is a major release, which contains a large number of fixes, enhancements, and additions. It will in all likelihood be the last release that I will be able to devote a significant amount of time to, and even getting this far has been a challenge. Luckily, I’ve had great help from others (both Apache and other external developers).
One thing I have learned from developing parts of this package is the importance of a well-defined, unambiguous standard. The File Protocol Transfer standard, as defined in RFC 959 and others, offer a lot of room for interpretation. This means that vendors and implementors are free to fill in the blanks where the standard is fuzzy or unclear, making developing a comprehensive client challenging, and reproducing obscure issues very difficult.
Here is the list of changes in 2.0, plucked from the JIRA release notes (actually the changes report probably is a better indicator of a lot of additions).
Bug
- [NET-24] – [net] Commons RLogin timeout
- [NET-28] – [PATCH] [net] patch of FTPS
- [NET-31] – [net] Freeze during FTP connect
- [NET-36] – [net] PATCH] FTP and FTPClient changes
- [NET-39] – [net] Solution for ant ftp fails with Nullpointerexception when a symlink is evaluated in method checkRemoteSensitivity in FTP.java for a z/OS ftp server
- [NET-59] – [net] NullpointerException on FTPClient.disconnect() if an Exception occured while FTPClient.connect
- [NET-65] – [net] program hangs while trying to delete a file on a remote FTP Server after downloading same
- [NET-68] – [net] TFTPClient’s send file discards last ack
- [NET-77] – [net] MVSFTPEntryParser setRawListing
- [NET-84] – [net] TelnetClient#disconnect() causes NullPointerException from Linux when connected to Windows 2000 Telnet Server
- [NET-139] – Trunk fails to build under JDK 1.6
- [NET-140] – FTPClient listFiles returns incorrect timestamp on freshly uploaded file but corrects itself after about 15 minutes
- [NET-142] – FTPClient.listFiles() returns null for entries with space in group name
- [NET-145] – Deadlock in TelnetInputStream
- [NET-146] – wrong handling of timeouts
- [NET-148] – Relaxed condition in __getReply causes other failures.
- [NET-155] – Integer is too small to hold article number value (NNTPClient __parseNewsgroupListEntry() function)
- [NET-158] – login in FTPClient does not always read the complete server response
- [NET-159] – FTPFile.getTimestamp() is off by one year
- [NET-161] – TFTP TFTPClient.sendFile() just doesen’t work
- [NET-169] – Cannot return files with listNames() function
- [NET-170] – UnixFTPEntryParser does not handle file owner names with spaces
- [NET-172] – NTP client should not bind to the local port when using UDP
- [NET-174] – if 150 Here comes directory listing comes before 200, then FTPClient throws exception
- [NET-177] – FTPClient fails to parse valid PASV responses
- [NET-178] – Support for unciode character is missing
- [NET-182] – NPE in DefaultFTPFileEntryParserFactory
- [NET-184] – FtpClient.listFiles truncates directory name beginning with a number
- [NET-193] – FTP throw NullPointerException when enountering 02-29-2008 (leap year bug)
- [NET-198] – FTPTimestampParserImpl#parseTimeStamp() is not fully testable
- [NET-201] – UnixFTPEntryParser does not handle character/block special devices properly
Improvement
- [NET-119] – [net] allow listing of hidden files
- [NET-125] – [net] FTP does not work on zos (ebcdic platform)
- [NET-136] – [net] Request to add WindowSizeOptionHandler to the commons-net package
- [NET-141] – Add connection timeout support to SocketClient and/or SocketFactory/DefaultSocketFactory
- [NET-151] – [PATCH] Allow user to force passive connections to use connected host in FTPClient
- [NET-153] – Add getCause method to CopyStreamException
- [NET-154] – Typo in NNTPClient javadoc comment
- [NET-164] – WhoisClient should not use the platform’s default Encoding
- [NET-171] – Improve MVSFTPEntryParser.java
- [NET-181] – tftp client limited to ~32 MB file sizes
- [NET-183] – SMTPClient – Allow setting of socket send and recieve buffer size
- [NET-186] – [net] [PATCH] RegexFTPFileEntryParserImpl – Removed dependency on org.apache.oro.text.regex packages
- [NET-196] – POP3Reply.OK and .ERROR should be final; likewise the psi fields in TelnetOption
- [NET-205] – Allow FTPFile entries to be generated even if date parsing fails
New Feature
Task
- [NET-179] – NET-73 "TelnetInputStream._read() hangs" fix is not included in nightly builds.
Wish
- [NET-157] – Get "hidden files" over ftp, using commons-vfs