@Test public void testRun() { final Runnable runnable = mock(Runnable.class); caller.execute(runnable); verify(runnable).run(); }
@Override public void execute(final Runnable runnable) { try { runnable.run(); } catch (final Exception e) { internalError("Exception in runnable", e); } catch (final Error e) { internalError("Error in runnable", e); } }
DirectCaller implements Caller { @Override public void execute(final Runnable runnable) { try { runnable.run(); } catch (final Exception e) { internalError("Exception in runnable", e); } catch (final Error e) { internalError("Error in runnable", e); } } }
DirectCaller implements Caller { @Override public void execute(final Runnable runnable) { try { runnable.run(); } catch (final Exception e) { internalError("Exception in runnable", e); } catch (final Error e) { internalError("Error in runnable", e); } }  }
DirectCaller implements Caller { @Override public void execute(final Runnable runnable) { try { runnable.run(); } catch (final Exception e) { internalError("Exception in runnable", e); } catch (final Error e) { internalError("Error in runnable", e); } }  @Override void execute(final Runnable runnable); @Override void referenceLeaked(final Object reference, final StackTraceElement[] stack); }
DirectCaller implements Caller { @Override public void execute(final Runnable runnable) { try { runnable.run(); } catch (final Exception e) { internalError("Exception in runnable", e); } catch (final Error e) { internalError("Error in runnable", e); } }  @Override void execute(final Runnable runnable); @Override void referenceLeaked(final Object reference, final StackTraceElement[] stack);  }