package com.l7tech.server.policy.assertion;

import com.l7tech.gateway.common.audit.AssertionMessages;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.gateway.common.transport.jms.JmsConnection;
import com.l7tech.gateway.common.transport.jms.JmsEndpoint;
import com.l7tech.gateway.common.transport.jms.JmsReplyType;
import com.l7tech.message.Message;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.policy.JmsDynamicProperties;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.JmsMessagePropertyRuleSet;
import com.l7tech.policy.assertion.JmsRoutingAssertion;
import com.l7tech.policy.variable.Syntax;
import com.l7tech.security.xml.SignerInfo;
import com.l7tech.server.DefaultKey;
import com.l7tech.server.ServerConfig;
import com.l7tech.server.StashManagerFactory;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.variable.ExpandVariables;
import com.l7tech.server.transport.jms.JmsConfigException;
import com.l7tech.server.transport.jms.JmsConnectionManager;
import com.l7tech.server.transport.jms.JmsEndpointManager;
import com.l7tech.server.transport.jms.JmsPropertyMapper;
import com.l7tech.server.transport.jms.JmsUtil;
import com.l7tech.server.transport.jms2.JmsEndpointConfig;
import com.l7tech.server.transport.jms2.JmsResourceManager;
import com.l7tech.server.util.ApplicationEventProxy;
import com.l7tech.util.ExceptionUtils;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Session;
import javax.jms.TemporaryQueue;
import javax.naming.NamingException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;

public class ServerJmsRoutingAssertion extends ServerRoutingAssertion<JmsRoutingAssertion> {
   private static final Logger e;
   private static final String f;
   private static final String g;
   private static final int h = 5;
   private static final long i = 1000L;
   private static final long j = 2621440L;
   private static final String k;
   private static final String l;
   private static final String m;
   private static final String n;
   private static final String o;
   private static final String p;
   private static final String q;
   private static final String r;
   private static final String s;
   private final ApplicationContext t;
   private final ApplicationEventProxy u;
   private final ServerConfig v;
   private final JmsEndpointManager w;
   private final JmsConnectionManager x;
   private final StashManagerFactory y;
   private final JmsPropertyMapper z;
   private final JmsResourceManager A;
   private final SignerInfo B;
   private final AtomicBoolean C = new AtomicBoolean(false);
   private final Object D = new Object();
   private JmsConnection E;
   private JmsEndpoint F;
   private JmsEndpointConfig G;
   private final ServerJmsRoutingAssertion.JmsInvalidator H;
   private static final String[] I;

   public ServerJmsRoutingAssertion(JmsRoutingAssertion var1, ApplicationContext var2) {
      super(var1, var2);
      this.t = var2;
      String[] var5 = I;
      this.u = (ApplicationEventProxy)var2.getBean(var5[6], ApplicationEventProxy.class);
      this.v = (ServerConfig)var2.getBean(var5[34], ServerConfig.class);
      this.w = (JmsEndpointManager)var2.getBean(var5[30]);
      this.x = (JmsConnectionManager)var2.getBean(var5[35]);
      this.y = (StashManagerFactory)var2.getBean(var5[27], StashManagerFactory.class);
      this.z = (JmsPropertyMapper)var2.getBean(var5[21], JmsPropertyMapper.class);
      this.A = (JmsResourceManager)var2.getBean(var5[7], JmsResourceManager.class);
      this.H = new ServerJmsRoutingAssertion.JmsInvalidator(this);
      this.u.addApplicationListener(this.H);
      SsgKeyEntry var3 = null;

      try {
         DefaultKey var4 = (DefaultKey)var2.getBean(var5[10], DefaultKey.class);
         var3 = var4.getClientSslInfo();
      } catch (Exception var6) {
         e.log(Level.WARNING, I[32], var6);
      }

      this.B = var3;
   }

