[ 
https://issues.apache.org/jira/browse/CAMEL-11298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16017684#comment-16017684
 ] 

Claus Ibsen commented on CAMEL-11298:
-------------------------------------

Can you provide an example with the uri configuration to better explain this

> Using chmodDirectory with full paths makes file producer to created 
> directories relative to source
> --------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-11298
>                 URL: https://issues.apache.org/jira/browse/CAMEL-11298
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.18.2, 2.19.0
>         Environment: Arch Linux
>            Reporter: Damyan Damyanov
>
> Tried using the chmodDirectory property on a file producer that writes to 
> full system paths and noticed that with the chmodDirectory property the 
> directories get created relative to the source/project.
> Without using the property the files get properly created using the full path 
> that is given to them.
> I ran a debugger and found the source of the problem:
> Code is from org.apache.camel.component.file.FileOperations 
> in buildDirectory method
> at lines 97 - 118
> {code}
> if (permissions == null || permissions.isEmpty()) {
>             return dir.mkdirs();
>         }
>         // create directory one part of a time and set permissions
>         try {
>             String[] parts = dir.getPath().split("\\" + File.separatorChar);
>             File base = new File(".");
>             for (String part : parts) {
>                 File subDir = new File(base, part);
>                 if (!subDir.exists()) {
>                     if (subDir.mkdir()) {
>                         if (LOG.isTraceEnabled()) {
>                             LOG.trace("Setting chmod: {} on directory: {} ", 
> PosixFilePermissions.toString(permissions), subDir);
>                         }
>                         Files.setPosixFilePermissions(subDir.toPath(), 
> permissions);
>                     } else {
>                         return false;
>                     }
>                 }
>                 base = new File(base, subDir.getName());
>             }
>         }
> {code}
> Base File used to create all the folders and set their permissions is 
> initialized with new File("."), effectively this always creates the 
> directories given to it, relative to the source, and will not handle full 
> system paths.
> Is there a reason I'm unaware of that this is implemented this way?
> I tested running folder creation code with new File("") as a base and it 
> worked fine, would that be enough to handle the issue if it indeed is an 
> issue?
> I can do this my self by issuing a pull request, let me know.
> Thanks.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to