package com.l7tech.server.transport.jms2;

import java.util.Iterator;
import java.util.TimerTask;
import java.util.TreeSet;
import java.util.AbstractMap.SimpleEntry;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Level;
import java.util.logging.Logger;

final class l extends TimerTask {
   private final ConcurrentHashMap<JmsEndpointConfig.JmsEndpointKey, CachedConnection> a;
   private final AtomicReference<JmsResourceManagerConfig> b;
   private static final String[] c;

   private l(ConcurrentHashMap<JmsEndpointConfig.JmsEndpointKey, CachedConnection> var1, AtomicReference<JmsResourceManagerConfig> var2) {
      this.a = var1;
      this.b = var2;
   }

   @Override
   public void run() {
      String[] var14 = c;
      JmsResourceManager.a.log(Level.FINE, var14[0]);
      JmsResourceManagerConfig var1 = this.b.get();
      long var2 = System.currentTimeMillis();
      int var4 = this.a.size() - var1.getMaximumSize();
      TreeSet var5 = new TreeSet<>(new f(this));

      for (JmsEndpointConfig.JmsEndpointKey var7 : this.a.keySet()) {
         CachedConnection var8 = this.a.get(var7);
         if (JmsResourceManager.a.isLoggable(Level.FINE)) {
            Logger var10000 = JmsResourceManager.a;
            Level var10001 = Level.FINE;
            String var10002 = var8.toString();
            var14 = c;
            var10000.log(var10001, var14[3] + var10002);
            var8.debugStatus();
         }

         JmsEndpointConfig var9 = var8.getEndpointConfig();
         if (var9 != null && var9.isEvictOnExpired()) {
            if (var2 - var8.getCreatedTime() > var1.getMaximumAge() && var1.getMaximumAge() > 0L) {
               if (JmsResourceManager.a.isLoggable(Level.FINE)) {
                  Logger var20 = JmsResourceManager.a;
                  Level var23 = Level.FINE;
                  String var26 = var8.toString();
                  var14 = c;
                  var20.log(var23, var14[1] + var26);
               }

               if (!var8.isActive()) {
                  if (JmsResourceManager.a.isLoggable(Level.FINE)) {
                     Logger var21 = JmsResourceManager.a;
                     Level var24 = Level.FINE;
                     String var27 = var8.toString();
                     var14 = c;
                     var21.log(var24, var14[4] + var27);
                  }

                  var8.close();
                  this.a.remove(var7);
               }
            } else if (var8.isIdleTimeoutExpired()) {
               if (JmsResourceManager.a.isLoggable(Level.FINE)) {
                  Logger var19 = JmsResourceManager.a;
                  Level var22 = Level.FINE;
                  String var25 = var8.toString();
                  var14 = c;
                  var19.log(var22, var14[5] + var25);
               }

               var8.close();
               this.a.remove(var7);
            } else if (var4 > 0) {
               var5.add(new SimpleEntry<>(var7, var8));
            }
         }

         Iterator var10 = var5.iterator();

         for (int var11 = 0; var11 < var4 && var10.hasNext(); var11++) {
            Entry var12 = (Entry)var10.next();
            CachedConnection var13 = (CachedConnection)var12.getValue();
            if (!var13.isDisconnected()) {
               if (JmsResourceManager.a.isLoggable(Level.FINE)) {
                  JmsResourceManager.a.log(Level.FINE, c[2] + var13.toString());
               }

               var13.close();
               this.a.remove(var12.getKey(), var12.getValue());
            }
         }
      }
   }

   static {
      String[] var5 = new String[6];
      int var3 = 0;
      String var2 = "N*ZvvTb<\u001cU{w_Fp:UvjJQ},_61\u0014\u0018Q>LqrOh<>S}?_}l6F}{\u001acs-\u0014\u001dN:Ywi_%i1Akz^%V\u0012g8|Ukr:WlvUk<\u0019_7Q{t\u001a`j6WlvUk<<Uv{Sa}+Q8";
      int var4 = "N*ZvvTb<\u001cU{w_Fp:UvjJQ},_61\u0014\u0018Q>LqrOh<>S}?_}l6F}{\u001acs-\u0014\u001dN:Ywi_%i1Akz^%V\u0012g8|Ukr:WlvUk<\u0019_7Q{t\u001a`j6WlvUk<<Uv{Sa}+Q8"
         .length();
      char var1 = 27;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 78;
         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) {
                     c = var5;
                     return;
                  }

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

                  var2 = "/[8\u0016\b>D\bP \n\u001b?D7s\u0006Y\u001d4\n\u0013[6\r\u00174\n]#/[8\u0016\b>D\u0018F%\u0010\f>\u0000]W1\u0015\u001b{.0mu\u001a\u00115\n\u0018]!\u0010\u00115D";
                  var4 = "/[8\u0016\b>D\bP \n\u001b?D7s\u0006Y\u001d4\n\u0013[6\r\u00174\n]#/[8\u0016\b>D\u0018F%\u0010\f>\u0000]W1\u0015\u001b{.0mu\u001a\u00115\n\u0018]!\u0010\u00115D"
                     .length();
                  var1 = 29;
                  var7 = -1;
            }

            var10000 = 47;
            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] ^ 75);
      }

      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 -> 82;
            case 1 -> 17;
            case 2 -> 122;
            case 3 -> 86;
            case 4 -> 81;
            case 5 -> 116;
            default -> 75;
         });
      }

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