Class RunnableErrorForwarder
- java.lang.Object
-
- org.eclipse.aether.util.concurrency.RunnableErrorForwarder
-
public final class RunnableErrorForwarder extends Object
A utility class to forward any uncaughtError
orRuntimeException
from aRunnable
executed in a worker thread back to the parent thread. The simplified usage pattern looks like this:RunnableErrorForwarder errorForwarder = new RunnableErrorForwarder(); for ( Runnable task : tasks ) { executor.execute( errorForwarder.wrap( task ) ); } errorForwarder.await();
-
-
Constructor Summary
Constructors Constructor Description RunnableErrorForwarder()
Creates a new error forwarder for worker threads spawned by the current thread.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
await()
Causes the current thread to wait until all previouslywrapped
runnables have terminated and potentially re-throws an uncaughtRuntimeException
orError
from any of the runnables.Runnable
wrap(Runnable runnable)
Wraps the specified runnable into an equivalent runnable that will allow forwarding of uncaught errors.
-
-
-
Constructor Detail
-
RunnableErrorForwarder
public RunnableErrorForwarder()
Creates a new error forwarder for worker threads spawned by the current thread.
-
-
Method Detail
-
wrap
public Runnable wrap(Runnable runnable)
Wraps the specified runnable into an equivalent runnable that will allow forwarding of uncaught errors.- Parameters:
runnable
- The runnable from which to forward errors, must not benull
.- Returns:
- The error-forwarding runnable to eventually execute, never
null
.
-
await
public void await()
Causes the current thread to wait until all previouslywrapped
runnables have terminated and potentially re-throws an uncaughtRuntimeException
orError
from any of the runnables. In case multiple runnables encountered uncaught errors, one error is arbitrarily selected. Note: This method must be called from the same thread that created this error forwarder instance.
-
-