   @Override
   public AssertionStatus checkRequest(PolicyEnforcementContext param1) throws IOException {
      // $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:
      // 000: aload 1
      // 001: getstatic com/l7tech/policy/assertion/RoutingStatus.ATTEMPTED Lcom/l7tech/policy/assertion/RoutingStatus;
      // 004: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.setRoutingStatus (Lcom/l7tech/policy/assertion/RoutingStatus;)V 2
      // 009: aload 1
      // 00a: aload 0
      // 00b: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 00e: checkcast com/l7tech/policy/assertion/JmsRoutingAssertion
      // 011: invokevirtual com/l7tech/policy/assertion/JmsRoutingAssertion.getRequestTarget ()Lcom/l7tech/policy/assertion/MessageTargetableSupport;
      // 014: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getTargetMessage (Lcom/l7tech/policy/assertion/MessageTargetable;)Lcom/l7tech/message/Message; 2
      // 019: astore 2
      // 01a: goto 047
      // 01d: astore 3
      // 01e: aload 0
      // 01f: getstatic com/l7tech/gateway/common/audit/AssertionMessages.MESSAGE_TARGET_ERROR Lcom/l7tech/gateway/common/audit/Messages$M;
      // 022: bipush 2
      // 023: anewarray 168
      // 026: dup
      // 027: bipush 0
      // 028: aload 3
      // 029: invokevirtual com/l7tech/policy/variable/NoSuchVariableException.getVariable ()Ljava/lang/String;
      // 02c: aastore
      // 02d: dup
      // 02e: bipush 1
      // 02f: aload 3
      // 030: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 033: aastore
      // 034: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 037: new com/l7tech/server/policy/assertion/AssertionStatusException
      // 03a: dup
      // 03b: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 03e: aload 3
      // 03f: invokevirtual com/l7tech/policy/variable/NoSuchVariableException.getMessage ()Ljava/lang/String;
      // 042: aload 3
      // 043: invokespecial com/l7tech/server/policy/assertion/AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 046: athrow
      // 047: aload 0
      // 048: aload 2
      // 049: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Lcom/l7tech/message/Message;)Z
      // 04c: ifne 057
      // 04f: getstatic com/l7tech/policy/assertion/AssertionStatus.BAD_REQUEST Lcom/l7tech/policy/assertion/AssertionStatus;
      // 052: areturn
      // 053: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 056: athrow
      // 057: aconst_null
      // 058: astore 3
      // 059: aload 0
      // 05a: aload 2
      // 05b: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.handleProcessedSecurityHeader (Lcom/l7tech/message/Message;)V
      // 05e: aload 0
      // 05f: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 062: checkcast com/l7tech/policy/assertion/JmsRoutingAssertion
      // 065: invokevirtual com/l7tech/policy/assertion/JmsRoutingAssertion.isAttachSamlSenderVouches ()Z
      // 068: ifeq 09d
      // 06b: aload 0
      // 06c: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.B Lcom/l7tech/security/xml/SignerInfo;
      // 06f: ifnonnull 084
      // 072: goto 079
      // 075: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 078: athrow
      // 079: aload 0
      // 07a: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_NO_SAML_SIGNER Lcom/l7tech/gateway/common/audit/Messages$M;
      // 07d: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 080: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 083: areturn
      // 084: aload 0
      // 085: aload 0
      // 086: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 089: checkcast com/l7tech/policy/assertion/RoutingAssertionWithSamlSV
      // 08c: aload 2
      // 08d: aload 1
      // 08e: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getDefaultAuthenticationContext ()Lcom/l7tech/server/message/AuthenticationContext; 1
      // 093: invokevirtual com/l7tech/server/message/AuthenticationContext.getLastCredentials ()Lcom/l7tech/policy/assertion/credential/LoginCredentials;
      // 096: aload 0
      // 097: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.B Lcom/l7tech/security/xml/SignerInfo;
      // 09a: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.doAttachSamlSenderVouches (Lcom/l7tech/policy/assertion/RoutingAssertionWithSamlSV;Lcom/l7tech/message/Message;Lcom/l7tech/policy/assertion/credential/LoginCredentials;Lcom/l7tech/security/xml/SignerInfo;)V
      // 09d: aload 0
      // 09e: aload 1
      // 09f: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Lcom/l7tech/server/message/PolicyEnforcementContext;)Lcom/l7tech/policy/JmsDynamicProperties;
      // 0a2: astore 4
      // 0a4: aload 0
      // 0a5: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a ()Z
      // 0a8: ifeq 0d3
      // 0ab: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // 0ae: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 0b1: astore 13
      // 0b3: aload 13
      // 0b5: bipush 44
      // 0b7: aaload
      // 0b8: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 0bb: aload 0
      // 0bc: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.b ()V
      // 0bf: aload 0
      // 0c0: bipush 0
      // 0c1: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.b (Z)Z
      // 0c4: pop
      // 0c5: goto 0d3
      // 0c8: astore 5
      // 0ca: aload 0
      // 0cb: bipush 0
      // 0cc: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.b (Z)Z
      // 0cf: pop
      // 0d0: aload 5
      // 0d2: athrow
      // 0d3: aload 0
      // 0d4: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.v Lcom/l7tech/server/ServerConfig;
      // 0d7: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 0da: astore 13
      // 0dc: aload 13
      // 0de: bipush 23
      // 0e0: aaload
      // 0e1: ldc2_w 1000
      // 0e4: invokevirtual com/l7tech/server/ServerConfig.getTimeUnitProperty (Ljava/lang/String;J)J
      // 0e7: lstore 5
      // 0e9: aload 0
      // 0ea: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.v Lcom/l7tech/server/ServerConfig;
      // 0ed: aload 13
      // 0ef: bipush 8
      // 0f1: aaload
      // 0f2: bipush 5
      // 0f3: invokevirtual com/l7tech/server/ServerConfig.getIntProperty (Ljava/lang/String;I)I
      // 0f6: istore 7
      // 0f8: bipush 0
      // 0f9: istore 8
      // 0fb: aload 0
      // 0fc: aload 4
      // 0fe: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Lcom/l7tech/policy/JmsDynamicProperties;)Lcom/l7tech/server/transport/jms2/JmsEndpointConfig;
      // 101: astore 3
      // 102: bipush 1
      // 103: anewarray 3
      // 106: astore 9
      // 108: new com/l7tech/server/policy/assertion/ab
      // 10b: dup
      // 10c: aload 0
      // 10d: aload 1
      // 10e: aload 3
      // 10f: aload 9
      // 111: invokespecial com/l7tech/server/policy/assertion/ab.<init> (Lcom/l7tech/server/policy/assertion/ServerJmsRoutingAssertion;Lcom/l7tech/server/message/PolicyEnforcementContext;Lcom/l7tech/server/transport/jms2/JmsEndpointConfig;[Ljavax/jms/Destination;)V
      // 114: astore 10
      // 116: aload 0
      // 117: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.A Lcom/l7tech/server/transport/jms2/JmsResourceManager;
      // 11a: aload 3
      // 11b: aload 10
      // 11d: invokevirtual com/l7tech/server/transport/jms2/JmsResourceManager.doWithJmsResources (Lcom/l7tech/server/transport/jms2/JmsEndpointConfig;Lcom/l7tech/server/transport/jms2/JmsResourceManager$JmsResourceCallback;)V
      // 120: aload 10
      // 122: invokevirtual com/l7tech/server/policy/assertion/ab.c ()V
      // 125: goto 3ad
      // 128: astore 11
      // 12a: aload 10
      // 12c: invokevirtual com/l7tech/server/policy/assertion/ab.b ()Z
      // 12f: ifeq 139
      // 132: aload 11
      // 134: athrow
      // 135: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 138: athrow
      // 139: iinc 8 1
      // 13c: iload 8
      // 13e: iload 7
      // 140: if_icmpge 170
      // 143: aload 0
      // 144: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_CANT_CONNECT_RETRYING Lcom/l7tech/gateway/common/audit/Messages$M;
      // 147: bipush 2
      // 148: anewarray 168
      // 14b: dup
      // 14c: bipush 0
      // 14d: iload 8
      // 14f: invokestatic java/lang/String.valueOf (I)Ljava/lang/String;
      // 152: aastore
      // 153: dup
      // 154: bipush 1
      // 155: lload 5
      // 157: invokestatic java/lang/String.valueOf (J)Ljava/lang/String;
      // 15a: aastore
      // 15b: aload 11
      // 15d: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 160: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 163: aload 0
      // 164: lload 5
      // 166: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (J)V
      // 169: goto 187
      // 16c: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 16f: athrow
      // 170: aload 0
      // 171: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_CANT_CONNECT_NOMORETRIES Lcom/l7tech/gateway/common/audit/Messages$M;
      // 174: bipush 1
      // 175: anewarray 168
      // 178: dup
      // 179: bipush 0
      // 17a: iload 7
      // 17c: invokestatic java/lang/String.valueOf (I)Ljava/lang/String;
      // 17f: aastore
      // 180: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 183: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 186: areturn
      // 187: goto 3aa
      // 18a: astore 11
      // 18c: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // 18f: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 192: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 195: bipush 37
      // 197: aaload
      // 198: aload 11
      // 19a: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 19d: aload 10
      // 19f: invokevirtual com/l7tech/server/policy/assertion/ab.b ()Z
      // 1a2: ifeq 1c3
      // 1a5: aload 11
      // 1a7: invokevirtual com/l7tech/server/transport/jms/JmsRuntimeException.getCause ()Ljava/lang/Throwable;
      // 1aa: ifnull 1c0
      // 1ad: goto 1b4
      // 1b0: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1b3: athrow
      // 1b4: aload 11
      // 1b6: invokevirtual com/l7tech/server/transport/jms/JmsRuntimeException.getCause ()Ljava/lang/Throwable;
      // 1b9: goto 1c2
      // 1bc: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1bf: athrow
      // 1c0: aload 11
      // 1c2: athrow
      // 1c3: iinc 8 1
      // 1c6: iload 8
      // 1c8: iload 7
      // 1ca: if_icmpge 202
      // 1cd: aload 0
      // 1ce: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_CANT_CONNECT_RETRYING Lcom/l7tech/gateway/common/audit/Messages$M;
      // 1d1: bipush 2
      // 1d2: anewarray 168
      // 1d5: dup
      // 1d6: bipush 0
      // 1d7: iload 8
      // 1d9: invokestatic java/lang/String.valueOf (I)Ljava/lang/String;
      // 1dc: aastore
      // 1dd: dup
      // 1de: bipush 1
      // 1df: lload 5
      // 1e1: invokestatic java/lang/String.valueOf (J)Ljava/lang/String;
      // 1e4: aastore
      // 1e5: aload 11
      // 1e7: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 1ea: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 1ed: aload 0
      // 1ee: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.A Lcom/l7tech/server/transport/jms2/JmsResourceManager;
      // 1f1: aload 3
      // 1f2: invokevirtual com/l7tech/server/transport/jms2/JmsResourceManager.invalidate (Lcom/l7tech/server/transport/jms2/JmsEndpointConfig;)V
      // 1f5: aload 0
      // 1f6: lload 5
      // 1f8: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (J)V
      // 1fb: goto 22c
      // 1fe: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 201: athrow
      // 202: aload 0
      // 203: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_CANT_CONNECT_NOMORETRIES Lcom/l7tech/gateway/common/audit/Messages$M;
      // 206: bipush 1
      // 207: anewarray 168
      // 20a: dup
      // 20b: bipush 0
      // 20c: iload 7
      // 20e: invokestatic java/lang/String.valueOf (I)Ljava/lang/String;
      // 211: aastore
      // 212: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 215: aload 11
      // 217: invokevirtual com/l7tech/server/transport/jms/JmsRuntimeException.getCause ()Ljava/lang/Throwable;
      // 21a: ifnull 229
      // 21d: aload 11
      // 21f: invokevirtual com/l7tech/server/transport/jms/JmsRuntimeException.getCause ()Ljava/lang/Throwable;
      // 222: goto 22b
      // 225: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 228: athrow
      // 229: aload 11
      // 22b: athrow
      // 22c: goto 3aa
      // 22f: astore 11
      // 231: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // 234: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 237: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 23a: bipush 24
      // 23c: aaload
      // 23d: aload 11
      // 23f: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 242: aload 10
      // 244: invokevirtual com/l7tech/server/policy/assertion/ab.b ()Z
      // 247: ifeq 251
      // 24a: aload 11
      // 24c: athrow
      // 24d: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 250: athrow
      // 251: aload 11
      // 253: invokevirtual javax/jms/JMSException.getLinkedException ()Ljava/lang/Exception;
      // 256: ifnull 26f
      // 259: aload 11
      // 25b: invokevirtual javax/jms/JMSException.getLinkedException ()Ljava/lang/Exception;
      // 25e: instanceof java/lang/ClassCastException
      // 261: ifeq 26f
      // 264: goto 26b
      // 267: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 26a: athrow
      // 26b: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 26e: areturn
      // 26f: iinc 8 1
      // 272: iload 8
      // 274: iload 7
      // 276: if_icmpge 2e4
      // 279: aload 11
      // 27b: ldc javax/jms/InvalidDestinationException
      // 27d: invokestatic com/l7tech/util/ExceptionUtils.causedBy (Ljava/lang/Throwable;Ljava/lang/Class;)Z
      // 280: ifeq 2b1
      // 283: goto 28a
      // 286: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 289: athrow
      // 28a: aload 0
      // 28b: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_CANT_CONNECT_RETRYING Lcom/l7tech/gateway/common/audit/Messages$M;
      // 28e: bipush 2
      // 28f: anewarray 168
      // 292: dup
      // 293: bipush 0
      // 294: iload 8
      // 296: invokestatic java/lang/String.valueOf (I)Ljava/lang/String;
      // 299: aastore
      // 29a: dup
      // 29b: bipush 1
      // 29c: lload 5
      // 29e: invokestatic java/lang/String.valueOf (J)Ljava/lang/String;
      // 2a1: aastore
      // 2a2: aload 11
      // 2a4: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 2a7: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 2aa: goto 2ce
      // 2ad: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2b0: athrow
      // 2b1: aload 0
      // 2b2: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_CANT_CONNECT_RETRYING Lcom/l7tech/gateway/common/audit/Messages$M;
      // 2b5: bipush 2
      // 2b6: anewarray 168
      // 2b9: dup
      // 2ba: bipush 0
      // 2bb: iload 8
      // 2bd: invokestatic java/lang/String.valueOf (I)Ljava/lang/String;
      // 2c0: aastore
      // 2c1: dup
      // 2c2: bipush 1
      // 2c3: lload 5
      // 2c5: invokestatic java/lang/String.valueOf (J)Ljava/lang/String;
      // 2c8: aastore
      // 2c9: aload 11
      // 2cb: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 2ce: aload 0
      // 2cf: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.A Lcom/l7tech/server/transport/jms2/JmsResourceManager;
      // 2d2: aload 3
      // 2d3: invokevirtual com/l7tech/server/transport/jms2/JmsResourceManager.invalidate (Lcom/l7tech/server/transport/jms2/JmsEndpointConfig;)V
      // 2d6: aload 9
      // 2d8: bipush 0
      // 2d9: aconst_null
      // 2da: aastore
      // 2db: aload 0
      // 2dc: lload 5
      // 2de: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (J)V
      // 2e1: goto 2fa
      // 2e4: aload 0
      // 2e5: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_CANT_CONNECT_NOMORETRIES Lcom/l7tech/gateway/common/audit/Messages$M;
      // 2e8: bipush 1
      // 2e9: anewarray 168
      // 2ec: dup
      // 2ed: bipush 0
      // 2ee: iload 7
      // 2f0: invokestatic java/lang/String.valueOf (I)Ljava/lang/String;
      // 2f3: aastore
      // 2f4: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 2f7: aload 11
      // 2f9: athrow
      // 2fa: goto 3aa
      // 2fd: astore 11
      // 2ff: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // 302: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 305: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 308: bipush 38
      // 30a: aaload
      // 30b: aload 11
      // 30d: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 310: aload 10
      // 312: invokevirtual com/l7tech/server/policy/assertion/ab.b ()Z
      // 315: ifeq 31f
      // 318: aload 11
      // 31a: athrow
      // 31b: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 31e: athrow
      // 31f: iinc 8 1
      // 322: iload 8
      // 324: iload 7
      // 326: if_icmpge 34c
      // 329: aload 11
      // 32b: instanceof javax/naming/CommunicationException
      // 32e: ifeq 34c
      // 331: goto 338
      // 334: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 337: athrow
      // 338: aload 0
      // 339: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.A Lcom/l7tech/server/transport/jms2/JmsResourceManager;
      // 33c: aload 3
      // 33d: invokevirtual com/l7tech/server/transport/jms2/JmsResourceManager.invalidate (Lcom/l7tech/server/transport/jms2/JmsEndpointConfig;)V
      // 340: aload 9
      // 342: bipush 0
      // 343: aconst_null
      // 344: aastore
      // 345: goto 3aa
      // 348: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 34b: athrow
      // 34c: iload 8
      // 34e: iload 7
      // 350: if_icmplt 36d
      // 353: aload 0
      // 354: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_CANT_CONNECT_NOMORETRIES Lcom/l7tech/gateway/common/audit/Messages$M;
      // 357: bipush 1
      // 358: anewarray 168
      // 35b: dup
      // 35c: bipush 0
      // 35d: iload 7
      // 35f: invokestatic java/lang/String.valueOf (I)Ljava/lang/String;
      // 362: aastore
      // 363: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 366: goto 36d
      // 369: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 36c: athrow
      // 36d: aload 11
      // 36f: invokestatic com/l7tech/server/transport/jms/JmsUtil.isCausedByExpectedNamingException (Ljava/lang/Throwable;)Z
      // 372: ifeq 37d
      // 375: aconst_null
      // 376: goto 37f
      // 379: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 37c: athrow
      // 37d: aload 11
      // 37f: astore 12
      // 381: aload 0
      // 382: getstatic com/l7tech/gateway/common/audit/AssertionMessages.EXCEPTION_WARNING_WITH_MORE_INFO Lcom/l7tech/gateway/common/audit/Messages$M;
      // 385: bipush 1
      // 386: anewarray 168
      // 389: dup
      // 38a: bipush 0
      // 38b: aload 11
      // 38d: invokestatic com/l7tech/server/transport/jms/JmsUtil.getJNDIErrorMessage (Ljavax/naming/NamingException;)Ljava/lang/String;
      // 390: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 393: astore 13
      // 395: aload 13
      // 397: bipush 15
      // 399: aaload
      // 39a: swap
      // 39b: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 3a0: aastore
      // 3a1: aload 12
      // 3a3: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 3a6: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 3a9: areturn
      // 3aa: goto 108
      // 3ad: getstatic com/l7tech/policy/assertion/AssertionStatus.NONE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 3b0: areturn
      // 3b1: astore 4
      // 3b3: aload 0
      // 3b4: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 3b7: bipush 4
      // 3b8: aaload
      // 3b9: aload 4
      // 3bb: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 3be: aload 3
      // 3bf: ifnull 3d1
      // 3c2: aload 0
      // 3c3: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.A Lcom/l7tech/server/transport/jms2/JmsResourceManager;
      // 3c6: aload 3
      // 3c7: invokevirtual com/l7tech/server/transport/jms2/JmsResourceManager.invalidate (Lcom/l7tech/server/transport/jms2/JmsEndpointConfig;)V
      // 3ca: goto 3d1
      // 3cd: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3d0: athrow
      // 3d1: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 3d4: areturn
      // 3d5: astore 4
      // 3d7: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 3da: astore 13
      // 3dc: aload 13
      // 3de: bipush 56
      // 3e0: aaload
      // 3e1: astore 5
      // 3e3: aload 0
      // 3e4: getstatic com/l7tech/gateway/common/audit/AssertionMessages.EXCEPTION_SEVERE_WITH_MORE_INFO Lcom/l7tech/gateway/common/audit/Messages$M;
      // 3e7: bipush 1
      // 3e8: anewarray 168
      // 3eb: dup
      // 3ec: bipush 0
      // 3ed: aload 5
      // 3ef: aload 4
      // 3f1: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 3f4: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 3f9: aastore
      // 3fa: aload 4
      // 3fc: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 3ff: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 402: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 405: areturn
      // 406: astore 4
      // 408: aload 0
      // 409: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_CONFIGURATION_ERROR Lcom/l7tech/gateway/common/audit/Messages$M;
      // 40c: bipush 1
      // 40d: anewarray 168
      // 410: dup
      // 411: bipush 0
      // 412: aload 4
      // 414: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 417: aastore
      // 418: aload 4
      // 41a: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 41d: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 420: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 423: areturn
      // 424: astore 4
      // 426: aload 4
      // 428: athrow
      // 429: astore 4
      // 42b: aload 0
      // 42c: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 42f: bipush 11
      // 431: aaload
      // 432: aload 4
      // 434: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 437: aload 3
      // 438: ifnull 44a
      // 43b: aload 0
      // 43c: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.A Lcom/l7tech/server/transport/jms2/JmsResourceManager;
      // 43f: aload 3
      // 440: invokevirtual com/l7tech/server/transport/jms2/JmsResourceManager.invalidate (Lcom/l7tech/server/transport/jms2/JmsEndpointConfig;)V
      // 443: goto 44a
      // 446: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 449: athrow
      // 44a: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 44d: areturn
      // try (3 -> 10): 11 com/l7tech/policy/variable/NoSuchVariableException
      // try (45 -> 56): 57 com/l7tech/policy/variable/NoSuchVariableException
      // try (35 -> 41): 41 com/l7tech/policy/variable/NoSuchVariableException
      // try (82 -> 91): 96 null
      // try (96 -> 97): 96 null
      // try (138 -> 145): 146 com/l7tech/server/transport/jms2/JmsConnectionMaxWaitException
      // try (138 -> 145): 194 com/l7tech/server/transport/jms/JmsRuntimeException
      // try (138 -> 145): 270 javax/jms/JMSException
      // try (138 -> 145): 369 javax/naming/NamingException
      // try (45 -> 63): 453 javax/jms/JMSException
      // try (154 -> 179): 179 com/l7tech/policy/variable/NoSuchVariableException
      // try (147 -> 152): 152 com/l7tech/policy/variable/NoSuchVariableException
      // try (64 -> 192): 453 javax/jms/JMSException
      // try (285 -> 292): 293 com/l7tech/policy/variable/NoSuchVariableException
      // try (271 -> 283): 283 com/l7tech/policy/variable/NoSuchVariableException
      // try (249 -> 265): 265 com/l7tech/policy/variable/NoSuchVariableException
      // try (218 -> 247): 247 com/l7tech/policy/variable/NoSuchVariableException
      // try (205 -> 214): 214 com/l7tech/policy/variable/NoSuchVariableException
      // try (195 -> 208): 209 com/l7tech/policy/variable/NoSuchVariableException
      // try (193 -> 296): 453 javax/jms/JMSException
      // try (421 -> 426): 426 com/l7tech/policy/variable/NoSuchVariableException
      // try (405 -> 418): 419 com/l7tech/policy/variable/NoSuchVariableException
      // try (388 -> 403): 403 com/l7tech/policy/variable/NoSuchVariableException
      // try (384 -> 391): 392 com/l7tech/policy/variable/NoSuchVariableException
      // try (370 -> 382): 382 com/l7tech/policy/variable/NoSuchVariableException
      // try (301 -> 326): 326 com/l7tech/policy/variable/NoSuchVariableException
      // try (297 -> 305): 306 com/l7tech/policy/variable/NoSuchVariableException
      // try (297 -> 449): 453 javax/jms/JMSException
      // try (450 -> 452): 453 javax/jms/JMSException
      // try (45 -> 63): 471 com/l7tech/objectmodel/FindException
      // try (64 -> 192): 471 com/l7tech/objectmodel/FindException
      // try (193 -> 296): 471 com/l7tech/objectmodel/FindException
      // try (297 -> 449): 471 com/l7tech/objectmodel/FindException
      // try (450 -> 452): 471 com/l7tech/objectmodel/FindException
      // try (45 -> 63): 494 com/l7tech/server/transport/jms/JmsConfigException
      // try (64 -> 192): 494 com/l7tech/server/transport/jms/JmsConfigException
      // try (193 -> 296): 494 com/l7tech/server/transport/jms/JmsConfigException
      // try (297 -> 449): 494 com/l7tech/server/transport/jms/JmsConfigException
      // try (450 -> 452): 494 com/l7tech/server/transport/jms/JmsConfigException
      // try (45 -> 63): 509 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (64 -> 192): 509 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (193 -> 296): 509 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (297 -> 449): 509 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (450 -> 452): 509 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (45 -> 63): 512 java/lang/Throwable
      // try (64 -> 192): 512 java/lang/Throwable
      // try (193 -> 296): 512 java/lang/Throwable
      // try (297 -> 449): 512 java/lang/Throwable
      // try (450 -> 452): 512 java/lang/Throwable
      // try (454 -> 466): 467 com/l7tech/policy/variable/NoSuchVariableException
      // try (513 -> 525): 526 com/l7tech/policy/variable/NoSuchVariableException
   }

