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;
            }
        }
    }
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;
            }
        }
    }
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.

@param invocation The code to run
Run the code in the same thread than caller .