[
https://issues.apache.org/jira/browse/CAMEL-11298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16021034#comment-16021034
]
ASF GitHub Bot commented on CAMEL-11298:
----------------------------------------
Github user Stabbz closed the pull request at:
https://github.com/apache/camel/pull/1707
> 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
> Assignee: Claus Ibsen
> Fix For: 2.18.5, 2.19.1, 2.20.0
>
>
> 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)