You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2019/06/20 14:10:00 UTC

[jira] [Updated] (CAMEL-13667) Windows network UNC paths not treated correctly (File2/tempPrefix)

     [ https://issues.apache.org/jira/browse/CAMEL-13667?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen updated CAMEL-13667:
--------------------------------
    Priority: Minor  (was: Critical)

> Windows network UNC paths not treated correctly (File2/tempPrefix)
> ------------------------------------------------------------------
>
>                 Key: CAMEL-13667
>                 URL: https://issues.apache.org/jira/browse/CAMEL-13667
>             Project: Camel
>          Issue Type: Bug
>          Components: came-core
>    Affects Versions: 2.22.2
>            Reporter: Clemens Blamauer
>            Priority: Minor
>              Labels: UNC, camel-core, camel-file, windows
>         Attachments: Windows_network_UNC_paths_not_treated_correctly_(File2_tempPrefix).patch
>
>
> Dear all,
> We are using Camel's File2 endpoint to deliver reports to a Windows network share. The used URI is (here in a properties file):
> {{# File URI equivalent of \\FILESERVER.mycompany.local\Public\reports}}
> {{report.delivery.to=file:////FILESERVER.mycompany.local/Public/reports?keepLastModified=true&tempPrefix=tmp_}}
> This results in an exception, see the stack trace below.
> I debugged and traced the issue back to:
> {{org.apache.camel.component.file.GenericFileProducer#createTempFileName}}
> which is using
> {{org.apache.camel.util.FileUtil#compactPath(java.lang.String, java.lang.String)}}
> This method only preserves the first slash/backslash at the start. For UNC paths on Windows however, 2 backslashes are needed.
> I prepared a patch for:
>  * {{org.apache.camel.util.FileUtil}}
>  * {{org.apache.camel.util.FileUtilTest}}
> which remedies the issue on Windows.
> I would appreciate if you could check the patch, and integrate it to 2.x and 3.x branches if it is ok.
> Thank you.
> Kind regards,
> Clemens
>  
> *Stack trace*
> {{org.apache.camel.component.file.GenericFileOperationFailedException: Error renaming file from {color:#FF0000}\{color}FILESERVER.mycompany.local\Public\reports\20190415\tmp_eod_report_20190415.csv to {color:#14892c}\\{color}FILESERVER.mycompany.local\Public\reports\20190415\eod_report_20190415.csv}}
> {{    at org.apache.camel.component.file.FileOperations.renameFile(FileOperations.java:81) ~[camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:202) ~[camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.component.file.GenericFileProducer.process(GenericFileProducer.java:80) ~[camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) ~[camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:148) ~[camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.component.direct.DirectBlockingProducer.process(DirectBlockingProducer.java:53) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:148) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:715) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:638) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:248) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.Pipeline.process(Pipeline.java:138) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.Pipeline.process(Pipeline.java:101) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:454) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:223) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:187) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101) [camel-core-2.22.2.jar:2.22.2]}}
> {{    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_212]}}
> {{    at java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308) [?:1.8.0_212]}}
> {{    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java) [?:1.8.0_212]}}
> {{    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_212]}}
> {{    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_212]}}
> {{    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_212]}}
> {{    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_212]}}
> {{    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_212]}}
> {{Caused by: java.nio.file.NoSuchFileException: {color:#d04437}\{color}FILESERVER.mycompany.local\Public\reports\20190415\tmp_eod_report_20190415.csv -> {color:#14892c}\\{color}FILESERVER.mycompany.local\Public\reports\20190415\eod_report_20190415.csv}}
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)