   private void a(long var1) throws JMSException {
      try {
         if (var1 > 0L) {
            try {
               Thread.sleep(var1);
            } catch (InterruptedException var4) {
               throw new JMSException(I[52]);
            }
         }
      } catch (JMSException var5) {
         throw a(var5);
      }
   }

   private void a(String var1, Throwable var2) {
      Throwable var10000;
      label34: {
         try {
            if (JmsUtil.isCausedByExpectedJMSException(var2)) {
               var10000 = null;
               break label34;
            }
         } catch (AssertionStatusException var8) {
            throw a(var8);
         }

         var10000 = var2;
      }

      Throwable var3 = var10000;
      JMSException var4 = (JMSException)ExceptionUtils.getCauseIfCausedBy(var2, JMSException.class);

      label26: {
         try {
            if (var4 == null) {
               var9 = ExceptionUtils.getMessage(var2);
               break label26;
            }
         } catch (AssertionStatusException var7) {
            throw a(var7);
         }

         var9 = JmsUtil.getJMSErrorMessage(var4);
      }

      String var5 = var9;
      if (var2 != var4) {
         String var10 = ExceptionUtils.getMessage(var2);
         String[] var6 = I;
         var5 = var10 + var6[1] + var5;
      }

      this.logAndAudit(AssertionMessages.EXCEPTION_WARNING_WITH_MORE_INFO, new String[]{var1 + I[5] + var5}, var3);
   }

   private boolean a() {
      return this.C.get();
   }

   private boolean b(boolean var1) {
      AtomicBoolean var10000;
      try {
         var10000 = this.C;
         if (!var1) {
            return this.C.compareAndSet(true, var1);
         }
      } catch (AssertionStatusException var2) {
         throw a(var2);
      }

      return var10000.compareAndSet(false, var1);
   }

   private synchronized void b() {
      synchronized (this.D) {
         if (this.a()) {
            this.E = null;
            this.F = null;
            this.G = null;
         }
      }
   }

   private boolean a(Destination var1, JmsReplyType var2) {
      boolean var3 = false;

      try {
         if (!(var1 instanceof TemporaryQueue) || var2 != JmsReplyType.AUTOMATIC) {
            return var3;
         }
      } catch (JMSException var6) {
         throw a(var6);
      }

      var3 = true;
      this.logAndAudit(AssertionMessages.JMS_ROUTING_DELETE_TEMPORARY_QUEUE);

      try {
         ((TemporaryQueue)var1).delete();
      } catch (JMSException var5) {
         e.log(Level.WARNING, I[18], var5);
      }

      return var3;
   }

   private boolean a(Message param1) throws IOException {
      // $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 1
      // 01: istore 2
      // 02: aload 0
      // 03: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.v Lcom/l7tech/server/ServerConfig;
      // 06: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 09: astore 6
      // 0b: aload 6
      // 0d: bipush 45
      // 0f: aaload
      // 10: ldc2_w 5242880
      // 13: invokevirtual com/l7tech/server/ServerConfig.getLongProperty (Ljava/lang/String;J)J
      // 16: lstore 3
      // 17: aload 1
      // 18: ldc com/l7tech/message/MimeKnob
      // 1a: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 1d: checkcast com/l7tech/message/MimeKnob
      // 20: astore 5
      // 22: aload 5
      // 24: ifnull 35
      // 27: aload 1
      // 28: invokevirtual com/l7tech/message/Message.isInitialized ()Z
      // 2b: ifne 4f
      // 2e: goto 35
      // 31: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 34: athrow
      // 35: aload 0
      // 36: getstatic com/l7tech/gateway/common/audit/AssertionMessages.EXCEPTION_WARNING_WITH_MORE_INFO Lcom/l7tech/gateway/common/audit/Messages$M;
      // 39: bipush 1
      // 3a: anewarray 168
      // 3d: dup
      // 3e: bipush 0
      // 3f: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 42: bipush 54
      // 44: aaload
      // 45: aastore
      // 46: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 49: bipush 0
      // 4a: ireturn
      // 4b: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4e: athrow
      // 4f: lload 3
      // 50: lconst_0
      // 51: lcmp
      // 52: ifle 71
      // 55: aload 5
      // 57: invokeinterface com/l7tech/message/MimeKnob.getContentLength ()J 1
      // 5c: lload 3
      // 5d: lcmp
      // 5e: ifle 71
      // 61: goto 68
      // 64: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 67: athrow
      // 68: aload 0
      // 69: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_REQUEST_TOO_LARGE Lcom/l7tech/gateway/common/audit/Messages$M;
      // 6c: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 6f: bipush 0
      // 70: istore 2
      // 71: iload 2
      // 72: ireturn
      // try (17 -> 22): 23 java/io/IOException
      // try (19 -> 38): 38 java/io/IOException
      // try (40 -> 49): 50 java/io/IOException
   }

