[jcifs] RE: [Fwd: SmbTree copy()]

Michael B. Allen mballen at erols.com
Wed Oct 31 07:17:32 EST 2001


On Tue, Oct 30, 2001 at 10:05:07AM -0800, rjw wrote:
> Allen, Michael B (RSCH) wrote:
> 
> > Yikes. What does this program do? It's endless Node Status and 
> 
> > Trans2QueryInformation requests.
> 
> 
> Yes, it's lots of requests. I'm quite unsure why that is, to be honest. 
> The snippet of the log does nothing but attempt to copy a file and then 
> does a list() on the destination folder to get an updated view (granted 
> this isn't optimum, but that's the way it is now. =)  There's some other 
> setup-tpe stuff before-hand... does everything exists, blah, blah, blah.

Mmm, every time you call exists a message goes out on the network. I think
you should drop those. I'll be releasing jcifs-0.6b pretty soon. That
should be better. An interesting artifact of exceptions being thrown
is that some calls are made more directly eliminating certain network
calls. In general is less chatty.

> 
> > Yeah, this all should work. It looks right. PS you can easily get tid2
> > from dest.tree.tid. Then, presuming, you get it working you can also do
> > copies accross shares without going through the client. If I have time,
> > maybe I'll look into fixing this.
> 
> 
> Ah, I'll have a loot at that!
> 
> > 	That 'test' directory exists right?
> 
> 
> Aye, test exists. The last bit of log should actually be an 
> SmbFile.list() of test after the copy failed.
> 
> Thanks for the assistance, I'll look into more deeply into the problem. 
> If I get it working, I'll let you know...

Create a very simple program like:

public class CopyTo {
	public static void main( String[] argv ) throws Exception {
		SmbFile from = new SmbFile( argv[0] );
		from.copyTo( new SmbFile( argv[1] ));
	}
}

This should be much easier to interpret. I think you really need a packet
sniffer or you're dead in the water. Run Ethereal on a machine within
listening distance of an NT workstation. Then do a copy in cmd.exe on a
file on a share. You'll see the whole thing broken down in Ethereal. Then
try your jCIFS copyTo and you'll see what the problem is.

-- 
May The Source be with you.




More information about the jcifs mailing list