# commons-user mailing list archives

##### Site index · List index
Message view
Top
From "James Carman" <ja...@carmanconsulting.com>
Subject Re: [vfs] Inconsistent Behavior...
Date Thu, 31 Jan 2008 14:26:21 GMT
```Okay, I think I might be onto something here.  I've added some code in
to help me out a bit.  Here's what I added to FtpFileObject (in the
getChildFile method):

final StringBuffer msg = new StringBuffer();
msg.append("Children of " + getName() + " are: \n" );
for( java.util.Iterator i = children.keySet().iterator(); i.hasNext(); )
{
final Object key = i.next();
msg.append( key + " -> " + children.get(key) + "\n" );
}
log.debug(msg);

This is right after the call to doGetChildren().  Anyway, here's my output:

01-31@09:20:21 DEBUG (FtpFileObject)     - Children of
ftp://ftp.ncbi.nih.gov/pub/HomoloGene/current are:
pub/HomoloGene/current -> lr--r--r--   1 ftp      anonymous        7
Nov 21 21:42 pub/HomoloGene/current -> build58

Basically, "current" is a symbolic link.  And, on that particular FTP
server, apparently when you do a listing of that symbolic link, it
just shows you that it's a link and not the contents of the linked
directory.  So, the child map doesn't contain an entry for my file by
name.  So, it comes back with a null fileInfo and thus it's an
imaginary file.

On 1/29/08, James Carman <james@carmanconsulting.com> wrote:
> I tried changing the files cache to Default and LRU and it didn't
> help.  So, it doesn't look like a race condition.  I'll keep digging.
>
> On 1/29/08, James Carman <james@carmanconsulting.com> wrote:
> > Could there be some sort of race condition going on here?  I see that
> > there is a thread started by the SoftRefFilesCache (which is what it
> > seems to be using here).
> >
> > On 1/29/08, James Carman <james@carmanconsulting.com> wrote:
> > > I compiled it from src into my local repository.  I'll see if I can
> > > figure it out via debugging.
> > >
> > > On 1/29/08, sebb <sebbaz@gmail.com> wrote:
> > > > Might be an idea to have a look at the code to see what conditions
> > > > cause the Exception to be thrown ... which version of VFS are you
> > > > using?
> > > >
> > > > I had a quick look at 1.0, and there is no Exception at
> > > > AbstractFileObject.java:1149 as far as I can tell.
> > > >
> > > > On 29/01/2008, James Carman <james@carmanconsulting.com> wrote:
> > > > > I'm not very well versed with Wireshark and the like.  Any pointers
on
> > > > > what I should look for?
> > > > >
> > > > > On 1/29/08, Mario Ivankovits <mario@ops.co.at> wrote:
> > > > > > Hi!
> > > > > >
> > > > > > I think your only chance is to use tcpdump and/or wireshark
to debug the
> > > > > > network flow to see the real answers of the ftp server.
> > > > > > Or debug into the VFS code ... somewhere in doAttach in FtpFileObject
> > > > > > and see whats going wrong in there.
> > > > > >
> > > > > > Sorry!
> > > > > >
> > > > > > Ciao,
> > > > > > Mario
> > > > > >
> > > > > > > Well, I ran it once and it said "The file type is file"
and it
> > > > > > > succeeded, but then I ran it again and it says "The file
type is
> > > > > > > imaginary" and it failed.  Here's the code:
> > > > > > >
> > > > > > > final FileSystemManager fsm = VFS.getManager();
> > > > > > >         final FileObject remoteFile =
> > > > > > > fsm.resolveFile("ftp://ftp.ncbi.nih.gov/pub/HomoloGene/current/homologene.data");
> > > > > > >         System.out.println("The file type is " +
> > > > > > > remoteFile.getType().getName() + ".");
> > > > > > >         final File tmp = File.createTempFile("download",
".txt");
> > > > > > >         tmp.deleteOnExit();
> > > > > > >         final FileObject tempFile = fsm.toFileObject(tmp);
> > > > > > >         FileUtil.copyContent(remoteFile, tempFile);
> > > > > > >
> > > > > > > Here's the complete output:
> > > > > > >
> > > > > > > 01-29@09:18:11 INFO  (DefaultFileReplicator)     - Using
> > > > > > > "C:\Users\jcarman\AppData\Local\Temp\vfs_cache" as temporary
files
> > > > > > > store.
> > > > > > > 01-29@09:18:12 DEBUG (StandardFileSystemManager)     -
Skipping
> > > > > > > provider "org.apache.commons.vfs.provider.sftp.SftpFileProvider"
> > > > > > > because required class "com.jcraft.jsch.JSch" is not available.
> > > > > > > 01-29@09:18:12 DEBUG (StandardFileSystemManager)     -
Skipping
> > > > > > > provider "org.apache.commons.vfs.provider.smb.SmbFileProvider"
because
> > > > > > > required class "jcifs.smb.SmbFile" is not available.
> > > > > > > 01-29@09:18:12 DEBUG (SoftRefFilesCache)     - putFile:
> > > > > > > ftp://ftp.ncbi.nih.gov/pub/HomoloGene/current/homologene.data
> > > > > > > 01-29@09:18:12 DEBUG (SoftRefFilesCache)     - putFile:
ftp://ftp.ncbi.nih.gov/
> > > > > > > 01-29@09:18:12 DEBUG (SoftRefFilesCache)     - putFile:
> > > > > > > ftp://ftp.ncbi.nih.gov/pub/HomoloGene/current
> > > > > > > 01-29@09:18:12 DEBUG (SoftRefFilesCache)     - putFile:
> > > > > > > ftp://ftp.ncbi.nih.gov/pub/HomoloGene
> > > > > > > 01-29@09:18:12 DEBUG (SoftRefFilesCache)     - putFile:
> > > > > > > ftp://ftp.ncbi.nih.gov/pub
> > > > > > > The file type is imaginary.
> > > > > > > 01-29@09:18:13 DEBUG (SoftRefFilesCache)     - putFile:
> > > > > > > Exception in thread "main" org.apache.commons.vfs.FileSystemException:
> > > > > > > Could not read from
> > > > > > > "ftp://ftp.ncbi.nih.gov/pub/HomoloGene/current/homologene.data"
> > > > > > > because it is a not a file.
> > > > > > >       at org.apache.commons.vfs.provider.AbstractFileObject.getInputStream(AbstractFileObject.java:1149)
> > > > > > >       at org.apache.commons.vfs.provider.DefaultFileContent.getInputStream(DefaultFileContent.java:360)
> > > > > > >       at org.apache.commons.vfs.FileUtil.writeContent(FileUtil.java:71)
> > > > > > >       at org.apache.commons.vfs.FileUtil.copyContent(FileUtil.java:103)
> > > > > > >
> > > > > > > I left out the project-specific parts of the stack trace
because it's
> > > > > > > not relevant, but there were no nested exceptions.
> > > > > > >
> > > > > > > On 1/29/08, Mario Ivankovits <mario@ops.co.at> wrote:
> > > > > > >
> > > > > > >> Hi!
> > > > > > >>
> > > > > > >>> Did you get my second email?  That's the entire
output I got when I ran it.
> > > > > > >>>
> > > > > > >>>
> > > > > > >> Uh, oh, ok!
> > > > > > >>
> > > > > > >> So then, it seems that VFS thinks the file is either
a directory or non
> > > > > > >> existent.
> > > > > > >>
> > > > > > >> Could you please:
> > > > > > >>
> > > > > > >> *) check the filetype of the FileObject see if its
virtual or whatever
> > > > > > >> *) try to connect to the ftp server using a commandline
tool to see if
> > > > > > >> the ftp output is in a style which makes it impossible
for commons-net
> > > > > > >> to parse the output, e.g. due to localized date format.
> > > > > > >>
> > > > > > >> Ciao,
> > > > > > >> Mario
> > > > > > >>
> > > > > > >>
> > > > > > >> ---------------------------------------------------------------------
> > > > > > >> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> > > > > > >> For additional commands, e-mail: user-help@commons.apache.org
> > > > > > >>
> > > > > > >>
> > > > > > >>
> > > > > > >
> > > > > > > ---------------------------------------------------------------------
> > > > > > > To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> > > > > > > For additional commands, e-mail: user-help@commons.apache.org
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > mit freundlichen Grüßen
> > > > > >
> > > > > > Mario Ivankovits
> > > > > > Software Engineering
> > > > > >
> > > > > > OPS EDV VertriebsgesmbH
> > > > > > A-1120 Wien, Michael-Bernhard-Gasse 10
> > > > > >
> > > > > > Firmenbuch Nr.: FN51233v, Handelsgericht Wien
> > > > > > Tel.: +43-1-8938810; Fax: +43-1-8938810/3700
> > > > > > http://www.ops.co.at
> > > > > >
> > > > > > E-Mail: mario@ops.co.at
> > > > > > Skype: mario_ivankovits
> > > > > >
> > > > > >
> > > > > > ---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> > > > > > For additional commands, e-mail: user-help@commons.apache.org
> > > > > >
> > > > > >
> > > > >
> > > > > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> > > > > For additional commands, e-mail: user-help@commons.apache.org
> > > > >
> > > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> > > > For additional commands, e-mail: user-help@commons.apache.org
> > > >
> > > >
> > >
> >
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org