   private javax.jms.Message a(PolicyEnforcementContext param1, Session param2, JmsResourceManager.JndiContextProvider param3, JmsEndpointConfig param4) throws IOException, JMSException, NamingException {
      // $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:
      // 000: aload 4
      // 002: invokevirtual com/l7tech/server/transport/jms2/JmsEndpointConfig.getEndpoint ()Lcom/l7tech/gateway/common/transport/jms/JmsEndpoint;
      // 005: astore 5
      // 007: aload 1
      // 008: aload 0
      // 009: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 00c: checkcast com/l7tech/policy/assertion/JmsRoutingAssertion
      // 00f: invokevirtual com/l7tech/policy/assertion/JmsRoutingAssertion.getRequestTarget ()Lcom/l7tech/policy/assertion/MessageTargetableSupport;
      // 012: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getTargetMessage (Lcom/l7tech/policy/assertion/MessageTargetable;)Lcom/l7tech/message/Message; 2
      // 017: astore 8
      // 019: goto 04b
      // 01c: astore 9
      // 01e: aload 0
      // 01f: getstatic com/l7tech/gateway/common/audit/AssertionMessages.MESSAGE_TARGET_ERROR Lcom/l7tech/gateway/common/audit/Messages$M;
      // 022: bipush 2
      // 023: anewarray 168
      // 026: dup
      // 027: bipush 0
      // 028: aload 9
      // 02a: invokevirtual com/l7tech/policy/variable/NoSuchVariableException.getVariable ()Ljava/lang/String;
      // 02d: aastore
      // 02e: dup
      // 02f: bipush 1
      // 030: aload 9
      // 032: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 035: aastore
      // 036: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 039: new com/l7tech/server/policy/assertion/AssertionStatusException
      // 03c: dup
      // 03d: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 040: aload 9
      // 042: invokevirtual com/l7tech/policy/variable/NoSuchVariableException.getMessage ()Ljava/lang/String;
      // 045: aload 9
      // 047: invokespecial com/l7tech/server/policy/assertion/AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 04a: athrow
      // 04b: aload 8
      // 04d: invokevirtual com/l7tech/message/Message.getMimeKnob ()Lcom/l7tech/message/MimeKnob;
      // 050: astore 9
      // 052: new com/l7tech/util/PoolByteArrayOutputStream
      // 055: dup
      // 056: invokespecial com/l7tech/util/PoolByteArrayOutputStream.<init> ()V
      // 059: astore 10
      // 05b: aload 9
      // 05d: invokeinterface com/l7tech/message/MimeKnob.getEntireMessageBodyAsInputStream ()Ljava/io/InputStream; 1
      // 062: aload 10
      // 064: invokestatic com/l7tech/util/IOUtils.copyStream (Ljava/io/InputStream;Ljava/io/OutputStream;)J
      // 067: pop2
      // 068: aload 10
      // 06a: invokevirtual com/l7tech/util/PoolByteArrayOutputStream.toByteArray ()[B
      // 06d: astore 7
      // 06f: aload 10
      // 071: invokevirtual com/l7tech/util/PoolByteArrayOutputStream.close ()V
      // 074: goto 08d
      // 077: astore 11
      // 079: aload 10
      // 07b: invokevirtual com/l7tech/util/PoolByteArrayOutputStream.close ()V
      // 07e: goto 08a
      // 081: astore 12
      // 083: aload 11
      // 085: aload 12
      // 087: invokevirtual java/lang/Throwable.addSuppressed (Ljava/lang/Throwable;)V
      // 08a: aload 11
      // 08c: athrow
      // 08d: goto 0a4
      // 090: astore 10
      // 092: new com/l7tech/util/CausedIOException
      // 095: dup
      // 096: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 099: astore 15
      // 09b: aload 15
      // 09d: bipush 25
      // 09f: aaload
      // 0a0: invokespecial com/l7tech/util/CausedIOException.<init> (Ljava/lang/String;)V
      // 0a3: athrow
      // 0a4: aload 5
      // 0a6: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getOutboundMessageType ()Lcom/l7tech/gateway/common/transport/jms/JmsOutboundMessageType;
      // 0a9: astore 10
      // 0ab: aload 10
      // 0ad: invokevirtual com/l7tech/gateway/common/transport/jms/JmsOutboundMessageType.isDefaultsToText ()Z
      // 0b0: istore 11
      // 0b2: aload 10
      // 0b4: invokevirtual com/l7tech/gateway/common/transport/jms/JmsOutboundMessageType.isCopyRequestType ()Z
      // 0b7: ifeq 0ea
      // 0ba: aload 8
      // 0bc: ldc com/l7tech/message/JmsKnob
      // 0be: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 0c1: ifnull 0ea
      // 0c4: goto 0cb
      // 0c7: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ca: athrow
      // 0cb: aload 8
      // 0cd: invokevirtual com/l7tech/message/Message.getJmsKnob ()Lcom/l7tech/message/JmsKnob;
      // 0d0: invokeinterface com/l7tech/message/JmsKnob.isBytesMessage ()Z 1
      // 0d5: ifne 0e7
      // 0d8: goto 0df
      // 0db: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0de: athrow
      // 0df: bipush 1
      // 0e0: goto 0e8
      // 0e3: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e6: athrow
      // 0e7: bipush 0
      // 0e8: istore 11
      // 0ea: iload 11
      // 0ec: ifeq 114
      // 0ef: aload 0
      // 0f0: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_CREATE_REQUEST_AS_TEXT_MESSAGE Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0f3: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 0f6: aload 2
      // 0f7: new java/lang/String
      // 0fa: dup
      // 0fb: aload 7
      // 0fd: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 100: astore 15
      // 102: aload 15
      // 104: bipush 46
      // 106: aaload
      // 107: invokespecial java/lang/String.<init> ([BLjava/lang/String;)V
      // 10a: invokeinterface javax/jms/Session.createTextMessage (Ljava/lang/String;)Ljavax/jms/TextMessage; 2
      // 10f: astore 6
      // 111: goto 130
      // 114: aload 0
      // 115: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_CREATE_REQUEST_AS_BYTES_MESSAGE Lcom/l7tech/gateway/common/audit/Messages$M;
      // 118: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 11b: aload 2
      // 11c: invokeinterface javax/jms/Session.createBytesMessage ()Ljavax/jms/BytesMessage; 1
      // 121: astore 12
      // 123: aload 12
      // 125: aload 7
      // 127: invokeinterface javax/jms/BytesMessage.writeBytes ([B)V 2
      // 12c: aload 12
      // 12e: astore 6
      // 130: aload 5
      // 132: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getReplyType ()Lcom/l7tech/gateway/common/transport/jms/JmsReplyType;
      // 135: astore 12
      // 137: getstatic com/l7tech/server/policy/assertion/aa.a [I
      // 13a: aload 12
      // 13c: invokevirtual com/l7tech/gateway/common/transport/jms/JmsReplyType.ordinal ()I
      // 13f: iaload
      // 140: tableswitch 234 1 3 28 54 89
      // 15c: aload 0
      // 15d: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_REQUEST_WITH_NO_REPLY Lcom/l7tech/gateway/common/audit/Messages$M;
      // 160: bipush 1
      // 161: anewarray 168
      // 164: dup
      // 165: bipush 0
      // 166: aload 5
      // 168: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getDestinationName ()Ljava/lang/String;
      // 16b: aastore
      // 16c: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 16f: aload 6
      // 171: areturn
      // 172: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 175: athrow
      // 176: aload 0
      // 177: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_REQUEST_WITH_AUTOMATIC Lcom/l7tech/gateway/common/audit/Messages$M;
      // 17a: bipush 1
      // 17b: anewarray 168
      // 17e: dup
      // 17f: bipush 0
      // 180: aload 5
      // 182: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getDestinationName ()Ljava/lang/String;
      // 185: aastore
      // 186: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 189: aload 6
      // 18b: aload 2
      // 18c: invokeinterface javax/jms/Session.createTemporaryQueue ()Ljavax/jms/TemporaryQueue; 1
      // 191: invokeinterface javax/jms/Message.setJMSReplyTo (Ljavax/jms/Destination;)V 2
      // 196: aload 6
      // 198: areturn
      // 199: aload 0
      // 19a: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_REQUEST_WITH_REPLY_TO_OTHER Lcom/l7tech/gateway/common/audit/Messages$M;
      // 19d: bipush 2
      // 19e: anewarray 168
      // 1a1: dup
      // 1a2: bipush 0
      // 1a3: aload 5
      // 1a5: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getDestinationName ()Ljava/lang/String;
      // 1a8: aastore
      // 1a9: dup
      // 1aa: bipush 1
      // 1ab: aload 5
      // 1ad: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getReplyToQueueName ()Ljava/lang/String;
      // 1b0: aastore
      // 1b1: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 1b4: aload 5
      // 1b6: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getReplyToQueueName ()Ljava/lang/String;
      // 1b9: astore 13
      // 1bb: aload 13
      // 1bd: ifnull 1cf
      // 1c0: aload 13
      // 1c2: invokevirtual java/lang/String.length ()I
      // 1c5: ifne 1e1
      // 1c8: goto 1cf
      // 1cb: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1ce: athrow
      // 1cf: new java/lang/IllegalStateException
      // 1d2: dup
      // 1d3: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 1d6: bipush 22
      // 1d8: aaload
      // 1d9: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 1dc: athrow
      // 1dd: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1e0: athrow
      // 1e1: aload 6
      // 1e3: aload 3
      // 1e4: aload 13
      // 1e6: invokeinterface com/l7tech/server/transport/jms2/JmsResourceManager$JndiContextProvider.lookup (Ljava/lang/String;)Ljava/lang/Object; 2
      // 1eb: ldc javax/jms/Destination
      // 1ed: invokestatic com/l7tech/server/transport/jms/JmsUtil.cast (Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
      // 1f0: checkcast javax/jms/Destination
      // 1f3: invokeinterface javax/jms/Message.setJMSReplyTo (Ljavax/jms/Destination;)V 2
      // 1f8: aload 4
      // 1fa: invokevirtual com/l7tech/server/transport/jms2/JmsEndpointConfig.getEndpoint ()Lcom/l7tech/gateway/common/transport/jms/JmsEndpoint;
      // 1fd: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.isUseMessageIdForCorrelation ()Z
      // 200: ifne 227
      // 203: aload 1
      // 204: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getRequestId ()Lcom/l7tech/gateway/common/RequestId; 1
      // 209: invokevirtual com/l7tech/gateway/common/RequestId.toString ()Ljava/lang/String;
      // 20c: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 20f: astore 15
      // 211: aload 15
      // 213: bipush 53
      // 215: aaload
      // 216: swap
      // 217: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 21c: astore 14
      // 21e: aload 6
      // 220: aload 14
      // 222: invokeinterface javax/jms/Message.setJMSCorrelationID (Ljava/lang/String;)V 2
      // 227: aload 6
      // 229: areturn
      // 22a: new java/lang/IllegalStateException
      // 22d: dup
      // 22e: aload 12
      // 230: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 233: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 236: bipush 40
      // 238: aaload
      // 239: swap
      // 23a: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 23f: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 242: athrow
      // try (3 -> 10): 11 com/l7tech/policy/variable/NoSuchVariableException
      // try (42 -> 50): 53 java/lang/Throwable
      // try (54 -> 56): 57 java/lang/Throwable
      // try (38 -> 63): 64 com/l7tech/common/mime/NoSuchPartException
      // try (80 -> 87): 88 com/l7tech/policy/variable/NoSuchVariableException
      // try (83 -> 94): 95 com/l7tech/policy/variable/NoSuchVariableException
      // try (90 -> 99): 99 com/l7tech/policy/variable/NoSuchVariableException
      // try (135 -> 152): 152 com/l7tech/policy/variable/NoSuchVariableException
      // try (188 -> 193): 194 com/l7tech/policy/variable/NoSuchVariableException
      // try (190 -> 203): 203 com/l7tech/policy/variable/NoSuchVariableException
   }

