I have a few issues with File Transfer.
FileTransfer.isDone() does not check for Status.REFUSED. It checks for CANCLED (misspelled), ERROR, and COMPLETE only. It seems that REFUSED should be included in this check.
Filenames are not escaped in the negotiation. Attempting to transfer a file with an amperand in the name kills my client’'s socket connection.
When transferring between 2 clients on the same sub-net, the first transfer always goes inband. All subsequent transfers go via negotiated socket. Any ideas?