package com.l7tech.server.jdbc;

import com.l7tech.gateway.common.jdbc.InvalidPropertyException;
import com.l7tech.gateway.common.jdbc.JdbcConnection;
import com.l7tech.util.Background;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.ResourceUtils;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.concurrent.Callable;
import java.util.logging.Level;
import javax.security.auth.Subject;

class g implements Callable<String> {
   final JdbcConnection val$connection;
   final JdbcAdminImpl this$0;
   private static final String[] a;

   g(JdbcAdminImpl var1, JdbcConnection var2) {
      this.this$0 = var1;
      this.val$connection = var2;
   }

   public String call() throws Exception {
      ComboPooledDataSource var1;
      try {
         var1 = this.this$0.g.getTestConnectionPool(this.val$connection);
      } catch (InvalidPropertyException var5) {
         return var5.getMessage();
      } catch (RuntimeException var6) {
         String[] var4 = a;
         String var3 = var4[1];
         JdbcAdminImpl.access$000().log(Level.WARNING, var4[4] + ExceptionUtils.getMessage(var6), ExceptionUtils.getDebugException(var6));
         return var4[2];
      }

      Callable var2 = this::lambda$call$0;

      try {
         if (this.this$0.a(this.val$connection)) {
            return Subject.callAs(null, var2);
         }
      } catch (InvalidPropertyException var7) {
         throw a(var7);
      }

      return (String)var2.call();
   }

   private String lambda$call$0(ComboPooledDataSource var1) throws Exception {
      Connection var2 = null;

      try {
         var2 = var1.getConnection();
      } catch (SQLException var24) {
         SQLException var27 = var24;

         try {
            try {
               if (JdbcAdminImpl.access$100().isLoggable(Level.FINEST)) {
                  JdbcAdminImpl.access$200().log(Level.FINEST, ExceptionUtils.getStackTraceAsString(var27));
               }
            } catch (SQLException var22) {
               throw a(var22);
            }

            Throwable var29 = var1.getLastAcquisitionFailure(var1.getUser(), var1.getPassword());

            Throwable var34;
            label130: {
               try {
                  if (var29 != null) {
                     var34 = var29;
                     break label130;
                  }
               } catch (SQLException var21) {
                  throw a(var21);
               }

               var34 = var27;
            }

            String var35 = ExceptionUtils.getMessage(var34);
            String[] var32 = a;
            String var30 = var32[7] + var35;

            try {
               if (JdbcAdminImpl.access$300().isLoggable(Level.FINEST)) {
                  JdbcAdminImpl.access$400().log(Level.FINEST, var30);
               }
            } catch (SQLException var20) {
               throw a(var20);
            }

            return var30;
         } catch (SQLException var23) {
            SQLException var28 = var23;
            String var33 = ExceptionUtils.getMessage(var24);
            String[] var31 = a;
            String var5 = var31[8] + var33;

            try {
               if (JdbcAdminImpl.access$500().isLoggable(Level.FINEST)) {
                  JdbcAdminImpl.access$600().log(Level.FINEST, var5 + var31[3] + ExceptionUtils.getStackTraceAsString(var28));
               }
            } catch (SQLException var19) {
               throw a(var19);
            }

            return var5;
         }
      } catch (Throwable var25) {
         Throwable var3 = var25;
         String var10000 = var25.getClass().getSimpleName();
         String[] var8 = a;
         String var4 = var8[6] + var10000 + var8[0];

         try {
            if (JdbcAdminImpl.access$700().isLoggable(Level.FINEST)) {
               JdbcAdminImpl.access$800().log(Level.FINEST, var4 + var8[5] + ExceptionUtils.getStackTraceAsString(var3));
            }
         } catch (SQLException var18) {
            throw a(var18);
         }

         return var4;
      } finally {
         ResourceUtils.closeQuietly(var2);
         Background.scheduleOneShot(new r(this, var1), 0L);
      }

      return "";
   }

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

   static {
      String[] var5 = new String[9];
      int var3 = 0;
      String var2 = "Hh(fO0a&=r%lP\"l\u001cy$4P5`\np%y\u00003j\u001bh)zGgl\u0007r.qC3f\u0007rn&=r%lP\"l\u001cy$4P5`\np%y\u00003j\u001bh)zGgl\u0007r.qC3f\u0007rn\u0002H\u0016'=r%lP\"l\u001cy$4P5`\np%y\u00003j\u001bh)zGgl\u0007r.qC3f\u0007rn4\u0002H\u0016\u0012\u001dr%lP\"l\u001cy$4E5}\u0007nl4";
      int var4 = "Hh(fO0a&=r%lP\"l\u001cy$4P5`\np%y\u00003j\u001bh)zGgl\u0007r.qC3f\u0007rn&=r%lP\"l\u001cy$4P5`\np%y\u00003j\u001bh)zGgl\u0007r.qC3f\u0007rn\u0002H\u0016'=r%lP\"l\u001cy$4P5`\np%y\u00003j\u001bh)zGgl\u0007r.qC3f\u0007rn4\u0002H\u0016\u0012\u001dr%lP\"l\u001cy$4E5}\u0007nl4"
         .length();
      char var1 = 7;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 24;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     a = var5;
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var8;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "\u001ai-nW5pSd4aU9w\u0007n4a\u001b,f\u001cw>}O5q\u0000'(jO(}\u001d`u/1(\u001ai-nW5pSd4aU9w\u0007n4a\u001b,f\u001cw>}O5q\u0000'(jO(}\u001d`u/1";
                  var4 = "\u001ai-nW5pSd4aU9w\u0007n4a\u001b,f\u001cw>}O5q\u0000'(jO(}\u001d`u/1(\u001ai-nW5pSd4aU9w\u0007n4a\u001b,f\u001cw>}O5q\u0000'(jO(}\u001d`u/1"
                     .length();
                  var1 = '(';
                  var7 = -1;
            }

            var10000 = 3;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

   private static char[] a(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 23);
      }

      return var10000;
   }

   private static String a(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 112;
            case 1 -> 4;
            case 2 -> 88;
            case 3 -> 12;
            case 4 -> 56;
            case 5 -> 95;
            default -> 23;
         });
      }

      return new String(var10001).intern();
   }
}
