[
https://issues.apache.org/jira/browse/SUREFIRE-1573?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17160282#comment-17160282
]
Tibor Digana commented on SUREFIRE-1573:
----------------------------------------
[~asynchronos] The project has several modules which are built with Java 7 but
there is already one built with Java 8 because it is used for JUnit5. So it
might be the same case here and the new module would have to be compiled twice.
If some open source project already has a facade built with Java 7 calling the
{{ProcessHandle.onExit()}} then we can use it.
> PpidChecker inherits and blocks resources from tests while checking if the
> forked VM is still alive
> ---------------------------------------------------------------------------------------------------
>
> Key: SUREFIRE-1573
> URL: https://issues.apache.org/jira/browse/SUREFIRE-1573
> Project: Maven Surefire
> Issue Type: Bug
> Affects Versions: 2.22.0
> Environment: Windows, our tests create temporary files using
> native-code (std::fstream) and remove or rename them using boost::filesystem.
> Java 1.8.
> Reporter: Marcus Ackermann
> Priority: Critical
>
> On Windows, the PpidChecker executes wmic through cmd by starting a new
> process. Java calls {{CreateProcess}} with the flag {{bInheritHandles=TRUE}}.
> When I create a temporary file in a test, it happens that this file can
> neither be removed nor deleted. The error code is the following (from
> https://docs.microsoft.com/en-us/windows/desktop/debug/system-error-codes--0-499-)
> {code:java}
> ERROR_SHARING_VIOLATION
> 32 (0x20)
> The process cannot access the file because it is being used by another
> process.{code}
> I found out that this sharing violation is due to the fact that the process
> started from PpidChecker also owns the file inherited from the test process.
> This seems to be a side-effect of the new monitoring mechanism for the forked
> VM introduced in 2.20.1 with SUREFIRE-1302.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)