The bug comes from EntryCompare in VFSDirectoryEntryTableMode.java. In order to compare last modified data, the code cast the VFSFile to FileVFS.LocalFile and call the getModified() method, this will trigger exceptions when the VFSFile is actually an FtpDirectoryEntry which extends VFSFile.
To fix the bug, I added a new method called getModified() in VFSFile.java, all the implementation of VFSFile should overwrite this method, so that we don't need to cast the VFSFile anymore. Also some modifications are made in the plugin code.
There are two patches, one for the plugin code, one for jedit. Both of them are needed.
patch for ftp
patch for jedit
Committed 23337 to FTP plugin. Committed 23336 to jedit trunk. Thank you!