[NET] problem with FTP module Linux / XP narrowed down

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[NET] problem with FTP module Linux / XP narrowed down

Stefan Viljoen
As regards the apparent issue with wrong behaviour of the storeFile method on
XP machines only:

I have done further testing on this and I have discovered that storeFile
attempts to connect to the webserver the applet is running on, when called on
XP machines with the Windows JVM, NOT the logged in FTP server as is logged
in to when that instance of the FTPClient object that is having its storeFile
method being called is started to be used.

On all XP machines, this is displayed in the Java console. Lines tagged J are
JVM output, lines tagged P is output System.out.prinln'ed by my program:

J1: network: Connecting socket://polard.com:21 with proxy=DIRECT
J2: network: Connecting socket://polard.com:21 with proxy=DIRECT
P1: Connected for initial upload!
P2: Passive mode set
P2: Transferring...
P2: Starting upload now...
*J3: network: Connecting socket://www2a.your-server.co.za:50989 with
proxy=DIRECT
Upload failed - storeFile returned false - socket?

The line marked with the asterisk is the error line.

Line J3 should be:

network: Connecting socket://polard.com:20 with proxy=DIRECT

to initate a data port connection (FTP on port 20) with the polard.com server,
to start transferring the file, from that Windows XP machine. This is NOT
what happens - why does it connect to my webserver,

network: Connecting socket://www2a.your-server.co.za:50989 with proxy=DIRECT

instead of polard.com:20, to which the object is "logged in" using its connect
method? With a random port number? The :50989 changes from run to run.

On the Linux JVM, it looks and works exactly right, exactly the same
sourceode:

J1: network: Connecting socket://polard.com:21 with proxy=DIRECT
J2: network: Connecting socket://polard.com:21 with proxy=DIRECT
P1: Connected for initial upload!
P2: Passive mode set
P2: Transferring...
P2: Starting upload now...
*J3: network: Connecting socket://polard.com:20 with proxy=DIRECT

So the apparent bug is that on Windows JVMs the commons.net FTP module
"forgets" the server it is connected to, trying instead to open a socket to
the remote host the applet is running on, with a random port number, instead
of the FTP server connected to and logged in to with that FTPClient object's
instances of connect() and login().

How can this be resolved? Is it a bug at all?
--
Stefan Viljoen
Software Support Technician / Programmer
Polar Design Solutions

Mobile: (+27) 83 4060854
Tel: (+27) 18 297 1753
Fax: (+27) 18 290 5556
http://polard.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]