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

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

Clemens Blamauer created CAMEL-13667:
----------------------------------------

             Summary: 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
         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)