package com.l7tech.server.event;

import java.util.concurrent.Callable;
import java.util.concurrent.CompletionException;
import javax.security.auth.Subject;

class a implements Callable<OUT> {
   final Subject val$subject;
   final Callable val$toWrap;

   a(Subject var1, Callable var2) {
      this.val$subject = var1;
      this.val$toWrap = var2;
   }

   @Override
   public Object call() throws Exception {
      try {
         return Subject.callAs(this.val$subject, this.val$toWrap::call);
      } catch (CompletionException var4) {
         if (var4.getCause() instanceof Exception var2) {
            throw var2;
         } else {
            throw var4;
         }
      }
   }
}
