[
https://issues.apache.org/jira/browse/MRESOLVER-313?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17655455#comment-17655455
]
ASF GitHub Bot commented on MRESOLVER-313:
------------------------------------------
gnodet commented on code in PR #234:
URL: https://github.com/apache/maven-resolver/pull/234#discussion_r1063452977
##########
maven-resolver-util/src/main/java/org/eclipse/aether/util/FileUtils.java:
##########
@@ -85,17 +92,23 @@ public void close() throws IOException
}
/**
- * Creates a {@link TempFile} for given file. It will be in same directory
where given file is, and will reuse its
- * name for generated name. Returned instance should be handled in
try-with-resource construct and created temp
- * file once ready can be moved to passed in {@code file} parameter place.
+ * Creates a {@link CollocatedTempFile} instance for given file without
backing file. The path will be located in
+ * same directory where given file is, and will reuse its name for
generated (randomized) name. Returned instance
+ * should be handled in try-with-resource and created temp path is removed
(if exists) when returned instance is
+ * closed. The {@link CollocatedTempFile#move()} makes possible to
atomically replace passed in file with the
+ * processed content written into a file backing the {@link
CollocatedTempFile} instance.
* <p>
* The {@code file} nor it's parent directories have to exist. The parent
directories are created if needed.
+ * <p>
+ * This method uses {@link Path#resolve(String)} to create the temporary
file path in passed in file parent
+ * directory, but it does NOT create backing file on file system.
*/
public static CollocatedTempFile newTempFile( Path file ) throws
IOException
{
Path parent = requireNonNull( file.getParent(), "file must have
parent" );
Files.createDirectories( parent );
- Path tempFile = Files.createTempFile( parent,
file.getFileName().toString(), "tmp" );
+ Path tempFile = parent.resolve(
+ file.getFileName() + "." + Long.toUnsignedString(
RANDOM.nextLong() ) + ".tmp" );
Review Comment:
Same here.
> Artifact file permissions are 0600 and not implicitly set by umask
> ------------------------------------------------------------------
>
> Key: MRESOLVER-313
> URL: https://issues.apache.org/jira/browse/MRESOLVER-313
> Project: Maven Resolver
> Issue Type: Bug
> Components: Resolver
> Reporter: Tamas Cservenak
> Assignee: Tamas Cservenak
> Priority: Major
> Fix For: 1.9.4
>
>
> With introduction of FileUtils, and widespread use of CollocatedTempFile, one
> problem occurs: in both "temp file" cases Files.createTempFile is being used,
> that uses 0600 permissions instead to rely on umask.
> In case of TempFile this is OK, but in case of CollocatedTempFile this is NOT
> OK, as these files are usually moved to their "final" place (like artifact in
> local repo once downloaded and verified).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)