   private String a(javax.jms.Message param1, JmsEndpoint param2) throws JMSException {
      // $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: aload 2
      // 01: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getReplyType ()Lcom/l7tech/gateway/common/transport/jms/JmsReplyType;
      // 04: getstatic com/l7tech/gateway/common/transport/jms/JmsReplyType.AUTOMATIC Lcom/l7tech/gateway/common/transport/jms/JmsReplyType;
      // 07: if_acmpne 35
      // 0a: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // 0d: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 10: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 13: ifeq 30
      // 16: goto 1d
      // 19: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1c: athrow
      // 1d: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // 20: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 23: bipush 13
      // 25: aaload
      // 26: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 29: goto 30
      // 2c: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2f: athrow
      // 30: aconst_null
      // 31: astore 3
      // 32: goto 96
      // 35: new java/lang/StringBuilder
      // 38: dup
      // 39: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 3c: astore 6
      // 3e: aload 6
      // 40: bipush 0
      // 41: aaload
      // 42: invokespecial java/lang/StringBuilder.<init> (Ljava/lang/String;)V
      // 45: astore 4
      // 47: aload 2
      // 48: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.isUseMessageIdForCorrelation ()Z
      // 4b: ifeq 7c
      // 4e: aload 1
      // 4f: invokeinterface javax/jms/Message.getJMSMessageID ()Ljava/lang/String; 1
      // 54: astore 5
      // 56: aload 5
      // 58: ifnonnull 71
      // 5b: aload 0
      // 5c: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_MISSING_MESSAGE_ID Lcom/l7tech/gateway/common/audit/Messages$M;
      // 5f: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 62: new com/l7tech/server/policy/assertion/AssertionStatusException
      // 65: dup
      // 66: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 69: invokespecial com/l7tech/server/policy/assertion/AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;)V
      // 6c: athrow
      // 6d: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 70: athrow
      // 71: aload 4
      // 73: aload 5
      // 75: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 78: pop
      // 79: goto 88
      // 7c: aload 4
      // 7e: aload 1
      // 7f: invokeinterface javax/jms/Message.getJMSCorrelationID ()Ljava/lang/String; 1
      // 84: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 87: pop
      // 88: aload 4
      // 8a: ldc "'"
      // 8c: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 8f: pop
      // 90: aload 4
      // 92: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 95: astore 3
      // 96: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // 99: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 9c: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 9f: ifeq d3
      // a2: aload 3
      // a3: ifnull c7
      // a6: goto ad
      // a9: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // ac: athrow
      // ad: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // b0: aload 3
      // b1: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // b4: bipush 51
      // b6: aaload
      // b7: swap
      // b8: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // bd: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // c0: goto d3
      // c3: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // c6: athrow
      // c7: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // ca: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // cd: bipush 49
      // cf: aaload
      // d0: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // d3: aload 3
      // d4: areturn
      // try (0 -> 8): 9 javax/jms/JMSException
      // try (4 -> 16): 17 javax/jms/JMSException
      // try (37 -> 47): 47 javax/jms/JMSException
      // try (66 -> 72): 73 javax/jms/JMSException
      // try (70 -> 84): 84 javax/jms/JMSException
   }

   private JmsEndpoint c() throws FindException {
      JmsEndpoint var1;
      synchronized (this.D) {
         var1 = this.F;
      }

      if (var1 == null) {
         var1 = this.d();
         synchronized (this.D) {
            this.F = var1;
         }
      }

      return var1;
   }

   private JmsEndpoint d() throws FindException {
      Goid var10000;
      label16: {
         try {
            if (this.assertion.getEndpointOid() == null) {
               var10000 = null;
               break label16;
            }
         } catch (FindException var2) {
            throw a(var2);
         }

         var10000 = new Goid(this.assertion.getEndpointOid());
      }

      Goid var1 = var10000;
      return (JmsEndpoint)this.w.findByPrimaryKey(var1);
   }

   private JmsConnection a(JmsEndpoint param1) throws FindException {
      // $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: aload 0
      // 01: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.D Ljava/lang/Object;
      // 04: dup
      // 05: astore 3
      // 06: monitorenter
      // 07: aload 0
      // 08: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.E Lcom/l7tech/gateway/common/transport/jms/JmsConnection;
      // 0b: astore 2
      // 0c: aload 3
      // 0d: monitorexit
      // 0e: goto 18
      // 11: astore 4
      // 13: aload 3
      // 14: monitorexit
      // 15: aload 4
      // 17: athrow
      // 18: aload 2
      // 19: ifnonnull 81
      // 1c: aload 1
      // 1d: ifnonnull 58
      // 20: goto 27
      // 23: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 26: athrow
      // 27: aload 0
      // 28: getstatic com/l7tech/gateway/common/audit/AssertionMessages.JMS_ROUTING_NON_EXISTENT_ENDPOINT Lcom/l7tech/gateway/common/audit/Messages$M;
      // 2b: bipush 1
      // 2c: anewarray 168
      // 2f: dup
      // 30: bipush 0
      // 31: aload 0
      // 32: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 35: checkcast com/l7tech/policy/assertion/JmsRoutingAssertion
      // 38: invokevirtual com/l7tech/policy/assertion/JmsRoutingAssertion.getEndpointOid ()Lcom/l7tech/objectmodel/Goid;
      // 3b: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 3e: aload 0
      // 3f: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 42: checkcast com/l7tech/policy/assertion/JmsRoutingAssertion
      // 45: invokevirtual com/l7tech/policy/assertion/JmsRoutingAssertion.getEndpointName ()Ljava/lang/String;
      // 48: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001/\u0001" ]
      // 4d: aastore
      // 4e: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 51: goto 81
      // 54: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 57: athrow
      // 58: aload 0
      // 59: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.x Lcom/l7tech/server/transport/jms/JmsConnectionManager;
      // 5c: aload 1
      // 5d: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getConnectionGoid ()Lcom/l7tech/objectmodel/Goid;
      // 60: invokeinterface com/l7tech/server/transport/jms/JmsConnectionManager.findByPrimaryKey (Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/objectmodel/PersistentEntity; 2
      // 65: checkcast com/l7tech/gateway/common/transport/jms/JmsConnection
      // 68: astore 2
      // 69: aload 0
      // 6a: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.D Ljava/lang/Object;
      // 6d: dup
      // 6e: astore 3
      // 6f: monitorenter
      // 70: aload 0
      // 71: aload 2
      // 72: putfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.E Lcom/l7tech/gateway/common/transport/jms/JmsConnection;
      // 75: aload 3
      // 76: monitorexit
      // 77: goto 81
      // 7a: astore 5
      // 7c: aload 3
      // 7d: monitorexit
      // 7e: aload 5
      // 80: athrow
      // 81: aload 2
      // 82: areturn
      // try (5 -> 10): 11 null
      // try (11 -> 14): 11 null
      // try (18 -> 42): 42 com/l7tech/objectmodel/FindException
      // try (16 -> 20): 21 com/l7tech/objectmodel/FindException
      // try (56 -> 61): 62 null
      // try (62 -> 65): 62 null
   }

   private JmsEndpointConfig a(JmsDynamicProperties param1) throws FindException {
      // $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: aload 0
      // 01: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.D Ljava/lang/Object;
      // 04: dup
      // 05: astore 3
      // 06: monitorenter
      // 07: aload 0
      // 08: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.G Lcom/l7tech/server/transport/jms2/JmsEndpointConfig;
      // 0b: astore 2
      // 0c: aload 3
      // 0d: monitorexit
      // 0e: goto 18
      // 11: astore 4
      // 13: aload 3
      // 14: monitorexit
      // 15: aload 4
      // 17: athrow
      // 18: aload 2
      // 19: ifnull 30
      // 1c: aload 2
      // 1d: invokevirtual com/l7tech/server/transport/jms2/JmsEndpointConfig.isDynamic ()Z
      // 20: ifne 30
      // 23: goto 2a
      // 26: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 29: athrow
      // 2a: aload 2
      // 2b: areturn
      // 2c: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2f: athrow
      // 30: aload 0
      // 31: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.c ()Lcom/l7tech/gateway/common/transport/jms/JmsEndpoint;
      // 34: astore 3
      // 35: aload 3
      // 36: ifnonnull 4b
      // 39: new com/l7tech/objectmodel/FindException
      // 3c: dup
      // 3d: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 40: bipush 55
      // 42: aaload
      // 43: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;)V
      // 46: athrow
      // 47: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4a: athrow
      // 4b: aload 0
      // 4c: aload 3
      // 4d: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Lcom/l7tech/gateway/common/transport/jms/JmsEndpoint;)Lcom/l7tech/gateway/common/transport/jms/JmsConnection;
      // 50: astore 4
      // 52: aload 4
      // 54: ifnonnull 69
      // 57: new com/l7tech/objectmodel/FindException
      // 5a: dup
      // 5b: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 5e: bipush 14
      // 60: aaload
      // 61: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;)V
      // 64: athrow
      // 65: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 68: athrow
      // 69: aload 3
      // 6a: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.isTemplate ()Z
      // 6d: ifne 7f
      // 70: aload 4
      // 72: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.isTemplate ()Z
      // 75: ifeq b6
      // 78: goto 7f
      // 7b: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 7e: athrow
      // 7f: new com/l7tech/server/transport/jms2/JmsEndpointConfig
      // 82: dup
      // 83: aload 4
      // 85: aload 3
      // 86: aload 0
      // 87: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.z Lcom/l7tech/server/transport/jms/JmsPropertyMapper;
      // 8a: aload 0
      // 8b: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.t Lorg/springframework/context/ApplicationContext;
      // 8e: aload 1
      // 8f: ifnull a1
      // 92: goto 99
      // 95: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 98: athrow
      // 99: aload 1
      // 9a: goto a8
      // 9d: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // a0: athrow
      // a1: new com/l7tech/policy/JmsDynamicProperties
      // a4: dup
      // a5: invokespecial com/l7tech/policy/JmsDynamicProperties.<init> ()V
      // a8: invokespecial com/l7tech/server/transport/jms2/JmsEndpointConfig.<init> (Lcom/l7tech/gateway/common/transport/jms/JmsConnection;Lcom/l7tech/gateway/common/transport/jms/JmsEndpoint;Lcom/l7tech/server/transport/jms/JmsPropertyMapper;Lorg/springframework/context/ApplicationContext;Lcom/l7tech/policy/JmsDynamicProperties;)V
      // ab: astore 5
      // ad: aload 0
      // ae: aload 5
      // b0: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Lcom/l7tech/server/transport/jms2/JmsEndpointConfig;)V
      // b3: aload 5
      // b5: areturn
      // b6: aload 0
      // b7: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.D Ljava/lang/Object;
      // ba: dup
      // bb: astore 5
      // bd: monitorenter
      // be: aload 0
      // bf: new com/l7tech/server/transport/jms2/JmsEndpointConfig
      // c2: dup
      // c3: aload 4
      // c5: aload 3
      // c6: aload 0
      // c7: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.z Lcom/l7tech/server/transport/jms/JmsPropertyMapper;
      // ca: aload 0
      // cb: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.t Lorg/springframework/context/ApplicationContext;
      // ce: invokespecial com/l7tech/server/transport/jms2/JmsEndpointConfig.<init> (Lcom/l7tech/gateway/common/transport/jms/JmsConnection;Lcom/l7tech/gateway/common/transport/jms/JmsEndpoint;Lcom/l7tech/server/transport/jms/JmsPropertyMapper;Lorg/springframework/context/ApplicationContext;)V
      // d1: dup_x1
      // d2: putfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.G Lcom/l7tech/server/transport/jms2/JmsEndpointConfig;
      // d5: aload 5
      // d7: monitorexit
      // d8: areturn
      // d9: astore 6
      // db: aload 5
      // dd: monitorexit
      // de: aload 6
      // e0: athrow
      // try (5 -> 10): 11 null
      // try (11 -> 14): 11 null
      // try (66 -> 81): 81 com/l7tech/objectmodel/FindException
      // try (60 -> 76): 77 com/l7tech/objectmodel/FindException
      // try (57 -> 63): 64 com/l7tech/objectmodel/FindException
      // try (46 -> 55): 55 com/l7tech/objectmodel/FindException
      // try (31 -> 40): 40 com/l7tech/objectmodel/FindException
      // try (18 -> 26): 26 com/l7tech/objectmodel/FindException
      // try (16 -> 21): 22 com/l7tech/objectmodel/FindException
      // try (98 -> 112): 113 null
      // try (113 -> 116): 113 null
   }

