around line 119 of FtpDataSocket.java:
short port = (short) dataserver.getLocalPort();
return
((InetAddress.getLocalHost()).getHostAddress()).replace(
'.', ',') + "," + port / 256 + "," + port % 256;
does not work when run on Big Endian native systems
such as PowerPC, because the type cast from int to
short creates a negative signed short. To properly get
the integer values of the two bytes of the port number:
int port = dataserver.getLocalPort();
return
((InetAddress.getLocalHost()).getHostAddress()).replace(
'.', ',') + "," + ((port & 65280) >> 8) + "," +
(port & 255);