Hmm maybe it is the bufferdStream.

That's working code I'm using in a project for years now:

private FTPClient createClient()
{
    FTPClient ftp = new FTPClient();
    FTPClientConfig config = new FTPClientConfig();

    config.setServerTimeZoneId("UTC");

    ftp.setControlKeepAliveTimeout(1000 * 60 * 5l);
    ftp.setControlKeepAliveReplyTimeout(1000 * 60 * 5);
    ftp.setDataTimeout(1000 * 60 * 5);
    ftp.setRemoteVerificationEnabled(false);
    return ftp;
}

if (FetchMode.BYTE_DATA.equals(fetchMode))
{
    LOGGER.info("Using BINARY_FILE_TYPE.");
    ftp.setFileType(FTP.BINARY_FILE_TYPE);
    InputStream inStream = ftp.retrieveFileStream(ftpFile.getName());
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();

    int nRead;
    byte[] data = new byte[(int) (ftpFile.getSize() * 2)];

    while ((nRead = inStream.read(data, 0, data.length)) != -1)
    {
        buffer.write(data, 0, nRead);
    }

    buffer.flush();

    content.setByteData(buffer.toByteArray());

}

Reply via email to