Bill Burcham created GEODE-9288:
-----------------------------------
Summary: DeployedJarTest fails because JavaCompiler.compile()
fails to delete temporaryClassesDirectory
Key: GEODE-9288
URL: https://issues.apache.org/jira/browse/GEODE-9288
Project: Geode
Issue Type: Bug
Components: tests
Affects Versions: 1.15.0
Reporter: Bill Burcham
DeployedJarTest.throwsIfFileIsNotValidJarFile() test failed in Windows CI
https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/WindowsUnitTestOpenJDK11/builds/225
The problem did not reproduce on macOS in 1000 runs.
I notice that the JavaCompiler constructor calls the deprecated
Files.createTempDir(). I wonder if there might be a race condition where two
test processes (at once) think they own that temp dir and so they can both
delete it.
We might consider replacing that deprecated call with the recommended
Files.createTempDirectory() which may be more robust. Looking at the deprecated
method and the recommended substitute the latter might have less of a chance of
collision due to its use of random suffixes (versus the former's
monotonically-increasing ints).
{code:java}
org.apache.geode.deployment.internal.DeployedJarTest >
throwsIfFileIsNotValidJarFile FAILED
java.io.IOException: Unable to delete directory
C:\Users\geode\AppData\Local\Temp\1621373797371-0\classes.
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1212)
at
org.apache.geode.test.compiler.JavaCompiler.compile(JavaCompiler.java:90)
at
org.apache.geode.test.compiler.JarBuilder.buildJarFromClassNames(JarBuilder.java:79)
at
org.apache.geode.deployment.internal.DeployedJarTest.createJarFile(DeployedJarTest.java:82)
at
org.apache.geode.deployment.internal.DeployedJarTest.throwsIfFileIsNotValidJarFile(DeployedJarTest.java:47)
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)