Class TimeoutExtensionDispatcher
java.lang.Object
org.apache.maven.plugin.surefire.extensions.timeout.TimeoutExtensionDispatcher
Discovers and invokes
ForkedProcessTimeoutExtension instances when a
forked test JVM is killed due to forkedProcessTimeoutInSeconds.
Extensions are loaded once per Surefire run via ServiceLoader from
the plugin classloader (the same classloader that loaded the
ForkedProcessTimeoutExtension interface).
Each extension callback is invoked on an internal executor and capped at
PER_CALLBACK_TIMEOUT_SECONDS seconds; any thrown Throwable
or timeout is logged at warn level and never affects the test result.
- Since:
- 3.6.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intMaximum wall-clock time allowed per extension callback. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Shuts down the internal executor.voidfireForkExited(ForkedProcessTimeoutContext context, RunResult result) Synchronously invokesForkedProcessTimeoutExtension.onForkExited(org.apache.maven.surefire.extensions.ForkedProcessTimeoutContext, org.apache.maven.surefire.api.suite.RunResult)on every registered extension, after the forked JVM exited.voidSynchronously invokesForkedProcessTimeoutExtension.onTimeoutDetected(org.apache.maven.surefire.extensions.ForkedProcessTimeoutContext)on every registered extension.boolean
-
Field Details
-
PER_CALLBACK_TIMEOUT_SECONDS
public static final int PER_CALLBACK_TIMEOUT_SECONDSMaximum wall-clock time allowed per extension callback.- See Also:
-
-
Constructor Details
-
TimeoutExtensionDispatcher
-
-
Method Details
-
hasExtensions
public boolean hasExtensions()- Returns:
truewhen at least one extension is registered
-
fireTimeoutDetected
Synchronously invokesForkedProcessTimeoutExtension.onTimeoutDetected(org.apache.maven.surefire.extensions.ForkedProcessTimeoutContext)on every registered extension. Should be called immediately after Surefire detects the timeout and before the kill is sent. -
fireForkExited
Synchronously invokesForkedProcessTimeoutExtension.onForkExited(org.apache.maven.surefire.extensions.ForkedProcessTimeoutContext, org.apache.maven.surefire.api.suite.RunResult)on every registered extension, after the forked JVM exited. -
close
public void close()Shuts down the internal executor. Safe to call multiple times.
-