Reposted from the user mailing list: Hello,
I tried to run some of the unit tests in the itests project to check an issue, but most of them failed. The most common error is that pax exam couldn't start the container as it failed to replace the etc\org.ops4j.pax.logging.cfg file. Caused by: java.nio.file.FileSystemException: C:\Users\vasil\IdeaProjects\karaf\itests\test\target\exam\95aa38e2-a6a1-405e-8072-afe35347a34e\etc\org.ops4j.pax.logging.cfg: The process cannot access the file because it is being used by another process. at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:92) ... (full log attached) I have checked out karaf sources version 4.2.12-SNAPSHOT from some time ago (probably a few months). Please find attached the intellij test log. It failed the same way when I executed the test as part of the maven build. I added a breakpoint at the place where the FileSystemException is thrown and examined the open file handles of this file in Sysinternals Process Explorer. Seems there are two open file handles for it, both by the same java process that is executing the test (screenshots attached). Please let me know if this is a known issue on my end if i can already resolve it, is it version dependent or something else? Also I can provide further details if needed. Regards, Vassil
"C:\Program Files\Java\jdk-9.0.4\bin\java.exe" -ea -Dorg.ops4j.pax.logging.DefaultServiceLog.level=INFO -Dspring31.version=3.1.4.RELEASE -Dspring32.version=3.2.18.RELEASE_1 -Dspring40.version=4.0.9.RELEASE_1 -Dspring41.version=4.1.9.RELEASE_1 -Dspring42.version=4.2.9.RELEASE_1 -Dspring43.version=4.3.30.RELEASE_1 -Dspring50.version=5.0.20.RELEASE_1 -Dspring51.version=5.1.20.RELEASE_1 -Dspring52.version=5.2.13.RELEASE_1 -Dspring53.version=5.3.4_1 -Dspring.security31.version=3.1.4.RELEASE -Dspring.security42.version=4.2.4.RELEASE_1 -Dspring.security51.version=5.1.5.RELEASE_1 -Dspring.security53.version=5.3.1.RELEASE_1 -Dspring.security54.version=5.4.2_1 -Dactivemq.version=5.15.11 -Dpax.exam.configuration=file:src/test/resources/controlled-exam.properties --add-opens java.base/java.security=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.naming/javax.naming.spi=ALL-UNNAMED --add-opens java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.2\lib\idea_rt.jar=59774:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.2\lib\idea_rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.2\plugins\junit\lib\junit5-rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.2\plugins\junit\lib\junit-rt.jar;C:\Users\vasil\IdeaProjects\karaf\itests\test\target\test-classes;C:\Users\vasil\IdeaProjects\karaf\itests\test\target\classes;C:\Users\vasil\IdeaProjects\karaf\itests\common\target\classes;C:\Users\vasil\.m2\repository\org\ops4j\pax\exam\pax-exam-junit4\4.13.4\pax-exam-junit4-4.13.4.jar;C:\Users\vasil\.m2\repository\org\ops4j\pax\exam\pax-exam-spi\4.13.4\pax-exam-spi-4.13.4.jar;C:\Users\vasil\.m2\repository\org\ops4j\pax\tinybundles\tinybundles\3.0.0\tinybundles-3.0.0.jar;C:\Users\vasil\.m2\repository\biz\aQute\bnd\biz.aQute.bndlib\3.5.0\biz.aQute.bndlib-3.5.0.jar;C:\Users\vasil\.m2\repository\org\ops4j\base\ops4j-base-lang\1.5.1\ops4j-base-lang-1.5.1.jar;C:\Users\vasil\IdeaProjects\karaf\shell\core\target\classes;C:\Users\vasil\.m2\repository\org\jline\jline\3.19.0\jline-3.19.0.jar;C:\Users\vasil\IdeaProjects\karaf\jaas\boot\target\classes;C:\Users\vasil\.m2\repository\org\apache\geronimo\specs\geronimo-atinject_1.0_spec\1.2\geronimo-atinject_1.0_spec-1.2.jar;C:\Users\vasil\IdeaProjects\karaf\features\core\target\classes;C:\Users\vasil\.m2\repository\org\ops4j\pax\url\pax-url-aether\2.6.7\pax-url-aether-2.6.7.jar;C:\Users\vasil\.m2\repository\org\slf4j\jcl-over-slf4j\1.7.29\jcl-over-slf4j-1.7.29.jar;C:\Users\vasil\.m2\repository\org\ops4j\base\ops4j-base-util-property\1.5.1\ops4j-base-util-property-1.5.1.jar;C:\Users\vasil\.m2\repository\org\ops4j\base\ops4j-base-util-collections\1.5.1\ops4j-base-util-collections-1.5.1.jar;C:\Users\vasil\.m2\repository\org\ops4j\pax\swissbox\pax-swissbox-property\1.8.4\pax-swissbox-property-1.8.4.jar;C:\Users\vasil\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;C:\Users\vasil\.m2\repository\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar;C:\Users\vasil\.m2\repository\org\glassfish\jaxb\jaxb-runtime\2.3.3\jaxb-runtime-2.3.3.jar;C:\Users\vasil\.m2\repository\org\glassfish\jaxb\txw2\2.3.3\txw2-2.3.3.jar;C:\Users\vasil\.m2\repository\com\sun\istack\istack-commons-runtime\3.0.10\istack-commons-runtime-3.0.10.jar;C:\Users\vasil\.m2\repository\com\sun\activation\jakarta.activation\1.2.2\jakarta.activation-1.2.2.jar;C:\Users\vasil\.m2\repository\javax\activation\activation\1.1.1\activation-1.1.1.jar;C:\Users\vasil\.m2\repository\javax\annotation\javax.annotation-api\1.3.1\javax.annotation-api-1.3.1.jar;C:\Users\vasil\.m2\repository\org\ops4j\pax\exam\pax-exam-container-karaf\4.13.4\pax-exam-container-karaf-4.13.4.jar;C:\Users\vasil\.m2\repository\org\ops4j\pax\exam\pax-exam\4.13.4\pax-exam-4.13.4.jar;C:\Users\vasil\.m2\repository\org\ops4j\base\ops4j-base-exec\1.5.1\ops4j-base-exec-1.5.1.jar;C:\Users\vasil\.m2\repository\org\ops4j\base\ops4j-base-io\1.5.1\ops4j-base-io-1.5.1.jar;C:\Users\vasil\.m2\repository\org\ops4j\base\ops4j-base-store\1.5.1\ops4j-base-store-1.5.1.jar;C:\Users\vasil\.m2\repository\org\ops4j\pax\exam\pax-exam-container-remote\4.13.4\pax-exam-container-remote-4.13.4.jar;C:\Users\vasil\.m2\repository\org\ops4j\pax\exam\pax-exam-container-rbc-client\4.13.4\pax-exam-container-rbc-client-4.13.4.jar;C:\Users\vasil\.m2\repository\org\ops4j\pax\exam\pax-exam-container-rbc\4.13.4\pax-exam-container-rbc-4.13.4.jar;C:\Users\vasil\.m2\repository\org\ops4j\pax\swissbox\pax-swissbox-core\1.8.3\pax-swissbox-core-1.8.3.jar;C:\Users\vasil\.m2\repository\org\ops4j\pax\swissbox\pax-swissbox-lifecycle\1.8.3\pax-swissbox-lifecycle-1.8.3.jar;C:\Users\vasil\.m2\repository\org\ops4j\base\ops4j-base-net\1.5.1\ops4j-base-net-1.5.1.jar;C:\Users\vasil\.m2\repository\org\apache\commons\commons-compress\1.20\commons-compress-1.20.jar;C:\Users\vasil\.m2\repository\org\ops4j\pax\swissbox\pax-swissbox-framework\1.8.3\pax-swissbox-framework-1.8.3.jar;C:\Users\vasil\.m2\repository\org\ops4j\pax\swissbox\pax-swissbox-tracker\1.8.3\pax-swissbox-tracker-1.8.3.jar;C:\Users\vasil\.m2\repository\org\ops4j\base\ops4j-base-monitors\1.5.0\ops4j-base-monitors-1.5.0.jar;C:\Users\vasil\.m2\repository\org\ops4j\base\ops4j-base-spi\1.5.1\ops4j-base-spi-1.5.1.jar;C:\Users\vasil\.m2\repository\commons-io\commons-io\2.8.0\commons-io-2.8.0.jar;C:\Users\vasil\.m2\repository\org\osgi\osgi.core\6.0.0\osgi.core-6.0.0.jar;C:\Users\vasil\.m2\repository\org\osgi\osgi.cmpn\6.0.0\osgi.cmpn-6.0.0.jar;C:\Users\vasil\.m2\repository\org\apache\felix\org.apache.felix.gogo.runtime\1.1.4\org.apache.felix.gogo.runtime-1.1.4.jar;C:\Users\vasil\.m2\repository\org\apache\geronimo\specs\geronimo-jms_1.1_spec\1.1.1\geronimo-jms_1.1_spec-1.1.1.jar;C:\Users\vasil\.m2\repository\org\awaitility\awaitility\3.1.6\awaitility-3.1.6.jar;C:\Users\vasil\.m2\repository\org\hamcrest\hamcrest-library\1.3\hamcrest-library-1.3.jar;C:\Users\vasil\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\vasil\.m2\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar;C:\Users\vasil\.m2\repository\org\apache\servicemix\bundles\org.apache.servicemix.bundles.hamcrest\1.3_1\org.apache.servicemix.bundles.hamcrest-1.3_1.jar;C:\Users\vasil\.m2\repository\org\apache\felix\org.apache.felix.fileinstall\3.6.8\org.apache.felix.fileinstall-3.6.8.jar;C:\Users\vasil\IdeaProjects\karaf\shell\ssh\target\classes;C:\Users\vasil\.m2\repository\org\apache\sshd\sshd-osgi\2.5.1\sshd-osgi-2.5.1.jar;C:\Users\vasil\.m2\repository\org\apache\sshd\sshd-sftp\2.5.1\sshd-sftp-2.5.1.jar;C:\Users\vasil\.m2\repository\org\apache\sshd\sshd-core\2.5.1\sshd-core-2.5.1.jar;C:\Users\vasil\.m2\repository\org\apache\sshd\sshd-common\2.5.1\sshd-common-2.5.1.jar;C:\Users\vasil\.m2\repository\org\apache\sshd\sshd-scp\2.5.1\sshd-scp-2.5.1.jar;C:\Users\vasil\IdeaProjects\karaf\jaas\modules\target\classes;C:\Users\vasil\IdeaProjects\karaf\jaas\config\target\classes;C:\Users\vasil\IdeaProjects\karaf\jndi\target\classes;C:\Users\vasil\.m2\repository\org\apache\xbean\xbean-naming\4.18\xbean-naming-4.18.jar;C:\Users\vasil\.m2\repository\org\apache\aries\proxy\org.apache.aries.proxy.api\1.1.1\org.apache.aries.proxy.api-1.1.1.jar;C:\Users\vasil\IdeaProjects\karaf\package\target\classes;C:\Users\vasil\IdeaProjects\karaf\bundle\core\target\classes;C:\Users\vasil\.m2\repository\org\apache\felix\org.apache.felix.framework.security\2.6.1\org.apache.felix.framework.security-2.6.1.jar;C:\Users\vasil\.m2\repository\org\osgi\org.osgi.core\5.0.0\org.osgi.core-5.0.0.jar;C:\Users\vasil\.m2\repository\org\apache\felix\org.apache.felix.framework\5.6.12\org.apache.felix.framework-5.6.12.jar;C:\Users\vasil\.m2\repository\org\apache\servicemix\bundles\org.apache.servicemix.bundles.not-yet-commons-ssl\0.3.11_1\org.apache.servicemix.bundles.not-yet-commons-ssl-0.3.11_1.jar;C:\Users\vasil\.m2\repository\com\google\guava\guava\20.0\guava-20.0.jar;C:\Users\vasil\.m2\repository\org\eclipse\jetty\jetty-server\9.4.38.v20210224\jetty-server-9.4.38.v20210224.jar;C:\Users\vasil\.m2\repository\javax\servlet\javax.servlet-api\3.1.0\javax.servlet-api-3.1.0.jar;C:\Users\vasil\.m2\repository\org\eclipse\jetty\jetty-http\9.4.38.v20210224\jetty-http-9.4.38.v20210224.jar;C:\Users\vasil\.m2\repository\org\eclipse\jetty\jetty-io\9.4.38.v20210224\jetty-io-9.4.38.v20210224.jar;C:\Users\vasil\.m2\repository\org\slf4j\slf4j-log4j12\1.7.29\slf4j-log4j12-1.7.29.jar;C:\Users\vasil\.m2\repository\org\slf4j\slf4j-api\1.7.29\slf4j-api-1.7.29.jar;C:\Users\vasil\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar;C:\Users\vasil\IdeaProjects\karaf\examples\karaf-bundle-example\karaf-bundle-example-common\target\classes;C:\Users\vasil\IdeaProjects\karaf\examples\karaf-bundle-example\karaf-bundle-example-client\target\classes;C:\Users\vasil\IdeaProjects\karaf\examples\karaf-blueprint-example\karaf-blueprint-example-common\target\classes;C:\Users\vasil\IdeaProjects\karaf\examples\karaf-blueprint-example\karaf-blueprint-example-client\target\classes;C:\Users\vasil\IdeaProjects\karaf\examples\karaf-command-example\karaf-command-example-api\target\classes;C:\Users\vasil\IdeaProjects\karaf\diagnostic\boot\target\classes;C:\Users\vasil\IdeaProjects\karaf\examples\karaf-jdbc-example\karaf-jdbc-example-api\target\classes;C:\Users\vasil\IdeaProjects\karaf\examples\karaf-jpa-example\karaf-jpa-example-provider\karaf-jpa-example-provider-api\target\classes;C:\Users\vasil\.m2\repository\org\eclipse\persistence\javax.persistence\2.1.0\javax.persistence-2.1.0.jar;C:\Users\vasil\IdeaProjects\karaf\examples\karaf-rest-example\karaf-rest-example-client\karaf-rest-example-client-http\target\classes;C:\Users\vasil\IdeaProjects\karaf\examples\karaf-websocket-example\target\classes;C:\Users\vasil\.m2\repository\org\eclipse\jetty\websocket\websocket-client\9.4.38.v20210224\websocket-client-9.4.38.v20210224.jar;C:\Users\vasil\.m2\repository\org\eclipse\jetty\jetty-client\9.4.38.v20210224\jetty-client-9.4.38.v20210224.jar;C:\Users\vasil\.m2\repository\org\eclipse\jetty\jetty-util\9.4.38.v20210224\jetty-util-9.4.38.v20210224.jar;C:\Users\vasil\.m2\repository\org\eclipse\jetty\websocket\websocket-common\9.4.38.v20210224\websocket-common-9.4.38.v20210224.jar;C:\Users\vasil\.m2\repository\org\eclipse\jetty\websocket\websocket-api\9.4.38.v20210224\websocket-api-9.4.38.v20210224.jar;C:\Users\vasil\.m2\repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\vasil\.m2\repository\org\easymock\easymock\4.2\easymock-4.2.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 org.apache.karaf.itests.BundleTest,listCommand 2021-04-18 12:05:15,788 | INFO | j.pax.exam.spi.DefaultExamSystem 127 | Pax Exam System (Version: 4.13.4) created. 2021-04-18 12:05:15,929 | INFO | .pax.exam.junit.impl.ProbeRunner 74 | creating PaxExam runner for class org.apache.karaf.itests.BundleTest 2021-04-18 12:05:16,566 | INFO | .pax.exam.junit.impl.ProbeRunner 94 | running test class org.apache.karaf.itests.BundleTest 2021-04-18 12:05:16,625 | INFO | iner.internal.KarafTestContainer 229 | Created RMI registry server on 127.0.0.1:21000 2021-04-18 12:05:21,623 | INFO | iner.internal.KarafTestContainer 247 | Found 0 options when requesting OverrideJUnitBundlesOption.class java.lang.RuntimeException: Container never came up at org.ops4j.pax.exam.karaf.container.internal.KarafTestContainer.stop(KarafTestContainer.java:688) at org.ops4j.pax.exam.spi.reactors.EagerSingleStagedReactor.tearDown(EagerSingleStagedReactor.java:118) at org.ops4j.pax.exam.spi.reactors.EagerSingleStagedReactor.afterClass(EagerSingleStagedReactor.java:132) at org.ops4j.pax.exam.spi.reactors.ReactorManager.afterClass(ReactorManager.java:441) at org.ops4j.pax.exam.junit.impl.ProbeRunner.run(ProbeRunner.java:107) at org.ops4j.pax.exam.junit.PaxExam.run(PaxExam.java:93) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53) Process finished with exit code -2 java.lang.IllegalStateException: Error occured while replacing file C:\Users\vasil\IdeaProjects\karaf\itests\test\target\exam\95aa38e2-a6a1-405e-8072-afe35347a34e\etc\org.ops4j.pax.logging.cfg at org.ops4j.pax.exam.karaf.container.internal.KarafConfigurationFile.replace(KarafConfigurationFile.java:47) at org.ops4j.pax.exam.karaf.container.internal.KarafTestContainer.updateUserSetProperties(KarafTestContainer.java:474) at org.ops4j.pax.exam.karaf.container.internal.KarafTestContainer.start(KarafTestContainer.java:189) at org.ops4j.pax.exam.spi.reactors.EagerSingleStagedReactor.setUp(EagerSingleStagedReactor.java:86) at org.ops4j.pax.exam.spi.reactors.EagerSingleStagedReactor.beforeClass(EagerSingleStagedReactor.java:136) at org.ops4j.pax.exam.spi.reactors.ReactorManager.beforeClass(ReactorManager.java:457) at org.ops4j.pax.exam.junit.impl.ProbeRunner.run(ProbeRunner.java:97) at org.ops4j.pax.exam.junit.PaxExam.run(PaxExam.java:93) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53) Caused by: java.nio.file.FileSystemException: C:\Users\vasil\IdeaProjects\karaf\itests\test\target\exam\95aa38e2-a6a1-405e-8072-afe35347a34e\etc\org.ops4j.pax.logging.cfg: The process cannot access the file because it is being used by another process. at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:92) 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.WindowsFileCopy.copy(WindowsFileCopy.java:164) at java.base/sun.nio.fs.WindowsFileSystemProvider.copy(WindowsFileSystemProvider.java:279) at java.base/java.nio.file.Files.copy(Files.java:1287) at org.apache.commons.io.FileUtils.doCopyFile(FileUtils.java:1392) at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:885) at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:835) at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:802) at org.ops4j.pax.exam.karaf.container.internal.KarafConfigurationFile.replace(KarafConfigurationFile.java:44) ... 12 more