public static void invokeInThread ( DirectInvocation invocation ) { boolean retry = true ; while ( retry ) { invocation . run ( ) ; if ( invocation . retry == null ) { retry = false ; } else { try { if ( invocation . retry . task != null ) { invocation . retry . task . get ( ) ; } else { Thread . sleep ( invocation . retry . timeout ) ; } } catch ( Exception e ) { throw new UnexpectedException ( e ) ; } retry = true ; } } }
Run the code in the same thread than caller .