I recently upgraded to Zend Studio 13.5 and my FTP connections to remote servers returns an error when trying to upload files or navigate Remote Systems filesystem. My host is an IBM i running V7R1.

When I try to setup the Automatic Upload to the remote system I receive the following error:

Plugin: org.eclipse.rse.ui

Message: RSEG1066U: SUB#0:java.lang.NullPointerException

Stack Trace: java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:459)
at org.eclipse.rse.internal.subsystems.files.ftp.parser.FTPClientConfigFactory.getFTPClientConfig(FTPClientConfigFactory.java:146)
at org.eclipse.rse.internal.services.files.ftp.FTPService.connect(FTPService.java:454)
at org.eclipse.rse.internal.subsystems.files.ftp.connectorservice.FTPConnectorService.internalConnect(FTPConnectorService.java:129)
at org.eclipse.rse.internal.subsystems.files.ftp.connectorservice.FTPConnectorService.internalConnect(FTPConnectorService.java:105)
at org.eclipse.rse.core.subsystems.AbstractConnectorService$1.run(AbstractConnectorService.java:502)
at org.eclipse.rse.core.subsystems.AbstractConnectorService$SafeRunner.run(AbstractConnectorService.java:445)
at org.eclipse.rse.core.subsystems.AbstractConnectorService.connect(AbstractConnectorService.java:509)
at org.eclipse.rse.ui.operations.SystemFetchOperation.ensureConnected(SystemFetchOperation.java:309)
at org.eclipse.rse.ui.operations.SystemFetchOperation.execute(SystemFetchOperation.java:373)
at org.eclipse.rse.ui.operations.SystemFetchOperation.run(SystemFetchOperation.java:182)
at org.eclipse.rse.ui.view.AbstractSystemViewAdapter.fetchDeferredChildren(AbstractSystemViewAdapter.java:2290)
at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:232)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

220-QTCP at <remote host name>
220 Connection will close if idle more than 5 minutes.

USER xxxxx
331 Enter password.

PASS ******
230 xxxxx logged on.

SYST
215 OS/400 is the remote operating system. The TCP/IP version is "V7R1M0".

The same connection worked in 13.0. I have tried to delete the connection and recreate in 13.5 but no success. The FTP server is running on my IBM i. I can connect using SSH to my local IBM i but I do not have access to turn on SSH on the other machines in my environment.

Has anyone seen a similar issue when using FTP connections to remote hosts?

The only related change that I can recall between Zend Studio 13.0.1 and 13.5 is that we updated the Apache Commons Net library from version 3.2 to 3.4. This library is responsible for the FTP connections. We included version 3.4 to resolve a performance issue with the FTP transfer when Zend Studio is running on Linux.

I can suggest to try the following workaround:
1. Stop Zend Studio 13.5 if it still running.
2. Delete this file: <Zend_Studio_install_folder>/plugins/org.apache.commons.net_3.4.0.jar
3. Start Zend Studio again.

Zend Studio 13.5 comes with both version 3.2 and 3.4 of the Apache Commons Net library. The highest version is the active instance. So deleting version 3.4 makes version 3.2 active.

I deleted the file per your instructions and restarted Zend. I still have an error:

Plugin: com.zend.php.remoteproject.ui

Message: Error occurred while updating resources from project 'XXX'

Stack Trace: org.eclipse.core.runtime.AssertionFailedException: null argument:
at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85)
at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:73)
at com.zend.php.remoteproject.internal.core.connection.RemoteConnectionRunnable.<init>(RemoteConnectionRunnable.java:35)
at com.zend.php.remoteproject.internal.core.resource.transfer.UploadManager.connect(UploadManager.java:370)
at com.zend.php.remoteproject.core.events.RemoteProjectEvent.resourceChanged(RemoteProjectEvent.java:108)
at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:299)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:289)
at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:152)
at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:373)
at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1470)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:46)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

I reviewed the installation log and saw that there were still references to 13.0.1 (since I upgraded from that version) and 3.4 still exists in th3 <install dir> for 13.0.1. So I uninstalled both versions, reinstalled 13.5, deleted the 3.4 jar file and restarted.

I went into the Project Properties; Automatic Upload; "Manage", and then "Test Connection". After supplying my password, I received this error:

Plug-In: com.zend.php.remoteproject.ui

Stack Trace: java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:459)
at org.eclipse.rse.internal.subsystems.files.ftp.parser.FTPClientConfigFactory.getFTPClientConfig(FTPClientConfigFactory.java:146)
at org.eclipse.rse.internal.services.files.ftp.FTPService.connect(FTPService.java:454)
at org.eclipse.rse.internal.subsystems.files.ftp.connectorservice.FTPConnectorService.internalConnect(FTPConnectorService.java:129)
at org.eclipse.rse.internal.subsystems.files.ftp.connectorservice.FTPConnectorService.internalConnect(FTPConnectorService.java:105)
at org.eclipse.rse.core.subsystems.AbstractConnectorService$1.run(AbstractConnectorService.java:502)
at org.eclipse.rse.core.subsystems.AbstractConnectorService$SafeRunner.run(AbstractConnectorService.java:445)
at org.eclipse.rse.core.subsystems.AbstractConnectorService.connect(AbstractConnectorService.java:509)
at com.zend.php.remoteproject.internal.ui.connection.TestConnectionRunnableWithProgress.handelTestConnectionEvent(TestConnectionRunnableWithProgress.java:99)
at com.zend.php.remoteproject.internal.ui.connection.TestConnectionRunnableWithProgress.run(TestConnectionRunnableWithProgress.java:60)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)

Of note, I checked the Installation Details again and the org.apache.commons.net 3.4 was no longer listed.

Let me know if there is something else I should try or if you need more information.