   private void a(JmsEndpointConfig var1) {
      try {
         var1.validate();
      } catch (JmsConfigException var3) {
         this.logAndAudit(AssertionMessages.JMS_ROUTING_TEMPLATE_ERROR, I[3] + var3.getMessage());
         throw new AssertionStatusException(AssertionStatus.FAILED);
      }
   }

   private JmsDynamicProperties a(PolicyEnforcementContext var1) {
      JmsDynamicProperties var2 = this.assertion.getDynamicJmsRoutingProperties();
      if (var2 != null) {
         var2 = this.a(var1, var2);
      }

      return var2;
   }

   private JmsDynamicProperties a(PolicyEnforcementContext var1, JmsDynamicProperties var2) {
      JmsDynamicProperties var3 = new JmsDynamicProperties();
      Map var4 = var1.getVariableMap(this.assertion.getVariablesUsed(), this.getAudit());

      try {
         var3.setDestQName(this.a(var2.getDestQName(), var4));
         var3.setDestUserName(this.a(var2.getDestUserName(), var4));
         var3.setDestPassword(this.a(var2.getDestPassword(), var4));
         var3.setReplytoQName(this.a(var2.getReplytoQName(), var4));
         var3.setJndiUrl(this.a(var2.getJndiUrl(), var4));
         var3.setJndiUserName(this.a(var2.getJndiUserName(), var4));
         var3.setJndiPassword(this.a(var2.getJndiPassword(), var4));
         var3.setIcfName(this.a(var2.getIcfName(), var4));
         var3.setQcfName(this.a(var2.getQcfName(), var4));
         return var3;
      } catch (IllegalArgumentException var6) {
         this.logAndAudit(AssertionMessages.JMS_ROUTING_TEMPLATE_ERROR, I[31] + var6.getMessage());
         throw new AssertionStatusException(AssertionStatus.FAILED);
      }
   }

   private String a(String var1, Map<String, Object> var2) {
      String var3 = var1;

      try {
         if (var3 == null || !var3.contains(Syntax.SYNTAX_PREFIX)) {
            return var3;
         }
      } catch (AssertionStatusException var4) {
         throw a(var4);
      }

      return ExpandVariables.process(var1, var2, this.getAudit(), true);
   }

   private void a(PolicyEnforcementContext param1, JmsMessagePropertyRuleSet param2, Map<String, Object> param3, Map<String, Object> param4) {
      // $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:
      // 000: aload 2
      // 001: invokevirtual com/l7tech/policy/assertion/JmsMessagePropertyRuleSet.isPassThruAll ()Z
      // 004: ifeq 088
      // 007: aload 3
      // 008: invokeinterface java/util/Map.keySet ()Ljava/util/Set; 1
      // 00d: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 012: astore 5
      // 014: aload 5
      // 016: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 01b: ifeq 069
      // 01e: aload 5
      // 020: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 025: checkcast java/lang/String
      // 028: astore 6
      // 02a: aload 6
      // 02c: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 02f: bipush 26
      // 031: aaload
      // 032: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 035: ifne 066
      // 038: aload 6
      // 03a: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 03d: bipush 36
      // 03f: aaload
      // 040: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 043: ifne 066
      // 046: goto 04d
      // 049: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 04c: athrow
      // 04d: aload 4
      // 04f: aload 6
      // 051: aload 3
      // 052: aload 6
      // 054: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 059: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 05e: pop
      // 05f: goto 066
      // 062: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 065: athrow
      // 066: goto 014
      // 069: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // 06c: getstatic java/util/logging/Level.FINEST Ljava/util/logging/Level;
      // 06f: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 072: ifeq 1dc
      // 075: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // 078: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 07b: bipush 41
      // 07d: aaload
      // 07e: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 081: goto 1dc
      // 084: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 087: athrow
      // 088: new java/lang/StringBuilder
      // 08b: dup
      // 08c: invokespecial java/lang/StringBuilder.<init> ()V
      // 08f: astore 5
      // 091: aload 2
      // 092: invokevirtual com/l7tech/policy/assertion/JmsMessagePropertyRuleSet.getRules ()[Lcom/l7tech/policy/assertion/JmsMessagePropertyRule;
      // 095: astore 6
      // 097: aload 6
      // 099: arraylength
      // 09a: istore 7
      // 09c: bipush 0
      // 09d: istore 8
      // 09f: iload 8
      // 0a1: iload 7
      // 0a3: if_icmpge 0cd
      // 0a6: aload 6
      // 0a8: iload 8
      // 0aa: aaload
      // 0ab: astore 9
      // 0ad: aload 9
      // 0af: invokevirtual com/l7tech/policy/assertion/JmsMessagePropertyRule.isPassThru ()Z
      // 0b2: ifne 0c7
      // 0b5: aload 5
      // 0b7: aload 9
      // 0b9: invokevirtual com/l7tech/policy/assertion/JmsMessagePropertyRule.getCustomPattern ()Ljava/lang/String;
      // 0bc: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 0bf: pop
      // 0c0: goto 0c7
      // 0c3: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0c6: athrow
      // 0c7: iinc 8 1
      // 0ca: goto 09f
      // 0cd: aload 5
      // 0cf: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 0d2: invokestatic com/l7tech/policy/variable/Syntax.getReferencedNames (Ljava/lang/String;)[Ljava/lang/String;
      // 0d5: astore 6
      // 0d7: aload 1
      // 0d8: aload 6
      // 0da: aload 0
      // 0db: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.getAudit ()Lcom/l7tech/gateway/common/audit/Audit;
      // 0de: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getVariableMap ([Ljava/lang/String;Lcom/l7tech/gateway/common/audit/Audit;)Ljava/util/Map; 3
      // 0e3: astore 7
      // 0e5: aload 2
      // 0e6: invokevirtual com/l7tech/policy/assertion/JmsMessagePropertyRuleSet.getRules ()[Lcom/l7tech/policy/assertion/JmsMessagePropertyRule;
      // 0e9: astore 8
      // 0eb: aload 8
      // 0ed: arraylength
      // 0ee: istore 9
      // 0f0: bipush 0
      // 0f1: istore 10
      // 0f3: iload 10
      // 0f5: iload 9
      // 0f7: if_icmpge 1dc
      // 0fa: aload 8
      // 0fc: iload 10
      // 0fe: aaload
      // 0ff: astore 11
      // 101: aload 11
      // 103: invokevirtual com/l7tech/policy/assertion/JmsMessagePropertyRule.getName ()Ljava/lang/String;
      // 106: astore 12
      // 108: aload 11
      // 10a: invokevirtual com/l7tech/policy/assertion/JmsMessagePropertyRule.isPassThru ()Z
      // 10d: ifeq 177
      // 110: aload 3
      // 111: aload 12
      // 113: invokeinterface java/util/Map.containsKey (Ljava/lang/Object;)Z 2
      // 118: ifeq 1d6
      // 11b: goto 122
      // 11e: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 121: athrow
      // 122: aload 4
      // 124: aload 12
      // 126: aload 3
      // 127: aload 12
      // 129: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 12e: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 133: pop
      // 134: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // 137: getstatic java/util/logging/Level.FINEST Ljava/util/logging/Level;
      // 13a: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 13d: ifeq 1d6
      // 140: goto 147
      // 143: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 146: athrow
      // 147: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // 14a: aload 12
      // 14c: aload 3
      // 14d: aload 12
      // 14f: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 154: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 157: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 15a: bipush 19
      // 15c: aaload
      // 15d: dup_x2
      // 15e: pop
      // 15f: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 162: bipush 20
      // 164: aaload
      // 165: swap
      // 166: ldc ")"
      // 168: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 16d: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 170: goto 1d6
      // 173: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 176: athrow
      // 177: aload 11
      // 179: invokevirtual com/l7tech/policy/assertion/JmsMessagePropertyRule.getCustomPattern ()Ljava/lang/String;
      // 17c: astore 13
      // 17e: aload 13
      // 180: aload 7
      // 182: aload 0
      // 183: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.getAudit ()Lcom/l7tech/gateway/common/audit/Audit;
      // 186: invokestatic com/l7tech/server/policy/variable/ExpandVariables.process (Ljava/lang/String;Ljava/util/Map;Lcom/l7tech/gateway/common/audit/Audit;)Ljava/lang/String;
      // 189: astore 14
      // 18b: aload 4
      // 18d: aload 12
      // 18f: aload 14
      // 191: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 196: pop
      // 197: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // 19a: getstatic java/util/logging/Level.FINEST Ljava/util/logging/Level;
      // 19d: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 1a0: ifeq 1d6
      // 1a3: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.e Ljava/util/logging/Logger;
      // 1a6: aload 12
      // 1a8: aload 13
      // 1aa: aload 14
      // 1ac: astore 15
      // 1ae: astore 16
      // 1b0: astore 17
      // 1b2: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.I [Ljava/lang/String;
      // 1b5: astore 18
      // 1b7: aload 18
      // 1b9: bipush 39
      // 1bb: aaload
      // 1bc: aload 17
      // 1be: aload 18
      // 1c0: bipush 33
      // 1c2: aaload
      // 1c3: aload 16
      // 1c5: aload 18
      // 1c7: bipush 47
      // 1c9: aaload
      // 1ca: aload 15
      // 1cc: ldc ")"
      // 1ce: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001\u0001\u0001" ]
      // 1d3: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 1d6: iinc 10 1
      // 1d9: goto 0f3
      // 1dc: return
      // try (14 -> 26): 27 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (20 -> 36): 37 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (40 -> 50): 50 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (71 -> 79): 80 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (112 -> 119): 120 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (115 -> 133): 134 com/l7tech/server/policy/assertion/AssertionStatusException
      // try (122 -> 155): 155 com/l7tech/server/policy/assertion/AssertionStatusException
   }

   @Override
   public void close() {
      super.close();
      this.u.removeApplicationListener(this.H);
   }

