Stephan Siano created CAMEL-6591:
------------------------------------
Summary: SFTP endpoint fails if the server disconnected the socket
Key: CAMEL-6591
URL: https://issues.apache.org/jira/browse/CAMEL-6591
Project: Camel
Issue Type: Bug
Components: camel-ftp
Affects Versions: 2.11.1
Reporter: Stephan Siano
If the ssh server disconnects the socket held by an SFTP endpoint (and the
disconnect option is not set to true) the next call to this endpoint will fail.
A call after the failed call will reconnect (and succeed if the server is
available again).
The error message is as follows:
SftpSimpleProduceDisconnectTest
org.apache.camel.component.file.remote.sftp.SftpSimpleProduceDisconnectTest
testSftpSimpleProduce(org.apache.camel.component.file.remote.sftp.SftpSimpleProduceDisconnectTest)
org.apache.camel.CamelExecutionException: Exception occurred during execution
on the exchange: Exchange[Message: Hello World]
at
org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1360)
at
org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:619)
at
org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:454)
at
org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:450)
at
org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeader(DefaultProducerTemplate.java:152)
at
org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeader(DefaultProducerTemplate.java:146)
at
org.apache.camel.component.file.remote.sftp.SftpSimpleProduceDisconnectTest.testSftpSimpleProduce(SftpSimpleProduceDisconnectTest.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.apache.camel.component.file.GenericFileOperationFailedException:
Cannot change directory to: target
at
org.apache.camel.component.file.remote.SftpOperations.doChangeDirectory(SftpOperations.java:536)
at
org.apache.camel.component.file.remote.SftpOperations.changeCurrentDirectory(SftpOperations.java:524)
at
org.apache.camel.component.file.remote.SftpOperations.storeFile(SftpOperations.java:771)
at
org.apache.camel.component.file.GenericFileProducer.writeFile(GenericFileProducer.java:278)
at
org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:166)
at
org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:49)
at
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:192)
at
org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:73)
at
org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:366)
at
org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:1)
at
org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:233)
at
org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:337)
at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:175)
at
org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:111)
at
org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeader(DefaultProducerTemplate.java:150)
... 31 more
Caused by: 4:
at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:332)
at
org.apache.camel.component.file.remote.SftpOperations.doChangeDirectory(SftpOperations.java:534)
... 46 more
Caused by: java.io.IOException: Pipe closed
at java.io.PipedInputStream.read(Unknown Source)
at java.io.PipedInputStream.read(Unknown Source)
at com.jcraft.jsch.ChannelSftp.fill(ChannelSftp.java:2665)
at com.jcraft.jsch.ChannelSftp.header(ChannelSftp.java:2691)
at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:2148)
at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:315)
... 47 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira