package de.skuzzle.inject.async;

import static com.google.common.base.Preconditions.checkArgument;

import org.aopalliance.intercept.MethodInvocation;

import com.google.common.base.Throwables;

public class InvokeMethodRunnable implements Runnable {

    private final MethodInvocation invocation;

    private InvokeMethodRunnable(MethodInvocation invocation) {
        this.invocation = invocation;
    }

    public static Runnable of(MethodInvocation invocation) {
        checkArgument(invocation != null);
        return new InvokeMethodRunnable(invocation);
    }

    @Override
    public void run() {
        try {
            this.invocation.proceed();
        } catch (final Throwable e) {
            Throwables.propagateIfPossible(e);
            throw new RuntimeException("Unexpected error", e);
        }
    }
}

@@ -189,23 +189,16 @@
 ables;%0A%0A
-public 
 class In
@@ -400,23 +400,16 @@
  %7D%0A%0A    
-public 
 static R
@@ -718,82 +718,9 @@
 gate
-IfPossible(e);%0A            throw new RuntimeException(%22Unexpected error%22, 
+(
 e);%0A

Make class private