package com.l7tech.server.util;

import com.l7tech.gateway.common.admin.GatewayRuntimeException;
import com.l7tech.util.ExceptionUtils;
import java.util.logging.Level;
import java.util.logging.Logger;

public class MySqlFailureThrowsAdvice extends ThrowsAdviceSupport {
   private static final Logger d;
   private static final String e;
   private static final String f;
   private static final String g;
   private static final String h;
   private static final Class i;
   private static final Class j;
   private static final Class k;
   private static final String[] l;

   public void afterThrowing(Throwable var1) throws GatewayRuntimeException {
      try {
         if (a(var1)) {
            this.b(var1);
         }
      } catch (GatewayRuntimeException var2) {
         throw a(var2);
      }
   }

   static boolean a(Throwable param0) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: bipush 0
      // 01: istore 1
      // 02: aload 0
      // 03: ldc com/mchange/v2/resourcepool/CannotAcquireResourceException
      // 05: invokestatic com/l7tech/util/ExceptionUtils.causedBy (Ljava/lang/Throwable;Ljava/lang/Class;)Z
      // 08: ifeq 10
      // 0b: bipush 1
      // 0c: istore 1
      // 0d: goto 6d
      // 10: getstatic com/l7tech/server/util/MySqlFailureThrowsAdvice.k Ljava/lang/Class;
      // 13: ifnull 6d
      // 16: aload 0
      // 17: getstatic com/l7tech/server/util/MySqlFailureThrowsAdvice.i Ljava/lang/Class;
      // 1a: invokestatic com/l7tech/util/ExceptionUtils.causedBy (Ljava/lang/Throwable;Ljava/lang/Class;)Z
      // 1d: ifne 61
      // 20: goto 27
      // 23: invokestatic com/l7tech/server/util/MySqlFailureThrowsAdvice.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 26: athrow
      // 27: aload 0
      // 28: getstatic com/l7tech/server/util/MySqlFailureThrowsAdvice.k Ljava/lang/Class;
      // 2b: invokestatic com/l7tech/util/ExceptionUtils.causedBy (Ljava/lang/Throwable;Ljava/lang/Class;)Z
      // 2e: ifeq 61
      // 31: goto 38
      // 34: invokestatic com/l7tech/server/util/MySqlFailureThrowsAdvice.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 37: athrow
      // 38: aload 0
      // 39: ldc org/hibernate/exception/JDBCConnectionException
      // 3b: invokestatic com/l7tech/util/ExceptionUtils.getCauseIfCausedBy (Ljava/lang/Throwable;Ljava/lang/Class;)Ljava/lang/Throwable;
      // 3e: checkcast org/hibernate/exception/JDBCConnectionException
      // 41: astore 2
      // 42: aload 2
      // 43: ifnull 5c
      // 46: getstatic com/l7tech/server/util/MySqlFailureThrowsAdvice.l [Ljava/lang/String;
      // 49: bipush 4
      // 4a: aaload
      // 4b: aload 2
      // 4c: invokevirtual org/hibernate/exception/JDBCConnectionException.getSQLState ()Ljava/lang/String;
      // 4f: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 52: ifeq 5e
      // 55: goto 5c
      // 58: invokestatic com/l7tech/server/util/MySqlFailureThrowsAdvice.a (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
      // 5b: athrow
      // 5c: bipush 1
      // 5d: istore 1
      // 5e: goto 6d
      // 61: aload 0
      // 62: getstatic com/l7tech/server/util/MySqlFailureThrowsAdvice.j Ljava/lang/Class;
      // 65: invokestatic com/l7tech/util/ExceptionUtils.causedBy (Ljava/lang/Throwable;Ljava/lang/Class;)Z
      // 68: ifeq 6d
      // 6b: bipush 1
      // 6c: istore 1
      // 6d: iload 1
      // 6e: ireturn
      // try (9 -> 15): 16 org/hibernate/exception/JDBCConnectionException
      // try (11 -> 22): 23 org/hibernate/exception/JDBCConnectionException
      // try (30 -> 39): 40 org/hibernate/exception/JDBCConnectionException
   }

   private void b(Throwable var1) {
      Throwable var2 = null;
      if (this.isSendStackToClient()) {
         var2 = ExceptionUtils.textReplace(var1, true);
      }

      throw new GatewayRuntimeException(GatewayRuntimeException.MESSAGE_TRANSIENT, var2);
   }

   static {
      String[] var5 = new String[9];
      int var3 = 0;
      String var2 = "Tcn\u001bT\u0012du{N98\\hm:[%m\\c9=\u001a1(O >6\u001d\"y\\cu\u007fOjv]s9{^>qDb7\u0005)\"nz)2zuPduKthv\u0013)r\u001cm}x^d}Jd|jI#w\\t7J\\)sWsMuR\bqUBayX:l[hw2zuPduKthv\u0013)r\u001cm}x^d}Jd|jI#w\\t7J\\)sWsMuR\bqUBayX:l[hw\u0005)\"nz)4zuPduKthv\u0013)r\u001cm}x^d}Jd|jI#w\\t7YR'uGipy\\>q]ij_E)}BspuS\u001es{K+6Avu4n\u001bTfuxtN#}\\s\\b^/hFnvt";
      int var4 = "Tcn\u001bT\u0012du{N98\\hm:[%m\\c9=\u001a1(O >6\u001d\"y\\cu\u007fOjv]s9{^>qDb7\u0005)\"nz)2zuPduKthv\u0013)r\u001cm}x^d}Jd|jI#w\\t7J\\)sWsMuR\bqUBayX:l[hw2zuPduKthv\u0013)r\u001cm}x^d}Jd|jI#w\\t7J\\)sWsMuR\bqUBayX:l[hw\u0005)\"nz)4zuPduKthv\u0013)r\u001cm}x^d}Jd|jI#w\\t7YR'uGipy\\>q]ij_E)}BspuS\u001es{K+6Avu4n\u001bTfuxtN#}\\s\\b^/hFnvt"
         .length();
      char var1 = '2';
      int var12 = -1;

      label34:
      while (true) {
         byte var10000 = 15;
         String var10001 = var2.substring(++var12, var12 + var1);
         byte var10002 = -1;

         while (true) {
            String var14 = b(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var14;
                  if ((var12 += var1) >= var4) {
                     l = var5;
                     String[] var15 = l;
                     e = l[1];
                     g = var15[8];
                     f = var15[2];
                     h = var15[7];
                     d = Logger.getLogger(MySqlFailureThrowsAdvice.class.getName());
                     Class var6 = null;
                     Class var7 = null;
                     Class var8 = null;

                     try {
                        String[] var13 = l;
                        var6 = Class.forName(var13[3]);
                        var7 = Class.forName(var13[6]);
                        var8 = Class.forName(var13[5]);
                     } catch (ClassNotFoundException var10) {
                        d.log(Level.INFO, l[0], var10.getMessage());
                     }

                     i = var6;
                     j = var7;
                     k = var8;
                     return;
                  }

                  var1 = var2.charAt(var12);
                  break;
               default:
                  var5[var3++] = var14;
                  if ((var12 += var1) < var4) {
                     var1 = var2.charAt(var12);
                     continue label34;
                  }

                  var2 = "wx]ixFye{\u001e$\u007f\u0011`puSipGiqgD.zQy:T_*xJd}tQ3|PdgRH$pO~}x^\u001e~vF&;L{x9c\u0016YkxuyC.pQ~QoS\"eKc{y";
                  var4 = "wx]ixFye{\u001e$\u007f\u0011`puSipGiqgD.zQy:T_*xJd}tQ3|PdgRH$pO~}x^\u001e~vF&;L{x9c\u0016YkxuyC.pQ~QoS\"eKc{y".length();
                  var1 = '4';
                  var12 = -1;
            }

            var10000 = 2;
            var10001 = var2.substring(++var12, var12 + var1);
            var10002 = 0;
         }
      }
   }

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

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

      return var10000;
   }

   private static String b(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 -> 22;
            case 1 -> 21;
            case 2 -> 50;
            case 3 -> 69;
            case 4 -> 23;
            case 5 -> 61;
            default -> 8;
         });
      }

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