public class org.springframework.scripting.support.StandardScriptFactory implements org.springframework.scripting.ScriptFactory, org.springframework.beans.factory.BeanClassLoaderAware
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.scripting.support.StandardScriptFactory
  super_class: java.lang.Object
{
  private final java.lang.String scriptEngineName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private final java.lang.String scriptSourceLocator;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class<?>[] scriptInterfaces;
    descriptor: [Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private java.lang.ClassLoader beanClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private volatile javax.script.ScriptEngine scriptEngine;
    descriptor: Ljavax/script/ScriptEngine;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
        start local 1 // java.lang.String scriptSourceLocator
         0: .line 72
            aload 0 /* this */
            aconst_null
            aload 1 /* scriptSourceLocator */
            aconst_null
            invokespecial org.springframework.scripting.support.StandardScriptFactory.<init>:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class;)V
         1: .line 73
            return
        end local 1 // java.lang.String scriptSourceLocator
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/springframework/scripting/support/StandardScriptFactory;
            0    2     1  scriptSourceLocator  Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      scriptSourceLocator  

  public void <init>(java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
        start local 1 // java.lang.String scriptSourceLocator
        start local 2 // java.lang.Class[] scriptInterfaces
         0: .line 83
            aload 0 /* this */
            aconst_null
            aload 1 /* scriptSourceLocator */
            aload 2 /* scriptInterfaces */
            invokespecial org.springframework.scripting.support.StandardScriptFactory.<init>:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class;)V
         1: .line 84
            return
        end local 2 // java.lang.Class[] scriptInterfaces
        end local 1 // java.lang.String scriptSourceLocator
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/springframework/scripting/support/StandardScriptFactory;
            0    2     1  scriptSourceLocator  Ljava/lang/String;
            0    2     2     scriptInterfaces  [Ljava/lang/Class;
    Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;)V
    MethodParameters:
                     Name  Flags
      scriptSourceLocator  
      scriptInterfaces     

  public void <init>(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
        start local 1 // java.lang.String scriptEngineName
        start local 2 // java.lang.String scriptSourceLocator
         0: .line 94
            aload 0 /* this */
            aload 1 /* scriptEngineName */
            aload 2 /* scriptSourceLocator */
            aconst_null
            invokespecial org.springframework.scripting.support.StandardScriptFactory.<init>:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class;)V
         1: .line 95
            return
        end local 2 // java.lang.String scriptSourceLocator
        end local 1 // java.lang.String scriptEngineName
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/springframework/scripting/support/StandardScriptFactory;
            0    2     1     scriptEngineName  Ljava/lang/String;
            0    2     2  scriptSourceLocator  Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      scriptEngineName     
      scriptSourceLocator  

  public void <init>(java.lang.String, java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
        start local 1 // java.lang.String scriptEngineName
        start local 2 // java.lang.String scriptSourceLocator
        start local 3 // java.lang.Class[] scriptInterfaces
         0: .line 106
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 60
            aload 0 /* this */
            invokestatic org.springframework.util.ClassUtils.getDefaultClassLoader:()Ljava/lang/ClassLoader;
            putfield org.springframework.scripting.support.StandardScriptFactory.beanClassLoader:Ljava/lang/ClassLoader;
         2: .line 109
            aload 2 /* scriptSourceLocator */
            ldc "'scriptSourceLocator' must not be empty"
            invokestatic org.springframework.util.Assert.hasText:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 110
            aload 0 /* this */
            aload 1 /* scriptEngineName */
            putfield org.springframework.scripting.support.StandardScriptFactory.scriptEngineName:Ljava/lang/String;
         4: .line 111
            aload 0 /* this */
            aload 2 /* scriptSourceLocator */
            putfield org.springframework.scripting.support.StandardScriptFactory.scriptSourceLocator:Ljava/lang/String;
         5: .line 112
            aload 0 /* this */
            aload 3 /* scriptInterfaces */
            putfield org.springframework.scripting.support.StandardScriptFactory.scriptInterfaces:[Ljava/lang/Class;
         6: .line 113
            return
        end local 3 // java.lang.Class[] scriptInterfaces
        end local 2 // java.lang.String scriptSourceLocator
        end local 1 // java.lang.String scriptEngineName
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    7     0                 this  Lorg/springframework/scripting/support/StandardScriptFactory;
            0    7     1     scriptEngineName  Ljava/lang/String;
            0    7     2  scriptSourceLocator  Ljava/lang/String;
            0    7     3     scriptInterfaces  [Ljava/lang/Class;
    Signature: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class<*>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
                     Name  Flags
      scriptEngineName     
      scriptSourceLocator  
      scriptInterfaces     

  public void setBeanClassLoader(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
        start local 1 // java.lang.ClassLoader classLoader
         0: .line 118
            aload 0 /* this */
            aload 1 /* classLoader */
            putfield org.springframework.scripting.support.StandardScriptFactory.beanClassLoader:Ljava/lang/ClassLoader;
         1: .line 119
            return
        end local 1 // java.lang.ClassLoader classLoader
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/springframework/scripting/support/StandardScriptFactory;
            0    2     1  classLoader  Ljava/lang/ClassLoader;
    MethodParameters:
             Name  Flags
      classLoader  

  public java.lang.String getScriptSourceLocator();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
         0: .line 123
            aload 0 /* this */
            getfield org.springframework.scripting.support.StandardScriptFactory.scriptSourceLocator:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scripting/support/StandardScriptFactory;

  public java.lang.Class<?>[] getScriptInterfaces();
    descriptor: ()[Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
         0: .line 129
            aload 0 /* this */
            getfield org.springframework.scripting.support.StandardScriptFactory.scriptInterfaces:[Ljava/lang/Class;
            areturn
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scripting/support/StandardScriptFactory;
    Signature: ()[Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public boolean requiresConfigInterface();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
         0: .line 134
            iconst_0
            ireturn
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scripting/support/StandardScriptFactory;

  public  getScriptedObject(org.springframework.scripting.ScriptSource, java.lang.Class<?>[]);
    descriptor: (Lorg/springframework/scripting/ScriptSource;[Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
        start local 1 // org.springframework.scripting.ScriptSource scriptSource
        start local 2 // java.lang.Class[] actualInterfaces
         0: .line 146
            aload 0 /* this */
            aload 1 /* scriptSource */
            invokevirtual org.springframework.scripting.support.StandardScriptFactory.evaluateScript:(Lorg/springframework/scripting/ScriptSource;)Ljava/lang/Object;
            astore 3 /* script */
        start local 3 // java.lang.Object script
         1: .line 148
            aload 2 /* actualInterfaces */
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifne 12
         2: .line 149
            iconst_0
            istore 4 /* adaptationRequired */
        start local 4 // boolean adaptationRequired
         3: .line 150
            aload 2 /* actualInterfaces */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 9
      StackMap locals: org.springframework.scripting.support.StandardScriptFactory org.springframework.scripting.ScriptSource java.lang.Class[] java.lang.Object int top int int java.lang.Class[]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* requestedIfc */
        start local 5 // java.lang.Class requestedIfc
         5: .line 151
            aload 3 /* script */
            instanceof java.lang.Class
            ifeq 6
            aload 5 /* requestedIfc */
            aload 3 /* script */
            checkcast java.lang.Class
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 8
            goto 7
         6: .line 152
      StackMap locals: org.springframework.scripting.support.StandardScriptFactory org.springframework.scripting.ScriptSource java.lang.Class[] java.lang.Object int java.lang.Class int int java.lang.Class[]
      StackMap stack:
            aload 5 /* requestedIfc */
            aload 3 /* script */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 153
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* adaptationRequired */
        end local 5 // java.lang.Class requestedIfc
         8: .line 150
      StackMap locals: org.springframework.scripting.support.StandardScriptFactory org.springframework.scripting.ScriptSource java.lang.Class[] java.lang.Object int top int int java.lang.Class[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         9: iload 6
            iload 7
            if_icmplt 4
        10: .line 156
            iload 4 /* adaptationRequired */
            ifeq 12
        11: .line 157
            aload 0 /* this */
            aload 3 /* script */
            aload 1 /* scriptSource */
            aload 2 /* actualInterfaces */
            invokevirtual org.springframework.scripting.support.StandardScriptFactory.adaptToInterfaces:(Ljava/lang/Object;Lorg/springframework/scripting/ScriptSource;[Ljava/lang/Class;)Ljava/lang/Object;
            astore 3 /* script */
        end local 4 // boolean adaptationRequired
        12: .line 161
      StackMap locals: org.springframework.scripting.support.StandardScriptFactory org.springframework.scripting.ScriptSource java.lang.Class[] java.lang.Object
      StackMap stack:
            aload 3 /* script */
            instanceof java.lang.Class
            ifeq 32
        13: .line 162
            aload 3 /* script */
            checkcast java.lang.Class
            astore 4 /* scriptClass */
        start local 4 // java.lang.Class scriptClass
        14: .line 164
            aload 4 /* scriptClass */
            iconst_0
            anewarray java.lang.Class
            invokestatic org.springframework.util.ReflectionUtils.accessibleConstructor:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
        15: areturn
        16: .line 166
      StackMap locals: org.springframework.scripting.support.StandardScriptFactory org.springframework.scripting.ScriptSource java.lang.Class[] java.lang.Object java.lang.Class
      StackMap stack: java.lang.NoSuchMethodException
            astore 5 /* ex */
        start local 5 // java.lang.NoSuchMethodException ex
        17: .line 167
            new org.springframework.scripting.ScriptCompilationException
            dup
        18: .line 168
            new java.lang.StringBuilder
            dup
            ldc "No default constructor on script class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* scriptClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* ex */
        19: .line 167
            invokespecial org.springframework.scripting.ScriptCompilationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.NoSuchMethodException ex
        20: .line 170
      StackMap locals:
      StackMap stack: java.lang.InstantiationException
            astore 5 /* ex */
        start local 5 // java.lang.InstantiationException ex
        21: .line 171
            new org.springframework.scripting.ScriptCompilationException
            dup
        22: .line 172
            aload 1 /* scriptSource */
            new java.lang.StringBuilder
            dup
            ldc "Unable to instantiate script class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* scriptClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* ex */
        23: .line 171
            invokespecial org.springframework.scripting.ScriptCompilationException.<init>:(Lorg/springframework/scripting/ScriptSource;Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.InstantiationException ex
        24: .line 174
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            astore 5 /* ex */
        start local 5 // java.lang.IllegalAccessException ex
        25: .line 175
            new org.springframework.scripting.ScriptCompilationException
            dup
        26: .line 176
            aload 1 /* scriptSource */
            new java.lang.StringBuilder
            dup
            ldc "Could not access script constructor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* scriptClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* ex */
        27: .line 175
            invokespecial org.springframework.scripting.ScriptCompilationException.<init>:(Lorg/springframework/scripting/ScriptSource;Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.IllegalAccessException ex
        28: .line 178
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 5 /* ex */
        start local 5 // java.lang.reflect.InvocationTargetException ex
        29: .line 179
            new org.springframework.scripting.ScriptCompilationException
            dup
        30: .line 180
            new java.lang.StringBuilder
            dup
            ldc "Failed to invoke script constructor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* scriptClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* ex */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
        31: .line 179
            invokespecial org.springframework.scripting.ScriptCompilationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.reflect.InvocationTargetException ex
        end local 4 // java.lang.Class scriptClass
        32: .line 184
      StackMap locals:
      StackMap stack:
            aload 3 /* script */
            areturn
        end local 3 // java.lang.Object script
        end local 2 // java.lang.Class[] actualInterfaces
        end local 1 // org.springframework.scripting.ScriptSource scriptSource
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   33     0                this  Lorg/springframework/scripting/support/StandardScriptFactory;
            0   33     1        scriptSource  Lorg/springframework/scripting/ScriptSource;
            0   33     2    actualInterfaces  [Ljava/lang/Class;
            1   33     3              script  Ljava/lang/Object;
            3   12     4  adaptationRequired  Z
            5    8     5        requestedIfc  Ljava/lang/Class<*>;
           14   32     4         scriptClass  Ljava/lang/Class<*>;
           17   20     5                  ex  Ljava/lang/NoSuchMethodException;
           21   24     5                  ex  Ljava/lang/InstantiationException;
           25   28     5                  ex  Ljava/lang/IllegalAccessException;
           29   32     5                  ex  Ljava/lang/reflect/InvocationTargetException;
      Exception table:
        from    to  target  type
          14    15      16  Class java.lang.NoSuchMethodException
          14    15      20  Class java.lang.InstantiationException
          14    15      24  Class java.lang.IllegalAccessException
          14    15      28  Class java.lang.reflect.InvocationTargetException
    Exceptions:
      throws java.io.IOException, org.springframework.scripting.ScriptCompilationException
    Signature: (Lorg/springframework/scripting/ScriptSource;[Ljava/lang/Class<*>;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
                  Name  Flags
      scriptSource      
      actualInterfaces  

  protected java.lang.Object evaluateScript(org.springframework.scripting.ScriptSource);
    descriptor: (Lorg/springframework/scripting/ScriptSource;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
        start local 1 // org.springframework.scripting.ScriptSource scriptSource
         0: .line 189
            aload 0 /* this */
            getfield org.springframework.scripting.support.StandardScriptFactory.scriptEngine:Ljavax/script/ScriptEngine;
            astore 2 /* scriptEngine */
        start local 2 // javax.script.ScriptEngine scriptEngine
         1: .line 190
            aload 2 /* scriptEngine */
            ifnonnull 6
         2: .line 191
            aload 0 /* this */
            aload 1 /* scriptSource */
            invokevirtual org.springframework.scripting.support.StandardScriptFactory.retrieveScriptEngine:(Lorg/springframework/scripting/ScriptSource;)Ljavax/script/ScriptEngine;
            astore 2 /* scriptEngine */
         3: .line 192
            aload 2 /* scriptEngine */
            ifnonnull 5
         4: .line 193
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not determine script engine for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* scriptSource */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 195
      StackMap locals: javax.script.ScriptEngine
      StackMap stack:
            aload 0 /* this */
            aload 2 /* scriptEngine */
            putfield org.springframework.scripting.support.StandardScriptFactory.scriptEngine:Ljavax/script/ScriptEngine;
         6: .line 197
      StackMap locals:
      StackMap stack:
            aload 2 /* scriptEngine */
            aload 1 /* scriptSource */
            invokeinterface org.springframework.scripting.ScriptSource.getScriptAsString:()Ljava/lang/String;
            invokeinterface javax.script.ScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
         7: areturn
        end local 2 // javax.script.ScriptEngine scriptEngine
         8: .line 199
      StackMap locals: org.springframework.scripting.support.StandardScriptFactory org.springframework.scripting.ScriptSource
      StackMap stack: java.lang.Exception
            astore 2 /* ex */
        start local 2 // java.lang.Exception ex
         9: .line 200
            new org.springframework.scripting.ScriptCompilationException
            dup
            aload 1 /* scriptSource */
            aload 2 /* ex */
            invokespecial org.springframework.scripting.ScriptCompilationException.<init>:(Lorg/springframework/scripting/ScriptSource;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception ex
        end local 1 // org.springframework.scripting.ScriptSource scriptSource
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/springframework/scripting/support/StandardScriptFactory;
            0   10     1  scriptSource  Lorg/springframework/scripting/ScriptSource;
            1    8     2  scriptEngine  Ljavax/script/ScriptEngine;
            9   10     2            ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     7       8  Class java.lang.Exception
    MethodParameters:
              Name  Flags
      scriptSource  

  protected javax.script.ScriptEngine retrieveScriptEngine(org.springframework.scripting.ScriptSource);
    descriptor: (Lorg/springframework/scripting/ScriptSource;)Ljavax/script/ScriptEngine;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
        start local 1 // org.springframework.scripting.ScriptSource scriptSource
         0: .line 206
            new javax.script.ScriptEngineManager
            dup
            aload 0 /* this */
            getfield org.springframework.scripting.support.StandardScriptFactory.beanClassLoader:Ljava/lang/ClassLoader;
            invokespecial javax.script.ScriptEngineManager.<init>:(Ljava/lang/ClassLoader;)V
            astore 2 /* scriptEngineManager */
        start local 2 // javax.script.ScriptEngineManager scriptEngineManager
         1: .line 208
            aload 0 /* this */
            getfield org.springframework.scripting.support.StandardScriptFactory.scriptEngineName:Ljava/lang/String;
            ifnull 3
         2: .line 209
            aload 2 /* scriptEngineManager */
            aload 0 /* this */
            getfield org.springframework.scripting.support.StandardScriptFactory.scriptEngineName:Ljava/lang/String;
            invokestatic org.springframework.scripting.support.StandardScriptUtils.retrieveEngineByName:(Ljavax/script/ScriptEngineManager;Ljava/lang/String;)Ljavax/script/ScriptEngine;
            areturn
         3: .line 212
      StackMap locals: javax.script.ScriptEngineManager
      StackMap stack:
            aload 1 /* scriptSource */
            instanceof org.springframework.scripting.support.ResourceScriptSource
            ifeq 11
         4: .line 213
            aload 1 /* scriptSource */
            checkcast org.springframework.scripting.support.ResourceScriptSource
            invokevirtual org.springframework.scripting.support.ResourceScriptSource.getResource:()Lorg/springframework/core/io/Resource;
            invokeinterface org.springframework.core.io.Resource.getFilename:()Ljava/lang/String;
            astore 3 /* filename */
        start local 3 // java.lang.String filename
         5: .line 214
            aload 3 /* filename */
            ifnull 11
         6: .line 215
            aload 3 /* filename */
            invokestatic org.springframework.util.StringUtils.getFilenameExtension:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* extension */
        start local 4 // java.lang.String extension
         7: .line 216
            aload 4 /* extension */
            ifnull 11
         8: .line 217
            aload 2 /* scriptEngineManager */
            aload 4 /* extension */
            invokevirtual javax.script.ScriptEngineManager.getEngineByExtension:(Ljava/lang/String;)Ljavax/script/ScriptEngine;
            astore 5 /* engine */
        start local 5 // javax.script.ScriptEngine engine
         9: .line 218
            aload 5 /* engine */
            ifnull 11
        10: .line 219
            aload 5 /* engine */
            areturn
        end local 5 // javax.script.ScriptEngine engine
        end local 4 // java.lang.String extension
        end local 3 // java.lang.String filename
        11: .line 225
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // javax.script.ScriptEngineManager scriptEngineManager
        end local 1 // org.springframework.scripting.ScriptSource scriptSource
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   12     0                 this  Lorg/springframework/scripting/support/StandardScriptFactory;
            0   12     1         scriptSource  Lorg/springframework/scripting/ScriptSource;
            1   12     2  scriptEngineManager  Ljavax/script/ScriptEngineManager;
            5   11     3             filename  Ljava/lang/String;
            7   11     4            extension  Ljava/lang/String;
            9   11     5               engine  Ljavax/script/ScriptEngine;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      scriptSource  

  protected  adaptToInterfaces(, org.springframework.scripting.ScriptSource, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/Object;Lorg/springframework/scripting/ScriptSource;[Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
        start local 1 // java.lang.Object script
        start local 2 // org.springframework.scripting.ScriptSource scriptSource
        start local 3 // java.lang.Class[] actualInterfaces
         0: .line 233
            aload 3 /* actualInterfaces */
            arraylength
            iconst_1
            if_icmpne 3
         1: .line 234
            aload 3 /* actualInterfaces */
            iconst_0
            aaload
            astore 4 /* adaptedIfc */
        start local 4 // java.lang.Class adaptedIfc
         2: .line 235
            goto 4
        end local 4 // java.lang.Class adaptedIfc
         3: .line 237
      StackMap locals:
      StackMap stack:
            aload 3 /* actualInterfaces */
            aload 0 /* this */
            getfield org.springframework.scripting.support.StandardScriptFactory.beanClassLoader:Ljava/lang/ClassLoader;
            invokestatic org.springframework.util.ClassUtils.createCompositeInterface:([Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/lang/Class;
            astore 4 /* adaptedIfc */
        start local 4 // java.lang.Class adaptedIfc
         4: .line 240
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 4 /* adaptedIfc */
            ifnull 19
         5: .line 241
            aload 0 /* this */
            getfield org.springframework.scripting.support.StandardScriptFactory.scriptEngine:Ljavax/script/ScriptEngine;
            astore 5 /* scriptEngine */
        start local 5 // javax.script.ScriptEngine scriptEngine
         6: .line 242
            aload 5 /* scriptEngine */
            instanceof javax.script.Invocable
            ifne 10
         7: .line 243
            new org.springframework.scripting.ScriptCompilationException
            dup
            aload 2 /* scriptSource */
         8: .line 244
            new java.lang.StringBuilder
            dup
            ldc "ScriptEngine must implement Invocable in order to adapt it to an interface: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* scriptEngine */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 243
            invokespecial org.springframework.scripting.ScriptCompilationException.<init>:(Lorg/springframework/scripting/ScriptSource;Ljava/lang/String;)V
            athrow
        10: .line 246
      StackMap locals: javax.script.ScriptEngine
      StackMap stack:
            aload 5 /* scriptEngine */
            checkcast javax.script.Invocable
            astore 6 /* invocable */
        start local 6 // javax.script.Invocable invocable
        11: .line 247
            aload 1 /* script */
            ifnull 13
        12: .line 248
            aload 6 /* invocable */
            aload 1 /* script */
            aload 4 /* adaptedIfc */
            invokeinterface javax.script.Invocable.getInterface:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            astore 1 /* script */
        13: .line 250
      StackMap locals: javax.script.Invocable
      StackMap stack:
            aload 1 /* script */
            ifnonnull 19
        14: .line 251
            aload 6 /* invocable */
            aload 4 /* adaptedIfc */
            invokeinterface javax.script.Invocable.getInterface:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 1 /* script */
        15: .line 252
            aload 1 /* script */
            ifnonnull 19
        16: .line 253
            new org.springframework.scripting.ScriptCompilationException
            dup
            aload 2 /* scriptSource */
        17: .line 254
            new java.lang.StringBuilder
            dup
            ldc "Could not adapt script to interface ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* adaptedIfc */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 253
            invokespecial org.springframework.scripting.ScriptCompilationException.<init>:(Lorg/springframework/scripting/ScriptSource;Ljava/lang/String;)V
            athrow
        end local 6 // javax.script.Invocable invocable
        end local 5 // javax.script.ScriptEngine scriptEngine
        19: .line 259
      StackMap locals:
      StackMap stack:
            aload 1 /* script */
            areturn
        end local 4 // java.lang.Class adaptedIfc
        end local 3 // java.lang.Class[] actualInterfaces
        end local 2 // org.springframework.scripting.ScriptSource scriptSource
        end local 1 // java.lang.Object script
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              this  Lorg/springframework/scripting/support/StandardScriptFactory;
            0   20     1            script  Ljava/lang/Object;
            0   20     2      scriptSource  Lorg/springframework/scripting/ScriptSource;
            0   20     3  actualInterfaces  [Ljava/lang/Class;
            2    3     4        adaptedIfc  Ljava/lang/Class<*>;
            4   20     4        adaptedIfc  Ljava/lang/Class<*>;
            6   19     5      scriptEngine  Ljavax/script/ScriptEngine;
           11   19     6         invocable  Ljavax/script/Invocable;
    Signature: (Ljava/lang/Object;Lorg/springframework/scripting/ScriptSource;[Ljava/lang/Class<*>;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
      2:
    MethodParameters:
                  Name  Flags
      script            
      scriptSource      
      actualInterfaces  

  public java.lang.Class<?> getScriptedObjectType(org.springframework.scripting.ScriptSource);
    descriptor: (Lorg/springframework/scripting/ScriptSource;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
        start local 1 // org.springframework.scripting.ScriptSource scriptSource
         0: .line 267
            aconst_null
            areturn
        end local 1 // org.springframework.scripting.ScriptSource scriptSource
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/springframework/scripting/support/StandardScriptFactory;
            0    1     1  scriptSource  Lorg/springframework/scripting/ScriptSource;
    Exceptions:
      throws java.io.IOException, org.springframework.scripting.ScriptCompilationException
    Signature: (Lorg/springframework/scripting/ScriptSource;)Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      scriptSource  

  public boolean requiresScriptedObjectRefresh(org.springframework.scripting.ScriptSource);
    descriptor: (Lorg/springframework/scripting/ScriptSource;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
        start local 1 // org.springframework.scripting.ScriptSource scriptSource
         0: .line 272
            aload 1 /* scriptSource */
            invokeinterface org.springframework.scripting.ScriptSource.isModified:()Z
            ireturn
        end local 1 // org.springframework.scripting.ScriptSource scriptSource
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/springframework/scripting/support/StandardScriptFactory;
            0    1     1  scriptSource  Lorg/springframework/scripting/ScriptSource;
    MethodParameters:
              Name  Flags
      scriptSource  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.scripting.support.StandardScriptFactory this
         0: .line 278
            new java.lang.StringBuilder
            dup
            ldc "StandardScriptFactory: script source locator ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.scripting.support.StandardScriptFactory.scriptSourceLocator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.springframework.scripting.support.StandardScriptFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scripting/support/StandardScriptFactory;
}
SourceFile: "StandardScriptFactory.java"