Class RunnableErrorForwarder

java.lang.Object
org.eclipse.aether.util.concurrency.RunnableErrorForwarder

public final class RunnableErrorForwarder extends Object
A utility class to forward any uncaught Error or RuntimeException from a Runnable 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 Details

    • RunnableErrorForwarder

      Creates a new error forwarder for worker threads spawned by the current thread.
  • Method Details

    • 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 be null.
      Returns:
      The error-forwarding runnable to eventually execute, never null.
    • await

      public void await()
      Causes the current thread to wait until all previously wrapped runnables have terminated and potentially re-throws an uncaught RuntimeException or Error 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.