RFR: 7903988: IDEA plugin: temp directories don't work on Windows [v3]
Christian Stein
cstein at openjdk.org
Mon Apr 28 14:59:00 UTC 2025
On Wed, 16 Apr 2025 14:50:35 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:
>> Copied from the JBS issue:
>>
>> To find the temporary directory on Windows, one of the environment variables `TMP`, `TEMP`, or `USERPROFILE` is needed [1](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-gettemppatha#remarks). If these are not set, `C:\WINDOWS` is used as a fallback, but this directory is typically inaccessible (and generally not really a directory you want to leave temp files in).
>>
>> The IDEA plugin currently doesn't forward these variables to the jtreg process that it starts, resulting in them being unset. For tests that e.g. create temporary files or directories, this result in an `AccessDeniedException` such as:
>>
>>
>> java.nio.file.AccessDeniedException: C:\\WINDOWS\\asdf12599356154200781179
>> at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:89)
>> at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
>> at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
>> at java.base/sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:231)
>> at java.base/java.nio.file.Files.newByteChannel(Files.java:357)
>> at java.base/java.nio.file.Files.createFile(Files.java:609)
>> at java.base/java.nio.file.TempFileHelper.create(TempFileHelper.java:132)
>> at java.base/java.nio.file.TempFileHelper.createTempFile(TempFileHelper.java:150)
>> at java.base/java.nio.file.Files.createTempFile(Files.java:842)
>> at TestTempDir.testTempDir(TestTempDir.java:39)
>>
>>
>> The plugin should forward these environment variables on Windows, to make sure that the temporary directory can be found by tests.
>>
>> Tested locally with a simple test that calls [`Files::createTempFile`](https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/file/Files.html#createTempFile(java.lang.String,java.lang.String,java.nio.file.attribute.FileAttribute...)), and checked that these changes prevent an `AccessDeniedError` from being thrown.
>
> Jorn Vernee has updated the pull request incrementally with one additional commit since the last revision:
>
> fix typo
Marked as reviewed by cstein (Reviewer).
-------------
PR Review: https://git.openjdk.org/jtreg/pull/258#pullrequestreview-2799617232
More information about the jtreg-dev
mailing list