   static {
      String[] var5 = new String[57];
      int var3 = 0;
      String var2 = "3\u0013jOj\u001d=\u001c2Xxl\u0000!0\u001a\u00191%H\u0002B~\u0013\n*X\u007fm\".\u0017?^iw).\u001a*V~|\u0017\u00100Omi\u0006+Y=Vbc\u0006(\f,Xxl\u0000!B~(<,KcwO&\u0017~Vyq\r \f0],O\"\u001cY,\\}p\n<\r~I~j\f*\n-Pbb\u0002C~\u0015\u0018.I`l\f.\r7Vb@\u0019*\u0017*i~j\u00176\u0012\u00133J^`\u001c \f,ZiH\u000e!\u00189\\~7\u001a1T\"iX;\u001c=Q\"v\n=\u000f;K\"u\u0000#\u0010=@\"d\u001c<\u001c,Mej\u0001a\u00133J^j\u001a;\u00100^Ad\u0017\u001d\u001c*Ke`\u001c7\u001a1T\"iX;\u001c=Q\"v\n=\u000f;K\"u\u0000#\u0010=@\"d\u001c<\u001c,Mej\u0001a\u00133J^j\u001a;\u00100^Ad\u0017\u001d\u001c*Ke`\u001c\n\u001d;_mp\u0003;2;@>:?Lkm\u001bo\f0\\tu\n,\r;],Q\u0007=\u0016)Xni\no\u00100\u0019cp\u001b-\u0016+Wh%%\u0002*~Kit\u001a*\n*\u0019|w\u0000,\u001c-Jek\b\u0014\u00101sav\"*\n-Xk`\".\u0001\u001c@x`\u001c8+;J|j\u0001<\u001c~\\tu\n,\r;],j\u0001o\r;T|j\u001d.\u000b'\u0019}p\n:\u001ce\u0019bj\u001bo\f-PbbO<\u001c2\\oq\u0000=<33JOj\u0001!\u001c=Mej\u0001o\u001a1L`aO!\u0016*\u0019n`O#\u0016=Xx`\u000bnY\u0017M,h\u000e6Y6Xz`O-\u001c;W,a\n#\u001c*\\h*<,KcwO&\u0017~Vyq\r \f0],O\"\u001cY,\\}p\n<\r~I~j\f*\n-PbbUo\u0012\u00133JIk\u000b?\u00167WxH\u000e!\u00189\\~\n\u001d;_mp\u0003;2;@\u001d<,KcwO,\u00151Jek\bo\r;T|j\u001d.\u000b'\u0019}p\n:\u001c<),V|d\b.\r7Wk%\u000eo3\u0013j,h\n<\n?^i%\u001f=\u0016.\\~q\u0016o\u000e7Md%\u001f.\n-\u0019xm\u001d \f9Q\"%G!\u00183\\1\bU~Omi\u001a*D\u0011\u00133J\\w\u0000?\u001c,MuH\u000e?\t;KE+\u001bi@\\0\u001b6\u0001vXM*\u001dY)X\u007f%\u001c*\u0015;Zx`\u000bcY<Lx%\u0001 Y,\\|i\u0016b\r1\u0019}p\n:\u001c~Wmh\no\u000e?J,v\u001f*\u001a7_e`\u000b7\u001a1T\"iX;\u001c=Q\"v\n=\u000f;K\"u\u0000#\u0010=@\"d\u001c<\u001c,Mej\u0001a\u00133J^j\u001a;\u00100^^`\u001b=\u0000\u001a\\`d\u0016\u00133\u0013jI}\f*\t*PckO;\u0011,V{k\u001e:1L`a\u0001h\r~Kid\u000bo\u001f,Va%%\u0002*~Kit\u001a*\n*\u00043\u0013jS\u0013\n*X\u007fm\".\u0017?^iw).\u001a*V~|7\u001a1T\"iX;\u001c=Q\"v\n=\u000f;K\"u\u0000#\u0010=@\"d\u001c<\u001c,Mej\u0001a\u00133J^j\u001a;\u00100^^`\u001b=\u0000\u001a\\`d\u0016\u0011\u00133J\\w\u0000?\u001c,MuH\u000e?\t;K\u0012\u00133JIk\u000b?\u00167WxH\u000e!\u00189\\~\u001b\u000f?Ked\r#\u001c~I~j\f*\n-PbbO*\u000b,V~>O&<,KcwO(\u001c*Mek\bo*\u001ft@%\u001c&\u001e0\\~%\u0006!\u001f1Kad\u001b&\u00160\u0017\nU~Imq\u001b*\u000b0\u0004\f\n;Kz`\u001d\f\u00160_eb\u0014\u00133JOj\u0001!\u001c=Mej\u0001\u0002\u00180Xk`\u001d\u00043\u0013jT\u001a33J^p\u0001;\u00103\\I}\f*\t*PckO;\u0011,V{k\u00167?Tek\b\n\u0001=\\|q\u0006 \u0017~Mdw\u00008\u0017=),V|d\b.\r7Wk%\u000eo3\u0013j,h\n<\n?^i%\u001f=\u0016.\\~q\u0016o\u000e7Md%\f:\n*Va%\u001f.\r*\\~kOg\u0017?Ti8\u0015,0Rbj\u0018!Y\u0014T\u007fW\n?\u0015'muu\no9),V|d\b.\r7Wk%\u000e#\u0015~sAVO\"\u001c-Jmb\no\t,V|`\u001d;\u0010;J,r\u0006;\u0011~Imv\u001co\r6Kcp\b'W\f\n;Kz`\u001d\f\u00160_eb\u0012\u00133J^`\u001c \f,ZiH\u000e!\u00189\\~83\u0013j,l\u0001)\u0016,Tmq\u0006 \u0017~Wi`\u000b<Y+Ihd\u001b*U~Z`j\u001c&\u00179\u0019\u007f`\u001c<\u00101W,-\u0006)Y1IikFa\u0014\u00101sav\"*\n-Xk`\".\u0001\u001c@x`\u001c\u0005,\n\u007f!=\bU~Omi\u001a*D\u0015\u0018.I`l\f.\r7Vb@\u0019*\u0017*i~j\u00176\u001471M,p\u001c&\u00179\u0019m%\u001c*\u0015;Zxj\u001d\u0014\u00133JOj\u0001!\u001c=Mej\u0001\u0002\u00180Xk`\u001d\u001c?7Ux`\u001d&\u00179\u0019ckO,\u0016,Kii\u000e;\u00101W,l\u000bo\u001e00Miw\u001d:\t*\\h%\u000b:\u000b7Wk%\u001d*\r,@,a\n#\u0018'\n5if^@>\u00100\u001a\u0003,+;Hy`\u001c;Y7J,k\u0000;Y7Weq\u0006.\u00157CiaTo\u00171Mdl\u0001(Y*V,w\u0000:\r;";
      int var4 = "3\u0013jOj\u001d=\u001c2Xxl\u0000!0\u001a\u00191%H\u0002B~\u0013\n*X\u007fm\".\u0017?^iw).\u001a*V~|\u0017\u00100Omi\u0006+Y=Vbc\u0006(\f,Xxl\u0000!B~(<,KcwO&\u0017~Vyq\r \f0],O\"\u001cY,\\}p\n<\r~I~j\f*\n-Pbb\u0002C~\u0015\u0018.I`l\f.\r7Vb@\u0019*\u0017*i~j\u00176\u0012\u00133J^`\u001c \f,ZiH\u000e!\u00189\\~7\u001a1T\"iX;\u001c=Q\"v\n=\u000f;K\"u\u0000#\u0010=@\"d\u001c<\u001c,Mej\u0001a\u00133J^j\u001a;\u00100^Ad\u0017\u001d\u001c*Ke`\u001c7\u001a1T\"iX;\u001c=Q\"v\n=\u000f;K\"u\u0000#\u0010=@\"d\u001c<\u001c,Mej\u0001a\u00133J^j\u001a;\u00100^Ad\u0017\u001d\u001c*Ke`\u001c\n\u001d;_mp\u0003;2;@>:?Lkm\u001bo\f0\\tu\n,\r;],Q\u0007=\u0016)Xni\no\u00100\u0019cp\u001b-\u0016+Wh%%\u0002*~Kit\u001a*\n*\u0019|w\u0000,\u001c-Jek\b\u0014\u00101sav\"*\n-Xk`\".\u0001\u001c@x`\u001c8+;J|j\u0001<\u001c~\\tu\n,\r;],j\u0001o\r;T|j\u001d.\u000b'\u0019}p\n:\u001ce\u0019bj\u001bo\f-PbbO<\u001c2\\oq\u0000=<33JOj\u0001!\u001c=Mej\u0001o\u001a1L`aO!\u0016*\u0019n`O#\u0016=Xx`\u000bnY\u0017M,h\u000e6Y6Xz`O-\u001c;W,a\n#\u001c*\\h*<,KcwO&\u0017~Vyq\r \f0],O\"\u001cY,\\}p\n<\r~I~j\f*\n-PbbUo\u0012\u00133JIk\u000b?\u00167WxH\u000e!\u00189\\~\n\u001d;_mp\u0003;2;@\u001d<,KcwO,\u00151Jek\bo\r;T|j\u001d.\u000b'\u0019}p\n:\u001c<),V|d\b.\r7Wk%\u000eo3\u0013j,h\n<\n?^i%\u001f=\u0016.\\~q\u0016o\u000e7Md%\u001f.\n-\u0019xm\u001d \f9Q\"%G!\u00183\\1\bU~Omi\u001a*D\u0011\u00133J\\w\u0000?\u001c,MuH\u000e?\t;KE+\u001bi@\\0\u001b6\u0001vXM*\u001dY)X\u007f%\u001c*\u0015;Zx`\u000bcY<Lx%\u0001 Y,\\|i\u0016b\r1\u0019}p\n:\u001c~Wmh\no\u000e?J,v\u001f*\u001a7_e`\u000b7\u001a1T\"iX;\u001c=Q\"v\n=\u000f;K\"u\u0000#\u0010=@\"d\u001c<\u001c,Mej\u0001a\u00133J^j\u001a;\u00100^^`\u001b=\u0000\u001a\\`d\u0016\u00133\u0013jI}\f*\t*PckO;\u0011,V{k\u001e:1L`a\u0001h\r~Kid\u000bo\u001f,Va%%\u0002*~Kit\u001a*\n*\u00043\u0013jS\u0013\n*X\u007fm\".\u0017?^iw).\u001a*V~|7\u001a1T\"iX;\u001c=Q\"v\n=\u000f;K\"u\u0000#\u0010=@\"d\u001c<\u001c,Mej\u0001a\u00133J^j\u001a;\u00100^^`\u001b=\u0000\u001a\\`d\u0016\u0011\u00133J\\w\u0000?\u001c,MuH\u000e?\t;K\u0012\u00133JIk\u000b?\u00167WxH\u000e!\u00189\\~\u001b\u000f?Ked\r#\u001c~I~j\f*\n-PbbO*\u000b,V~>O&<,KcwO(\u001c*Mek\bo*\u001ft@%\u001c&\u001e0\\~%\u0006!\u001f1Kad\u001b&\u00160\u0017\nU~Imq\u001b*\u000b0\u0004\f\n;Kz`\u001d\f\u00160_eb\u0014\u00133JOj\u0001!\u001c=Mej\u0001\u0002\u00180Xk`\u001d\u00043\u0013jT\u001a33J^p\u0001;\u00103\\I}\f*\t*PckO;\u0011,V{k\u00167?Tek\b\n\u0001=\\|q\u0006 \u0017~Mdw\u00008\u0017=),V|d\b.\r7Wk%\u000eo3\u0013j,h\n<\n?^i%\u001f=\u0016.\\~q\u0016o\u000e7Md%\f:\n*Va%\u001f.\r*\\~kOg\u0017?Ti8\u0015,0Rbj\u0018!Y\u0014T\u007fW\n?\u0015'muu\no9),V|d\b.\r7Wk%\u000e#\u0015~sAVO\"\u001c-Jmb\no\t,V|`\u001d;\u0010;J,r\u0006;\u0011~Imv\u001co\r6Kcp\b'W\f\n;Kz`\u001d\f\u00160_eb\u0012\u00133J^`\u001c \f,ZiH\u000e!\u00189\\~83\u0013j,l\u0001)\u0016,Tmq\u0006 \u0017~Wi`\u000b<Y+Ihd\u001b*U~Z`j\u001c&\u00179\u0019\u007f`\u001c<\u00101W,-\u0006)Y1IikFa\u0014\u00101sav\"*\n-Xk`\".\u0001\u001c@x`\u001c\u0005,\n\u007f!=\bU~Omi\u001a*D\u0015\u0018.I`l\f.\r7Vb@\u0019*\u0017*i~j\u00176\u001471M,p\u001c&\u00179\u0019m%\u001c*\u0015;Zxj\u001d\u0014\u00133JOj\u0001!\u001c=Mej\u0001\u0002\u00180Xk`\u001d\u001c?7Ux`\u001d&\u00179\u0019ckO,\u0016,Kii\u000e;\u00101W,l\u000bo\u001e00Miw\u001d:\t*\\h%\u000b:\u000b7Wk%\u001d*\r,@,a\n#\u0018'\n5if^@>\u00100\u001a\u0003,+;Hy`\u001c;Y7J,k\u0000;Y7Weq\u0006.\u00157CiaTo\u00171Mdl\u0001(Y*V,w\u0000:\r;"
         .length();
      char var1 = 20;
      int var7 = -1;

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

         while (true) {
            String var8 = c(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     I = var5;
                     String[] var9 = I;
                     l = I[17];
                     m = var9[42];
                     o = var9[16];
                     s = var9[43];
                     p = var9[50];
                     g = var9[9];
                     k = var9[48];
                     r = var9[29];
                     n = var9[12];
                     f = var9[28];
                     q = var9[2];
                     e = Logger.getLogger(ServerJmsRoutingAssertion.class.getName());
                     return;
                  }

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

                  var2 = "gg\u001e\u001d?_kBc\u0003,qXtXf\tx?To\rh\bx=TxL~\b<p\u001bRY*\u00009(\u001bsL|\bx3^~C*\t==^oHn\u0016nk\u0018?9O;kc\u0003<\u0014CxHz\u00191>U!\r";
                  var4 = "gg\u001e\u001d?_kBc\u0003,qXtXf\tx?To\rh\bx=TxL~\b<p\u001bRY*\u00009(\u001bsL|\bx3^~C*\t==^oHn\u0016nk\u0018?9O;kc\u0003<\u0014CxHz\u00191>U!\r"
                     .length();
                  var1 = ':';
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

   private static String c(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 -> 117;
            case 2 -> 18;
            case 3 -> 39;
            case 4 -> 46;
            case 5 -> 68;
            default -> 100;
         });
      }

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

