KB Article #180719

FTPCLIENT component fails to start after upgrade to SP17

Problem

FTPCLIENT component fails to start after upgrade to SP17 and errors like the ones below are displayed in the IS log:


ERROR 2019-12-02 22:04:28,798 FtpClientService [RMI TCP Connection(34)-10.133.65.159] - FTPCLIENT service start failed:
de.axway.ajas.applicationadapter.AjasAdapterServiceException: de.axway.ftp.client.FtpClientException: ERR_51498:Internal error. Check log file for more details.
at de.axway.ajas.applicationadapter.AbstractFunctionCallAdapter.init(AbstractFunctionCallAdapter.java:90)
at de.axway.ajas.applicationadapter.ApplicationFunctionCallAdapter.<init>(ApplicationFunctionCallAdapter.java:59)
at de.axway.ajas.applicationadapter.ApplicationAdapter.<init>(ApplicationAdapter.java:84)
at de.axway.is.components.binding.ftp.client.lib.AdapterFactory.createApplicationAdapter(AdapterFactory.java:68)
at de.axway.is.components.binding.ftp.client.FtpClientService.<init>(FtpClientService.java:100)
at de.axway.is.components.binding.ftp.client.FtpClientService.<init>(FtpClientService.java:77)
at de.axway.is.components.binding.ftp.client.ServiceActivatorImpl.doStart(ServiceActivatorImpl.java:23)
at de.axway.is.base.api.service.ServiceActivator.start(ServiceActivator.java:118)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:276)
at org.apache.karaf.features.internal.FeaturesServiceImpl.installFeatures(FeaturesServiceImpl.java:353)
at org.apache.karaf.features.internal.FeaturesServiceImpl.installFeature(FeaturesServiceImpl.java:283)
at org.apache.karaf.features.internal.FeaturesServiceImpl.installFeature(FeaturesServiceImpl.java:279)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:50)
at org.apache.aries.proxy.impl.DefaultWrapper.invoke(DefaultWrapper.java:31)
at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:78)
at com.sun.proxy.$Proxy6.installFeature(Unknown Source)
at org.apache.karaf.features.management.internal.FeaturesServiceMBeanImpl.installFeature(FeaturesServiceMBeanImpl.java:172)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)
at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)
at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)
at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
at javax.management.StandardMBean.invoke(StandardMBean.java:405)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
at java.security.AccessController.doPrivileged(Native Method)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: de.axway.ftp.client.FtpClientException: ERR_51498:Internal error. Check log file for more details.
at de.axway.ftp.client.FtpClientApplication.initHelp(FtpClientApplication.java:214)
at de.axway.ftp.client.FtpClientApplication.init(FtpClientApplication.java:147)
at de.axway.ajas.applicationadapter.AbstractFunctionCallAdapter.init(AbstractFunctionCallAdapter.java:85)
... 66 more
Caused by: de.axway.ftp.client.FtpClientException: ERR_51083:Undefined get-directory. {partner="axway", }
at de.axway.ftp.client.MappingFactory.checkMapping(MappingFactory.java:117)
at de.axway.ftp.client.MappingFactory.<init>(MappingFactory.java:52)
at de.axway.ftp.client.config.FtpClientConnectionConfig.<init>(FtpClientConnectionConfig.java:41)
at de.axway.ftp.client.FtpClientApplication.reconfig(FtpClientApplication.java:321)
at de.axway.ftp.client.FtpClientApplication.initHelp(FtpClientApplication.java:212)
... 68 more



Resolution

The misbehavior will be observed upon FTPCLIENT component startup if the ftp_client.cfg config file contains OBJECTCLASS entries with no DIRECTORY configured.


Below is an example of OK versus NOT OK configuration:


image0783c47852923f872325eb0f6deae4dc_000.png

To recover, the configuration from ftp_client.cfg config file will need to be updated, saved and activated. Also a restart of the FTPCLIENT component could be needed in order to restore the service.