[
https://issues.apache.org/jira/browse/CAMEL-11387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16144245#comment-16144245
]
Cherry Ngai commented on CAMEL-11387:
-------------------------------------
[~davsclaus],
Same code with camel v2.17.3. The temp file is created
($linuxServer/myfolder1/myfolder2/test.txt.part), but exception when renaming.
Step 1: Camel v2.17.3 is running on Window server
Step 2: File is placed in
$windowServer/sourceFolder/myfolder1/myfolder2/test.txt, and expecting to
delivery to $linuxServer/myfolder1/myfolder2/test.txt.
Step 3: $linuxServer/myfolder1/myfolder2/test.txt.part is created
Step 4: exception to rename to the file
$linuxServer/myfolder1/myfolder2/test.txt.part to
$linuxServer/myfolder1/myfolder2/test.txt.
Debug message:
{code}
[hread #6 - file://sourceFolder] SftpOperations INFO Connected
to sftp://username@linuxServer:22
[hread #6 - file://sourceFolder] RemoteFileProducer DEBUG Connected
and logged in to:
Endpoint[sftp://username@linuxServer?tempFileName=%24%7Bfile%3Aonlyname%7D.part]
[hread #6 - file://sourceFolder] SftpOperations DEBUG Trying to
build remote directory: myfolder1/myfolder2
[hread #6 - file://sourceFolder] GenericFileConverter DEBUG Read file
sourceFolder\myfolder1\myfolder2\test.txt (no charset)
[hread #6 - file://sourceFolder] SftpOperations DEBUG About to
store file: test.txt.part using stream: java.io.BufferedInputStream@755bc403
[hread #6 - file://sourceFolder] SftpOperations DEBUG Took
0.031 seconds (31 millis) to store file: test.txt.part and FTP client returned:
true
[hread #6 - file://sourceFolder] RemoteFileProducer DEBUG Wrote
[myfolder1\myfolder2\test.txt.part] to
[Endpoint[sftp://username@linuxServer?tempFileName=%24%7Bfile%3Aonlyname%7D.part]]
[hread #6 - file://sourceFolder] SftpOperations DEBUG Renaming
file: myfolder1\myfolder2\test.txt.part to: myfolder1\myfolder2\test.txt
[hread #6 - file://sourceFolder] RemoteFileProducer WARN Writing
file failed with: Cannot rename file from: myfolder1\myfolder2\test.txt.part
to: myfolder1\myfolder2\test.txt
[hread #6 - file://sourceFolder] RemoteFileProducer DEBUG
Disconnecting from:
Endpoint[sftp://username@linuxServer?tempFileName=%24%7Bfile%3Aonlyname%7D.part]
[hread #6 - file://sourceFolder] DefaultErrorHandler DEBUG Failed
delivery for (MessageId: ID-WINDOWSERVER-55343-1503948693519-0-1 on ExchangeId:
ID-WINDOWSERVER-55343-1503948693519-0-2). On delivery attempt: 0 caught:
org.apache.camel.component.file.GenericFileOperationFailedException: Cannot
rename file from: myfolder1\myfolder2\test.txt.part to:
myfolder1\myfolder2\test.txt
[hread #6 - file://sourceFolder] DefaultErrorHandler ERROR Failed
delivery for (MessageId: ID-WINDOWSERVER-55343-1503948693519-0-1 on ExchangeId:
ID-WINDOWSERVER-55343-1503948693519-0-2). Exhausted after delivery attempt: 1
caught: org.apache.camel.component.file.GenericFileOperationFailedException:
Cannot rename file from: myfolder1\myfolder2\test.txt.part to:
myfolder1\myfolder2\test.txt
Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId ProcessorId Processor
Elapsed (ms)
[route2 ] [route2 ]
[file://sourceFolder?delay=60000&recursive=true
] [ 22188]
[route2 ] [log3 ] [log
] [ 35]
[route2 ] [to5 ]
[sftp://username@linuxServer?tempFileName=${file:onlyname}.part
] [ 21660]
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
org.apache.camel.component.file.GenericFileOperationFailedException: Cannot
rename file from: myfolder1\myfolder2\test.txt.part to:
myfolder1\myfolder2\test.txt
at
org.apache.camel.component.file.remote.SftpOperations.renameFile(SftpOperations.java:431)[camel-ftp-2.17.3.jar:2.17.3]
at
org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:198)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:58)[camel-ftp-2.17.3.jar:2.17.3]
at
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:173)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:341)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:168)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:163)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.processor.Pipeline.process(Pipeline.java:121)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.processor.Pipeline.process(Pipeline.java:83)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:454)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:226)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:190)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:175)[camel-core-2.17.3.jar:2.17.3]
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:102)[camel-core-2.17.3.jar:2.17.3]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_131]
at
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)[:1.8.0_131]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)[:1.8.0_131]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)[:1.8.0_131]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_131]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_131]
at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
[hread #6 - file://sourceFolder] Pipeline DEBUG Message
exchange has failed: so breaking out of pipeline for exchange:
Exchange[ID-VACSWVNGAI02-55343-1503948693519-0-2] Exception:
org.apache.camel.component.file.GenericFileOperationFailedException: Cannot
rename file from: myfolder1\myfolder2\test.txt.part to:
myfolder1\myfolder2\test.txt
[hread #6 - file://sourceFolder] GenericFileOnCompletion DEBUG Done
processing file: GenericFile[myfolder1\myfolder2\test.txt] using exchange:
Exchange[ID-VACSWVNGAI02-55343-1503948693519-0-2]
[hread #6 - file://sourceFolder] GenericFileOnCompletion WARN Rollback
file strategy:
org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy@4dbe767f
for file: GenericFile[myfolder1\myfolder2\test.txt]
[hread #6 - file://sourceFolder] FileUtil DEBUG Retrying
attempt 0 to delete file:
E:\relay\sourceFolder\myfolder1\myfolder2\test.txt.camelLock
[hread #6 - file://sourceFolder] FileUtil DEBUG Tried 1
to delete file: E:\relay\sourceFolder\myfolder1\myfolder2\test.txt.camelLock
with result: true
{code}
> SFTP is delivered into incorrect location, without exception (file in
> subfolder + temp file is created + Camel running on Window & SFTP server
> running on LINUX)
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-11387
> URL: https://issues.apache.org/jira/browse/CAMEL-11387
> Project: Camel
> Issue Type: Bug
> Components: camel-sftp
> Affects Versions: 2.19.0
> Environment: camel is running on Window, and SFTP server is LINUX
> Reporter: Cherry Ngai
> Priority: Minor
> Original Estimate: 168h
> Remaining Estimate: 168h
>
> The bug only happens when:
> i) file in subfolder
> ii) temp file is created
> iii) Camel running on Window & SFTP server running on LINUX
> Route Configuration:
> {code}
> from("file://sourceFolder?recursive=true&delay=60000").
> to("sftp://username@linuxServer?tempFileName=${file:onlyname}.part");
> {code}
> NOTES: added separator=UNIX or AUTO, I got the same issue.
> Window Local File: sourceFolder/myfolder1/myfolder2/test.txt
> FTPS Remote File Delivered: $linuxServer/myfolder1myfolder2test.txt
> NOTES:
> * There is no exception throw in 2.19.0, even though the file delivered into
> incorrect location.
> * In 2.17.3, exception throw at
> org.apache.camel.component.file.remote.SftpOperations.renameFile(SftpOperations.java:431)[camel-ftp-2.17.3.jar:2.17.3]
> * Without tempFileName, it works perfectly. Issue is around the rename area.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)