Categories
Coding

Commons::Net 2.0 Almost Ready For Release

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

  • [NET-187] – TFTP Server for commons net
  • [NET-189] – Add netmask translation 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