FTPS bug: filesystem connected, but can't operate with files due to "Could not 
determine the type of file" error.
-----------------------------------------------------------------------------------------------------------------

                 Key: VFS-317
                 URL: https://issues.apache.org/jira/browse/VFS-317
             Project: Commons VFS
          Issue Type: Bug
    Affects Versions: Nightly Builds
         Environment: Windows 7 x64
jdk1.6.0_18
            Reporter: Yurii Kartsev
            Priority: Critical


Hello.

I've build VFS from trunk(revision 993538) where user James Carman applied FTPS 
patch from issue VFS-264.
Using the built library I've managed to successfully connect to FTPS server, 
but I can't make any file operation, including a check if file exists. I use 
this code for it:

   ---------------------------------------------------------
   FileObject dir = null;
   String fileName = 
",AMCPROD,derivative_pricing_ssb_cds_20100910_00.xml.pgp,U,20100910A00012022189.txt";
   /* 
         .... dir initialization
   */
   FileObject neededFile = dir.resolveFile(fileName);
   return neededFile.exists(); //  <----- here the exception is thrown
   ---------------------------------------------------------

Here is the stack trace(including preceding vfs DEBUG logs):

---------------------------------------------------------
09-17 15:34:25.748 EDT [main] INFO  
org.apache.commons.vfs.impl.StandardFileSystemManager  - Using "/tmp/vfs_cache" 
as temporary files store.
09-17 15:34:26.50 EDT [main] DEBUG 
org.apache.commons.vfs.impl.StandardFileSystemManager  - Skipping provider 
"org.apache.commons.vfs.provider.http.HttpFileProvider" because required class 
"org.apache.commons.httpclient.HttpClient" is not available.
09-17 15:34:26.51 EDT [main] DEBUG 
org.apache.commons.vfs.impl.StandardFileSystemManager  - Skipping provider 
"org.apache.commons.vfs.provider.https.HttpsFileProvider" because required 
class "org.apache.commons.httpclient.HttpClient" is not available.
09-17 15:34:26.77 EDT [main] DEBUG 
org.apache.commons.vfs.impl.StandardFileSystemManager  - Skipping provider 
"org.apache.commons.vfs.provider.sftp.SftpFileProvider" because required class 
"com.jcraft.jsch.JSch" is not available.
09-17 15:34:26.80 EDT [main] DEBUG 
org.apache.commons.vfs.impl.StandardFileSystemManager  - Skipping provider 
"org.apache.commons.vfs.provider.webdav.WebdavFileProvider" because required 
class "org.apache.commons.httpclient.HttpClient" is not available.
09-17 15:34:27.871 EDT [main] DEBUG 
org.apache.commons.vfs.cache.SoftRefFilesCache  - putFile: 
ftps://193.44.23.12:9001/archive
09-17 15:34:27.877 EDT [main] DEBUG 
org.apache.commons.vfs.cache.SoftRefFilesCache  - putFile: file:///
09-17 15:34:27.878 EDT [main] DEBUG 
org.apache.commons.vfs.cache.SoftRefFilesCache  - putFile: 
ftps://193.44.23.12:9001/archive/,AMCPROD,derivative_pricing_ssb_cds_20100910_00.xml.pgp,U,20100910A00012022189.txt
09-17 15:34:27.879 EDT [main] DEBUG 
org.apache.commons.vfs.cache.SoftRefFilesCache  - putFile: 
ftps://193.44.23.12:9001/
org.apache.commons.vfs.FileSystemException: Could not determine the type of 
file 
"ftps://193.44.23.12:9001/archive/,AMCPROD,derivative_pricing_ssb_cds_20100910_00.xml.pgp,U,20100910A00012022189.txt".
        at 
org.apache.commons.vfs.provider.AbstractFileObject.getType(AbstractFileObject.java:476)
        at 
org.apache.commons.vfs.provider.AbstractFileObject.exists(AbstractFileObject.java:448)
        at 
com.ssc.otc.ftpservice.core.FtpXClient.isSourceFileExist(FtpXClient.java:179)
        at com.ssc.otc.ftpservice.core.FtpManager.copyFile(FtpManager.java:105)
        at com.ssc.otc.ftpservice.ConsoleStart.runNewTask(ConsoleStart.java:102)
        at com.ssc.otc.ftpservice.ConsoleStart.main(ConsoleStart.java:67)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: org.apache.commons.net.ftp.parser.ParserInitializationException: 
Parser key cannot be null
        at 
org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory.createFileEntryParser(DefaultFTPFileEntryParserFactory.java:82)
        at 
org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2263)
        at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2046)
        at 
org.apache.commons.vfs.provider.ftps.FtpsClientWrapper.listFiles(FtpsClientWrapper.java:116)
        at 
org.apache.commons.vfs.provider.ftp.FtpFileObject.doGetChildren(FtpFileObject.java:140)
        at 
org.apache.commons.vfs.provider.ftp.FtpFileObject.getChildFile(FtpFileObject.java:110)
        at 
org.apache.commons.vfs.provider.ftp.FtpFileObject.getInfo(FtpFileObject.java:198)
        at 
org.apache.commons.vfs.provider.ftp.FtpFileObject.doGetType(FtpFileObject.java:321)
        at 
org.apache.commons.vfs.provider.AbstractFileObject.getType(AbstractFileObject.java:467)
        ... 10 more
---------------------------------------------------------

Please help me to solve this bug. I assume it's a bug because the connection is 
established, the file IS there, but the type can't be determined. Maybe FTPS 
patch author forgot something?

Thanks in advance.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to