package com.l7tech.server.task;

import com.l7tech.gateway.common.audit.SystemMessages;
import com.l7tech.objectmodel.polback.BackgroundTask;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.assertion.AssertionStatusException;
import com.l7tech.util.ExceptionUtils;

class a implements Runnable {
   final BackgroundTask val$task;
   final String val$jobName;
   final PolicyEnforcementContext val$context;
   final ScheduledPolicyRunner this$0;

   a(ScheduledPolicyRunner var1, BackgroundTask var2, String var3, PolicyEnforcementContext var4) {
      this.this$0 = var1;
      this.val$task = var2;
      this.val$jobName = var3;
      this.val$context = var4;
   }

   @Override
   public void run() {
      try {
         this.val$task.run();
      } catch (RuntimeException var7) {
         RuntimeException var1 = var7;

         try {
            if (var1 instanceof AssertionStatusException) {
               this.this$0
                  .a()
                  .logAndAudit(
                     SystemMessages.SCHEDULER_POLICY_ERROR,
                     new String[]{this.val$jobName, ((AssertionStatusException)var1).getAssertionStatus().getMessage()},
                     ExceptionUtils.getDebugException(var1)
                  );
               return;
            }
         } catch (RuntimeException var6) {
            throw a(var6);
         }

         this.this$0
            .a()
            .logAndAudit(SystemMessages.SCHEDULER_POLICY_ERROR, new String[]{this.val$jobName, var7.getMessage()}, ExceptionUtils.getDebugException(var7));
      } finally {
         this.val$context.close();
      }
   }

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