package com.l7tech.server.module;

import com.l7tech.util.Eithers;
import com.l7tech.util.Functions.Nullary;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallback;

class j implements TransactionCallback<R> {
   final Nullary val$callback;

   j(ServerModuleFileListener var1, Nullary var2) {
      this.val$callback = var2;
   }

   public Object doInTransaction(TransactionStatus var1) {
      try {
         Object var2 = this.val$callback.call();

         try {
            if (!Eithers.isSuccess(var2)) {
               var1.setRollbackOnly();
            }
         } catch (Throwable var3) {
            throw a(var3);
         }

         return var2;
      } catch (Throwable var4) {
         var1.setRollbackOnly();
         throw new RuntimeException(var4);
      }
   }

   private static Throwable a(Throwable var0) {
      return var0;
   }
}
