transferMode=“binary” causes "Connection is not open" error

Description

When using CFFTP if you set the transfer mode for a putfile operation to "binary" it errors with the message:

> Connection is not open

If you change this to "auto" it then works and puts the file without issue. This is also discussed on this discussion thread:

https://dev.lucee.org/t/ftp-connection-issue/7161

Environment

None

Activity

Show:

Zac Spitzer 19 May 2024 at 12:04
Edited

completePendingCommand()

https://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/ftp/FTPClient.html#completePendingCommand()

There are a few FTPClient methods that do not complete the entire sequence of FTP commands to complete a transaction. These commands require some action by the programmer after the reception of a positive intermediate command. After the programmer's code completes its actions, it must call this method to receive the completion reply from the server and verify the success of the entire transaction.

but doesn’t seem to help

Zac Spitzer 19 May 2024 at 11:49

oddly, i was seeing this stack trace with the sftp tests, adding a connection close action seemed to resolve it

Zac Spitzer 24 November 2022 at 13:48

I have a test for this in this PR

Pothys - MitrahSoft 24 May 2021 at 13:08

I've checked this ticket and confirmed the issue happened on lucee latest version 5.3.8.178-SNAPSHOT also. while using attribute transferMode = binary in cfftp throws an error like Connection is not open. Seems, ACF works fine. change the transferMode to auto or ASCII works fine in lucee too.

"ERROR","ajp-nio-8009-exec-5","05/24/2021","15:45:57","","Connection is not open;Connection is not open;lucee.runtime.exp.NativeException: Connection is not open
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:474)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:608)
at org.apache.commons.net.ftp.FTP.type(FTP.java:1081)
at org.apache.commons.net.ftp.FTPClient.setFileType(FTPClient.java:1519)
at lucee.runtime.net.ftp.FTPClientImpl.setFileType(FTPClientImpl.java:86)
at lucee.runtime.net.ftp.FTPWrap.connect(FTPWrap.java:112)
at lucee.runtime.net.ftp.FTPWrap.<init>(FTPWrap.java:61)
at lucee.runtime.net.ftp.FTPPoolImpl._get(FTPPoolImpl.java:83)
at lucee.runtime.net.ftp.FTPPoolImpl.get(FTPPoolImpl.java:38)
at lucee.runtime.tag.Ftp.getClient(Ftp.java:495)
at lucee.runtime.tag.Ftp.actionPutFile(Ftp.java:397)
at lucee.runtime.tag.Ftp.doEndTag(Ftp.java:185)
at test.testcase.ldev3528.test_cfm$cf$7.call(/test/testcase/LDEV3528/test.cfm:6)
at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:945)

Details

Assignee

Reporter

Priority

New Issue warning screen

Before you create a new Issue, please post to the mailing list first https://dev.lucee.org

Once the issue has been verified, one of the Lucee team will ask you to file an issue

Affects versions

Created 21 May 2021 at 07:52
Updated 19 May 2024 at 13:38