   public static final class JmsInvalidator implements ApplicationListener {
      private static final Logger a;
      private final ServerJmsRoutingAssertion b;
      private static final String[] c;

      public JmsInvalidator(ServerJmsRoutingAssertion var1) {
         if (var1 == null) {
            throw new IllegalArgumentException(c[0]);
         }

         this.b = var1;
      }

      public void onApplicationEvent(ApplicationEvent param1) {
         // $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:
         // 000: aload 1
         // 001: instanceof com/l7tech/server/event/EntityInvalidationEvent
         // 004: ifeq 116
         // 007: aload 1
         // 008: checkcast com/l7tech/server/event/EntityInvalidationEvent
         // 00b: astore 2
         // 00c: aload 0
         // 00d: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion$JmsInvalidator.b Lcom/l7tech/server/policy/assertion/ServerJmsRoutingAssertion;
         // 010: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.D Ljava/lang/Object;
         // 013: dup
         // 014: astore 5
         // 016: monitorenter
         // 017: aload 0
         // 018: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion$JmsInvalidator.b Lcom/l7tech/server/policy/assertion/ServerJmsRoutingAssertion;
         // 01b: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.E Lcom/l7tech/gateway/common/transport/jms/JmsConnection;
         // 01e: astore 3
         // 01f: aload 0
         // 020: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion$JmsInvalidator.b Lcom/l7tech/server/policy/assertion/ServerJmsRoutingAssertion;
         // 023: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.F Lcom/l7tech/gateway/common/transport/jms/JmsEndpoint;
         // 026: astore 4
         // 028: aload 5
         // 02a: monitorexit
         // 02b: goto 036
         // 02e: astore 6
         // 030: aload 5
         // 032: monitorexit
         // 033: aload 6
         // 035: athrow
         // 036: aload 3
         // 037: ifnull 116
         // 03a: aload 4
         // 03c: ifnull 116
         // 03f: goto 046
         // 042: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion$JmsInvalidator.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 045: athrow
         // 046: bipush 0
         // 047: istore 5
         // 049: ldc com/l7tech/gateway/common/transport/jms/JmsConnection
         // 04b: aload 2
         // 04c: invokevirtual com/l7tech/server/event/EntityInvalidationEvent.getEntityClass ()Ljava/lang/Class;
         // 04f: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
         // 052: ifeq 086
         // 055: aload 2
         // 056: invokevirtual com/l7tech/server/event/EntityInvalidationEvent.getEntityIds ()[Lcom/l7tech/objectmodel/Goid;
         // 059: astore 6
         // 05b: aload 6
         // 05d: arraylength
         // 05e: istore 7
         // 060: bipush 0
         // 061: istore 8
         // 063: iload 8
         // 065: iload 7
         // 067: if_icmpge 086
         // 06a: aload 6
         // 06c: iload 8
         // 06e: aaload
         // 06f: astore 9
         // 071: aload 3
         // 072: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getGoid ()Lcom/l7tech/objectmodel/Goid;
         // 075: aload 9
         // 077: invokevirtual com/l7tech/objectmodel/Goid.equals (Ljava/lang/Object;)Z
         // 07a: ifeq 080
         // 07d: bipush 1
         // 07e: istore 5
         // 080: iinc 8 1
         // 083: goto 063
         // 086: ldc com/l7tech/gateway/common/transport/jms/JmsEndpoint
         // 088: aload 2
         // 089: invokevirtual com/l7tech/server/event/EntityInvalidationEvent.getEntityClass ()Ljava/lang/Class;
         // 08c: invokevirtual java/lang/Class.isAssignableFrom (Ljava/lang/Class;)Z
         // 08f: ifeq 0c4
         // 092: aload 2
         // 093: invokevirtual com/l7tech/server/event/EntityInvalidationEvent.getEntityIds ()[Lcom/l7tech/objectmodel/Goid;
         // 096: astore 6
         // 098: aload 6
         // 09a: arraylength
         // 09b: istore 7
         // 09d: bipush 0
         // 09e: istore 8
         // 0a0: iload 8
         // 0a2: iload 7
         // 0a4: if_icmpge 0c4
         // 0a7: aload 6
         // 0a9: iload 8
         // 0ab: aaload
         // 0ac: astore 9
         // 0ae: aload 4
         // 0b0: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getGoid ()Lcom/l7tech/objectmodel/Goid;
         // 0b3: aload 9
         // 0b5: invokevirtual com/l7tech/objectmodel/Goid.equals (Ljava/lang/Object;)Z
         // 0b8: ifeq 0be
         // 0bb: bipush 1
         // 0bc: istore 5
         // 0be: iinc 8 1
         // 0c1: goto 0a0
         // 0c4: iload 5
         // 0c6: ifeq 116
         // 0c9: aload 0
         // 0ca: getfield com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion$JmsInvalidator.b Lcom/l7tech/server/policy/assertion/ServerJmsRoutingAssertion;
         // 0cd: bipush 1
         // 0ce: invokevirtual com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion.b (Z)Z
         // 0d1: ifeq 116
         // 0d4: goto 0db
         // 0d7: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion$JmsInvalidator.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 0da: athrow
         // 0db: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion$JmsInvalidator.a Ljava/util/logging/Logger;
         // 0de: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
         // 0e1: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
         // 0e4: ifeq 116
         // 0e7: goto 0ee
         // 0ea: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion$JmsInvalidator.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 0ed: athrow
         // 0ee: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion$JmsInvalidator.a Ljava/util/logging/Logger;
         // 0f1: getstatic java/util/logging/Level.CONFIG Ljava/util/logging/Level;
         // 0f4: getstatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion$JmsInvalidator.c [Ljava/lang/String;
         // 0f7: bipush 1
         // 0f8: aaload
         // 0f9: bipush 2
         // 0fa: anewarray 38
         // 0fd: dup
         // 0fe: bipush 0
         // 0ff: aload 3
         // 100: invokevirtual com/l7tech/gateway/common/transport/jms/JmsConnection.getGoid ()Lcom/l7tech/objectmodel/Goid;
         // 103: aastore
         // 104: dup
         // 105: bipush 1
         // 106: aload 4
         // 108: invokevirtual com/l7tech/gateway/common/transport/jms/JmsEndpoint.getGoid ()Lcom/l7tech/objectmodel/Goid;
         // 10b: aastore
         // 10c: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
         // 10f: goto 116
         // 112: invokestatic com/l7tech/server/policy/assertion/ServerJmsRoutingAssertion$JmsInvalidator.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 115: athrow
         // 116: return
         // try (12 -> 22): 23 null
         // try (23 -> 26): 23 null
         // try (28 -> 32): 33 java/lang/IllegalArgumentException
         // try (95 -> 102): 103 java/lang/IllegalArgumentException
         // try (97 -> 109): 110 java/lang/IllegalArgumentException
         // try (105 -> 130): 131 java/lang/IllegalArgumentException
      }

      static {
         String[] var5 = new String[2];
         int var3 = 0;
         String var2 = "lzN\u0007)qWrln\u001e9wtqx}\u0002?fokvS\u001flnhlk\u001c\u001f#w=}z\u001c\u001f9oq9Ys]\u0016+jsx?v<\u001f#tqyS\u0003!bivpRQ*lo?jL\u0015-wx?D_\u001e\"m'd/AJlfmqk\u0006\n}~@1";
         int var4 = "lzN\u0007)qWrln\u001e9wtqx}\u0002?fokvS\u001flnhlk\u001c\u001f#w=}z\u001c\u001f9oq9Ys]\u0016+jsx?v<\u001f#tqyS\u0003!bivpRQ*lo?jL\u0015-wx?D_\u001e\"m'd/AJlfmqk\u0006\n}~@1"
            .length();
         char var1 = '*';
         int var0 = -1;

         while (true) {
            String var10002 = a(68, a(var2.substring(++var0, var0 + var1)));
            byte var10001 = -1;
            var5[var3++] = var10002;
            if ((var0 += var1) >= var4) {
               c = var5;
               a = Logger.getLogger(ServerJmsRoutingAssertion.JmsInvalidator.class.getName());
               return;
            }

            var1 = var2.charAt(var0);
         }
      }

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

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

         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 -> 91;
               case 1 -> 91;
               case 2 -> 120;
               case 3 -> 53;
               case 4 -> 8;
               case 5 -> 71;
               default -> 89;
            });
         }

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