public class org.springframework.jdbc.core.metadata.CallMetaDataContext
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.jdbc.core.metadata.CallMetaDataContext
  super_class: java.lang.Object
{
  protected final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

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

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

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

  private java.util.List<org.springframework.jdbc.core.SqlParameter> callParameters;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;

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

  private java.util.Set<java.lang.String> limitedInParameterNames;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private java.util.List<java.lang.String> outParameterNames;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljava/lang/String;>;

  private boolean function;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean returnValueRequired;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean accessCallParameterMetaData;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean namedBinding;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private org.springframework.jdbc.core.metadata.CallMetaDataProvider metaDataProvider;
    descriptor: Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 55
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 58
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
         2: .line 73
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.callParameters:Ljava/util/List;
         3: .line 80
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.limitedInParameterNames:Ljava/util/Set;
         4: .line 83
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.outParameterNames:Ljava/util/List;
         5: .line 86
            aload 0 /* this */
            iconst_0
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.function:Z
         6: .line 89
            aload 0 /* this */
            iconst_0
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.returnValueRequired:Z
         7: .line 92
            aload 0 /* this */
            iconst_1
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.accessCallParameterMetaData:Z
         8: .line 55
            return
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;

  public void setFunctionReturnName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // java.lang.String functionReturnName
         0: .line 106
            aload 0 /* this */
            aload 1 /* functionReturnName */
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.actualFunctionReturnName:Ljava/lang/String;
         1: .line 107
            return
        end local 1 // java.lang.String functionReturnName
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    2     1  functionReturnName  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      functionReturnName  

  public java.lang.String getFunctionReturnName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 113
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.actualFunctionReturnName:Ljava/lang/String;
            ifnull 1
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.actualFunctionReturnName:Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc "return"
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;

  public void setLimitedInParameterNames(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // java.util.Set limitedInParameterNames
         0: .line 120
            aload 0 /* this */
            aload 1 /* limitedInParameterNames */
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.limitedInParameterNames:Ljava/util/Set;
         1: .line 121
            return
        end local 1 // java.util.Set limitedInParameterNames
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    2     1  limitedInParameterNames  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
                         Name  Flags
      limitedInParameterNames  

  public java.util.Set<java.lang.String> getLimitedInParameterNames();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 127
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.limitedInParameterNames:Ljava/util/Set;
            areturn
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public void setOutParameterNames(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // java.util.List outParameterNames
         0: .line 134
            aload 0 /* this */
            aload 1 /* outParameterNames */
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.outParameterNames:Ljava/util/List;
         1: .line 135
            return
        end local 1 // java.util.List outParameterNames
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    2     1  outParameterNames  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
                   Name  Flags
      outParameterNames  

  public java.util.List<java.lang.String> getOutParameterNames();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 141
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.outParameterNames:Ljava/util/List;
            areturn
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public void setProcedureName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // java.lang.String procedureName
         0: .line 148
            aload 0 /* this */
            aload 1 /* procedureName */
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.procedureName:Ljava/lang/String;
         1: .line 149
            return
        end local 1 // java.lang.String procedureName
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    2     1  procedureName  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
               Name  Flags
      procedureName  

  public java.lang.String getProcedureName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 156
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.procedureName:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setCatalogName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // java.lang.String catalogName
         0: .line 163
            aload 0 /* this */
            aload 1 /* catalogName */
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.catalogName:Ljava/lang/String;
         1: .line 164
            return
        end local 1 // java.lang.String catalogName
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    2     1  catalogName  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
             Name  Flags
      catalogName  

  public java.lang.String getCatalogName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 171
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.catalogName:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setSchemaName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // java.lang.String schemaName
         0: .line 178
            aload 0 /* this */
            aload 1 /* schemaName */
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.schemaName:Ljava/lang/String;
         1: .line 179
            return
        end local 1 // java.lang.String schemaName
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    2     1  schemaName  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      schemaName  

  public java.lang.String getSchemaName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 186
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.schemaName:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setFunction(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // boolean function
         0: .line 193
            aload 0 /* this */
            iload 1 /* function */
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.function:Z
         1: .line 194
            return
        end local 1 // boolean function
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    2     1  function  Z
    MethodParameters:
          Name  Flags
      function  

  public boolean isFunction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 200
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.function:Z
            ireturn
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;

  public void setReturnValueRequired(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // boolean returnValueRequired
         0: .line 207
            aload 0 /* this */
            iload 1 /* returnValueRequired */
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.returnValueRequired:Z
         1: .line 208
            return
        end local 1 // boolean returnValueRequired
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    2     1  returnValueRequired  Z
    MethodParameters:
                     Name  Flags
      returnValueRequired  

  public boolean isReturnValueRequired();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 214
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.returnValueRequired:Z
            ireturn
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;

  public void setAccessCallParameterMetaData(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // boolean accessCallParameterMetaData
         0: .line 221
            aload 0 /* this */
            iload 1 /* accessCallParameterMetaData */
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.accessCallParameterMetaData:Z
         1: .line 222
            return
        end local 1 // boolean accessCallParameterMetaData
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0    2     0                         this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    2     1  accessCallParameterMetaData  Z
    MethodParameters:
                             Name  Flags
      accessCallParameterMetaData  

  public boolean isAccessCallParameterMetaData();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 228
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.accessCallParameterMetaData:Z
            ireturn
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;

  public void setNamedBinding(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // boolean namedBinding
         0: .line 236
            aload 0 /* this */
            iload 1 /* namedBinding */
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.namedBinding:Z
         1: .line 237
            return
        end local 1 // boolean namedBinding
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    2     1  namedBinding  Z
    MethodParameters:
              Name  Flags
      namedBinding  

  public boolean isNamedBinding();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 244
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.namedBinding:Z
            ireturn
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;

  public void initializeMetaData(javax.sql.DataSource);
    descriptor: (Ljavax/sql/DataSource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // javax.sql.DataSource dataSource
         0: .line 253
            aload 0 /* this */
            aload 1 /* dataSource */
            aload 0 /* this */
            invokestatic org.springframework.jdbc.core.metadata.CallMetaDataProviderFactory.createMetaDataProvider:(Ljavax/sql/DataSource;Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;)Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.metaDataProvider:Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
         1: .line 254
            return
        end local 1 // javax.sql.DataSource dataSource
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    2     1  dataSource  Ljavax/sql/DataSource;
    MethodParameters:
            Name  Flags
      dataSource  

  private org.springframework.jdbc.core.metadata.CallMetaDataProvider obtainMetaDataProvider();
    descriptor: ()Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 257
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.metaDataProvider:Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "No CallMetaDataProvider - call initializeMetaData first"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         3: .line 258
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.metaDataProvider:Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            areturn
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;

  public org.springframework.jdbc.core.SqlParameter createReturnResultSetParameter(java.lang.String, org.springframework.jdbc.core.RowMapper<?>);
    descriptor: (Ljava/lang/String;Lorg/springframework/jdbc/core/RowMapper;)Lorg/springframework/jdbc/core/SqlParameter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // java.lang.String parameterName
        start local 2 // org.springframework.jdbc.core.RowMapper rowMapper
         0: .line 269
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.obtainMetaDataProvider:()Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            astore 3 /* provider */
        start local 3 // org.springframework.jdbc.core.metadata.CallMetaDataProvider provider
         1: .line 270
            aload 3 /* provider */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.isReturnResultSetSupported:()Z
            ifeq 3
         2: .line 271
            new org.springframework.jdbc.core.SqlReturnResultSet
            dup
            aload 1 /* parameterName */
            aload 2 /* rowMapper */
            invokespecial org.springframework.jdbc.core.SqlReturnResultSet.<init>:(Ljava/lang/String;Lorg/springframework/jdbc/core/RowMapper;)V
            areturn
         3: .line 274
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataProvider
      StackMap stack:
            aload 3 /* provider */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.isRefCursorSupported:()Z
            ifeq 5
         4: .line 275
            new org.springframework.jdbc.core.SqlOutParameter
            dup
            aload 1 /* parameterName */
            aload 3 /* provider */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.getRefCursorSqlType:()I
            aload 2 /* rowMapper */
            invokespecial org.springframework.jdbc.core.SqlOutParameter.<init>:(Ljava/lang/String;ILorg/springframework/jdbc/core/RowMapper;)V
            areturn
         5: .line 278
      StackMap locals:
      StackMap stack:
            new org.springframework.dao.InvalidDataAccessApiUsageException
            dup
         6: .line 279
            ldc "Return of a ResultSet from a stored procedure is not supported"
         7: .line 278
            invokespecial org.springframework.dao.InvalidDataAccessApiUsageException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // org.springframework.jdbc.core.metadata.CallMetaDataProvider provider
        end local 2 // org.springframework.jdbc.core.RowMapper rowMapper
        end local 1 // java.lang.String parameterName
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    8     1  parameterName  Ljava/lang/String;
            0    8     2      rowMapper  Lorg/springframework/jdbc/core/RowMapper<*>;
            1    8     3       provider  Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
    Signature: (Ljava/lang/String;Lorg/springframework/jdbc/core/RowMapper<*>;)Lorg/springframework/jdbc/core/SqlParameter;
    MethodParameters:
               Name  Flags
      parameterName  
      rowMapper      

  public java.lang.String getScalarOutParameterName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 290
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.isFunction:()Z
            ifeq 2
         1: .line 291
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.getFunctionReturnName:()Ljava/lang/String;
            areturn
         2: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.outParameterNames:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 4
         3: .line 295
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            ldc "Accessing single output value when procedure has more than one output parameter"
            invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
         4: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.outParameterNames:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 5
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.outParameterNames:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            goto 6
      StackMap locals:
      StackMap stack:
         5: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         6: areturn
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public java.util.List<org.springframework.jdbc.core.SqlParameter> getCallParameters();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 305
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.callParameters:Ljava/util/List;
            areturn
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
    Signature: ()Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;

  public void processParameters(java.util.List<org.springframework.jdbc.core.SqlParameter>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // java.util.List parameters
         0: .line 315
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* parameters */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.reconcileParameters:(Ljava/util/List;)Ljava/util/List;
            putfield org.springframework.jdbc.core.metadata.CallMetaDataContext.callParameters:Ljava/util/List;
         1: .line 316
            return
        end local 1 // java.util.List parameters
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    2     1  parameters  Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;
    Signature: (Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;)V
    MethodParameters:
            Name  Flags
      parameters  

  protected java.util.List<org.springframework.jdbc.core.SqlParameter> reconcileParameters(java.util.List<org.springframework.jdbc.core.SqlParameter>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=16, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // java.util.List parameters
         0: .line 322
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.obtainMetaDataProvider:()Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            astore 2 /* provider */
        start local 2 // org.springframework.jdbc.core.metadata.CallMetaDataProvider provider
         1: .line 324
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* declaredReturnParams */
        start local 3 // java.util.List declaredReturnParams
         2: .line 325
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 4 /* declaredParams */
        start local 4 // java.util.Map declaredParams
         3: .line 326
            iconst_0
            istore 5 /* returnDeclared */
        start local 5 // boolean returnDeclared
         4: .line 327
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* outParamNames */
        start local 6 // java.util.List outParamNames
         5: .line 328
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* metaDataParamNames */
        start local 7 // java.util.List metaDataParamNames
         6: .line 331
            aload 2 /* provider */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.getCallParameterMetaData:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 10
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.util.List org.springframework.jdbc.core.metadata.CallMetaDataProvider java.util.List java.util.Map int java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         7: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.jdbc.core.metadata.CallParameterMetaData
            astore 8 /* meta */
        start local 8 // org.springframework.jdbc.core.metadata.CallParameterMetaData meta
         8: .line 332
            aload 8 /* meta */
            invokevirtual org.springframework.jdbc.core.metadata.CallParameterMetaData.isReturnParameter:()Z
            ifne 10
         9: .line 333
            aload 7 /* metaDataParamNames */
            aload 8 /* meta */
            invokevirtual org.springframework.jdbc.core.metadata.CallParameterMetaData.getParameterName:()Ljava/lang/String;
            invokestatic org.springframework.jdbc.core.metadata.CallMetaDataContext.lowerCase:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // org.springframework.jdbc.core.metadata.CallParameterMetaData meta
        10: .line 331
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 338
            aload 1 /* parameters */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 32
      StackMap locals:
      StackMap stack:
        12: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.jdbc.core.SqlParameter
            astore 8 /* param */
        start local 8 // org.springframework.jdbc.core.SqlParameter param
        13: .line 339
            aload 8 /* param */
            invokevirtual org.springframework.jdbc.core.SqlParameter.isResultsParameter:()Z
            ifeq 16
        14: .line 340
            aload 3 /* declaredReturnParams */
            aload 8 /* param */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 341
            goto 32
        16: .line 343
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.util.List org.springframework.jdbc.core.metadata.CallMetaDataProvider java.util.List java.util.Map int java.util.List java.util.List org.springframework.jdbc.core.SqlParameter java.util.Iterator
      StackMap stack:
            aload 8 /* param */
            invokevirtual org.springframework.jdbc.core.SqlParameter.getName:()Ljava/lang/String;
            astore 10 /* paramName */
        start local 10 // java.lang.String paramName
        17: .line 344
            aload 10 /* paramName */
            ifnonnull 21
        18: .line 345
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Anonymous parameters not supported for calls - please specify a name for the parameter of SQL type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        19: .line 346
            aload 8 /* param */
            invokevirtual org.springframework.jdbc.core.SqlParameter.getSqlType:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 345
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 348
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* provider */
            aload 10 /* paramName */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.parameterNameToUse:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.springframework.jdbc.core.metadata.CallMetaDataContext.lowerCase:(Ljava/lang/String;)Ljava/lang/String;
            astore 11 /* paramNameToMatch */
        start local 11 // java.lang.String paramNameToMatch
        22: .line 349
            aload 4 /* declaredParams */
            aload 11 /* paramNameToMatch */
            aload 8 /* param */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 350
            aload 8 /* param */
            instanceof org.springframework.jdbc.core.SqlOutParameter
            ifeq 32
        24: .line 351
            aload 6 /* outParamNames */
            aload 10 /* paramName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 352
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.isFunction:()Z
            ifeq 32
            aload 7 /* metaDataParamNames */
            aload 11 /* paramNameToMatch */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 32
            iload 5 /* returnDeclared */
            ifne 32
        26: .line 353
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 30
        27: .line 354
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Using declared out parameter '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* paramName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 355
            ldc "' for function return value"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 354
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        30: .line 357
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 10 /* paramName */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.setFunctionReturnName:(Ljava/lang/String;)V
        31: .line 358
            iconst_1
            istore 5 /* returnDeclared */
        end local 11 // java.lang.String paramNameToMatch
        end local 10 // java.lang.String paramName
        end local 8 // org.springframework.jdbc.core.SqlParameter param
        32: .line 338
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.util.List org.springframework.jdbc.core.metadata.CallMetaDataProvider java.util.List java.util.Map int java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        33: .line 363
            aload 0 /* this */
            aload 6 /* outParamNames */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.setOutParameterNames:(Ljava/util/List;)V
        34: .line 365
            new java.util.ArrayList
            dup
            aload 3 /* declaredReturnParams */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 8 /* workParams */
        start local 8 // java.util.List workParams
        35: .line 366
            aload 2 /* provider */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.isProcedureColumnMetaDataUsed:()Z
            ifne 38
        36: .line 367
            aload 8 /* workParams */
            aload 4 /* declaredParams */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        37: .line 368
            aload 8 /* workParams */
            areturn
        38: .line 371
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.util.List org.springframework.jdbc.core.metadata.CallMetaDataProvider java.util.List java.util.Map int java.util.List java.util.List java.util.List
      StackMap stack:
            new java.util.HashMap
            dup
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.limitedInParameterNames:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            invokespecial java.util.HashMap.<init>:(I)V
            astore 9 /* limitedInParamNamesMap */
        start local 9 // java.util.Map limitedInParamNamesMap
        39: .line 372
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.limitedInParameterNames:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 42
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.util.List org.springframework.jdbc.core.metadata.CallMetaDataProvider java.util.List java.util.Map int java.util.List java.util.List java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
        40: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* limitedParamName */
        start local 10 // java.lang.String limitedParamName
        41: .line 373
            aload 9 /* limitedInParamNamesMap */
            aload 2 /* provider */
            aload 10 /* limitedParamName */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.parameterNameToUse:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.springframework.jdbc.core.metadata.CallMetaDataContext.lowerCase:(Ljava/lang/String;)Ljava/lang/String;
            aload 10 /* limitedParamName */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 10 // java.lang.String limitedParamName
        42: .line 372
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 40
        43: .line 376
            aload 2 /* provider */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.getCallParameterMetaData:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 114
      StackMap locals:
      StackMap stack:
        44: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.jdbc.core.metadata.CallParameterMetaData
            astore 10 /* meta */
        start local 10 // org.springframework.jdbc.core.metadata.CallParameterMetaData meta
        45: .line 377
            aload 10 /* meta */
            invokevirtual org.springframework.jdbc.core.metadata.CallParameterMetaData.getParameterName:()Ljava/lang/String;
            astore 12 /* paramName */
        start local 12 // java.lang.String paramName
        46: .line 378
            aconst_null
            astore 13 /* paramNameToCheck */
        start local 13 // java.lang.String paramNameToCheck
        47: .line 379
            aload 12 /* paramName */
            ifnull 49
        48: .line 380
            aload 2 /* provider */
            aload 12 /* paramName */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.parameterNameToUse:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.springframework.jdbc.core.metadata.CallMetaDataContext.lowerCase:(Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* paramNameToCheck */
        49: .line 382
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.util.List org.springframework.jdbc.core.metadata.CallMetaDataProvider java.util.List java.util.Map int java.util.List java.util.List java.util.List java.util.Map org.springframework.jdbc.core.metadata.CallParameterMetaData java.util.Iterator java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* provider */
            aload 12 /* paramName */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.parameterNameToUse:(Ljava/lang/String;)Ljava/lang/String;
            astore 14 /* paramNameToUse */
        start local 14 // java.lang.String paramNameToUse
        50: .line 383
            aload 4 /* declaredParams */
            aload 13 /* paramNameToCheck */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 51
            aload 10 /* meta */
            invokevirtual org.springframework.jdbc.core.metadata.CallParameterMetaData.isReturnParameter:()Z
            ifeq 74
            iload 5 /* returnDeclared */
            ifeq 74
        51: .line 385
      StackMap locals: java.lang.String
      StackMap stack:
            aload 10 /* meta */
            invokevirtual org.springframework.jdbc.core.metadata.CallParameterMetaData.isReturnParameter:()Z
            ifeq 64
        52: .line 386
            aload 4 /* declaredParams */
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.getFunctionReturnName:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.jdbc.core.SqlParameter
            astore 15 /* param */
        start local 15 // org.springframework.jdbc.core.SqlParameter param
        53: .line 387
            aload 15 /* param */
            ifnonnull 55
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.getOutParameterNames:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 55
        54: .line 388
            aload 4 /* declaredParams */
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.getOutParameterNames:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.jdbc.core.SqlParameter
            astore 15 /* param */
        55: .line 390
      StackMap locals: org.springframework.jdbc.core.SqlParameter
      StackMap stack:
            aload 15 /* param */
            ifnonnull 61
        56: .line 391
            new org.springframework.dao.InvalidDataAccessApiUsageException
            dup
        57: .line 392
            new java.lang.StringBuilder
            dup
            ldc "Unable to locate declared parameter for function return value -  add a SqlOutParameter with name '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        58: .line 393
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.getFunctionReturnName:()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;
        59: .line 392
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        60: .line 391
            invokespecial org.springframework.dao.InvalidDataAccessApiUsageException.<init>:(Ljava/lang/String;)V
            athrow
        61: .line 395
      StackMap locals:
      StackMap stack:
            aload 12 /* paramName */
            ifnull 65
        62: .line 396
            aload 0 /* this */
            aload 12 /* paramName */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.setFunctionReturnName:(Ljava/lang/String;)V
        63: .line 398
            goto 65
        end local 15 // org.springframework.jdbc.core.SqlParameter param
        64: .line 400
      StackMap locals:
      StackMap stack:
            aload 4 /* declaredParams */
            aload 13 /* paramNameToCheck */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.jdbc.core.SqlParameter
            astore 15 /* param */
        start local 15 // org.springframework.jdbc.core.SqlParameter param
        65: .line 402
      StackMap locals: org.springframework.jdbc.core.SqlParameter
      StackMap stack:
            aload 15 /* param */
            ifnull 114
        66: .line 403
            aload 8 /* workParams */
            aload 15 /* param */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        67: .line 404
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 114
        68: .line 405
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Using declared parameter for '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        69: .line 406
            aload 14 /* paramNameToUse */
            ifnull 70
            aload 14 /* paramNameToUse */
            goto 71
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.util.List org.springframework.jdbc.core.metadata.CallMetaDataProvider java.util.List java.util.Map int java.util.List java.util.List java.util.List java.util.Map org.springframework.jdbc.core.metadata.CallParameterMetaData java.util.Iterator java.lang.String java.lang.String java.lang.String org.springframework.jdbc.core.SqlParameter
      StackMap stack: org.apache.commons.logging.Log java.lang.StringBuilder
        70: aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.getFunctionReturnName:()Ljava/lang/String;
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.util.List org.springframework.jdbc.core.metadata.CallMetaDataProvider java.util.List java.util.Map int java.util.List java.util.List java.util.List java.util.Map org.springframework.jdbc.core.metadata.CallParameterMetaData java.util.Iterator java.lang.String java.lang.String java.lang.String org.springframework.jdbc.core.SqlParameter
      StackMap stack: org.apache.commons.logging.Log java.lang.StringBuilder java.lang.String
        71: 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;
        72: .line 405
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        end local 15 // org.springframework.jdbc.core.SqlParameter param
        73: .line 409
            goto 114
        74: .line 411
      StackMap locals:
      StackMap stack:
            aload 10 /* meta */
            invokevirtual org.springframework.jdbc.core.metadata.CallParameterMetaData.isReturnParameter:()Z
            ifeq 90
        75: .line 413
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.isFunction:()Z
            ifne 80
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.isReturnValueRequired:()Z
            ifne 80
            aload 12 /* paramName */
            ifnull 80
        76: .line 414
            aload 2 /* provider */
            aload 12 /* paramName */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.byPassReturnParameter:(Ljava/lang/String;)Z
            ifeq 80
        77: .line 415
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 114
        78: .line 416
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Bypassing meta-data return parameter for '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 12 /* paramName */
            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;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        79: .line 418
            goto 114
        80: .line 421
      StackMap locals:
      StackMap stack:
            aload 14 /* paramNameToUse */
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 81
            aload 14 /* paramNameToUse */
            goto 82
      StackMap locals:
      StackMap stack:
        81: aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.getFunctionReturnName:()Ljava/lang/String;
        82: .line 420
      StackMap locals:
      StackMap stack: java.lang.String
            astore 15 /* returnNameToUse */
        start local 15 // java.lang.String returnNameToUse
        83: .line 422
            aload 8 /* workParams */
            aload 2 /* provider */
            aload 15 /* returnNameToUse */
            aload 10 /* meta */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.createDefaultOutParameter:(Ljava/lang/String;Lorg/springframework/jdbc/core/metadata/CallParameterMetaData;)Lorg/springframework/jdbc/core/SqlParameter;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        84: .line 423
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.isFunction:()Z
            ifeq 87
        85: .line 424
            aload 0 /* this */
            aload 15 /* returnNameToUse */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.setFunctionReturnName:(Ljava/lang/String;)V
        86: .line 425
            aload 6 /* outParamNames */
            aload 15 /* returnNameToUse */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        87: .line 427
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 114
        88: .line 428
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Added meta-data return parameter for '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 15 /* returnNameToUse */
            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;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        end local 15 // java.lang.String returnNameToUse
        89: .line 431
            goto 114
        90: .line 433
      StackMap locals:
      StackMap stack:
            aload 14 /* paramNameToUse */
            ifnonnull 92
        91: .line 434
            ldc ""
            astore 14 /* paramNameToUse */
        92: .line 436
      StackMap locals:
      StackMap stack:
            aload 10 /* meta */
            invokevirtual org.springframework.jdbc.core.metadata.CallParameterMetaData.getParameterType:()I
            iconst_4
            if_icmpne 98
        93: .line 437
            aload 8 /* workParams */
            aload 2 /* provider */
            aload 14 /* paramNameToUse */
            aload 10 /* meta */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.createDefaultOutParameter:(Ljava/lang/String;Lorg/springframework/jdbc/core/metadata/CallParameterMetaData;)Lorg/springframework/jdbc/core/SqlParameter;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        94: .line 438
            aload 6 /* outParamNames */
            aload 14 /* paramNameToUse */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        95: .line 439
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 114
        96: .line 440
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Added meta-data out parameter for '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* paramNameToUse */
            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;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        97: .line 442
            goto 114
        98: .line 443
      StackMap locals:
      StackMap stack:
            aload 10 /* meta */
            invokevirtual org.springframework.jdbc.core.metadata.CallParameterMetaData.getParameterType:()I
            iconst_2
            if_icmpne 104
        99: .line 444
            aload 8 /* workParams */
            aload 2 /* provider */
            aload 14 /* paramNameToUse */
            aload 10 /* meta */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.createDefaultInOutParameter:(Ljava/lang/String;Lorg/springframework/jdbc/core/metadata/CallParameterMetaData;)Lorg/springframework/jdbc/core/SqlParameter;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       100: .line 445
            aload 6 /* outParamNames */
            aload 14 /* paramNameToUse */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       101: .line 446
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 114
       102: .line 447
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Added meta-data in-out parameter for '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* paramNameToUse */
            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;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
       103: .line 449
            goto 114
       104: .line 452
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.limitedInParameterNames:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 106
       105: .line 453
            aload 9 /* limitedInParamNamesMap */
            aload 14 /* paramNameToUse */
            invokestatic org.springframework.jdbc.core.metadata.CallMetaDataContext.lowerCase:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 110
       106: .line 454
      StackMap locals:
      StackMap stack:
            aload 8 /* workParams */
            aload 2 /* provider */
            aload 14 /* paramNameToUse */
            aload 10 /* meta */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.createDefaultInParameter:(Ljava/lang/String;Lorg/springframework/jdbc/core/metadata/CallParameterMetaData;)Lorg/springframework/jdbc/core/SqlParameter;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       107: .line 455
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 114
       108: .line 456
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Added meta-data in parameter for '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* paramNameToUse */
            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;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
       109: .line 458
            goto 114
       110: .line 460
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 114
       111: .line 461
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Limited set of parameters "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* limitedInParamNamesMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
       112: .line 462
            ldc " skipped parameter for '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 14 /* paramNameToUse */
            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;
       113: .line 461
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        end local 14 // java.lang.String paramNameToUse
        end local 13 // java.lang.String paramNameToCheck
        end local 12 // java.lang.String paramName
        end local 10 // org.springframework.jdbc.core.metadata.CallParameterMetaData meta
       114: .line 376
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.util.List org.springframework.jdbc.core.metadata.CallMetaDataProvider java.util.List java.util.Map int java.util.List java.util.List java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 44
       115: .line 470
            aload 8 /* workParams */
            areturn
        end local 9 // java.util.Map limitedInParamNamesMap
        end local 8 // java.util.List workParams
        end local 7 // java.util.List metaDataParamNames
        end local 6 // java.util.List outParamNames
        end local 5 // boolean returnDeclared
        end local 4 // java.util.Map declaredParams
        end local 3 // java.util.List declaredReturnParams
        end local 2 // org.springframework.jdbc.core.metadata.CallMetaDataProvider provider
        end local 1 // java.util.List parameters
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0  116     0                    this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0  116     1              parameters  Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;
            1  116     2                provider  Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            2  116     3    declaredReturnParams  Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;
            3  116     4          declaredParams  Ljava/util/Map<Ljava/lang/String;Lorg/springframework/jdbc/core/SqlParameter;>;
            4  116     5          returnDeclared  Z
            5  116     6           outParamNames  Ljava/util/List<Ljava/lang/String;>;
            6  116     7      metaDataParamNames  Ljava/util/List<Ljava/lang/String;>;
            8   10     8                    meta  Lorg/springframework/jdbc/core/metadata/CallParameterMetaData;
           13   32     8                   param  Lorg/springframework/jdbc/core/SqlParameter;
           17   32    10               paramName  Ljava/lang/String;
           22   32    11        paramNameToMatch  Ljava/lang/String;
           35  116     8              workParams  Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;
           39  116     9  limitedInParamNamesMap  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           41   42    10        limitedParamName  Ljava/lang/String;
           45  114    10                    meta  Lorg/springframework/jdbc/core/metadata/CallParameterMetaData;
           46  114    12               paramName  Ljava/lang/String;
           47  114    13        paramNameToCheck  Ljava/lang/String;
           50  114    14          paramNameToUse  Ljava/lang/String;
           53   64    15                   param  Lorg/springframework/jdbc/core/SqlParameter;
           65   73    15                   param  Lorg/springframework/jdbc/core/SqlParameter;
           83   89    15         returnNameToUse  Ljava/lang/String;
    Signature: (Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;)Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;
    MethodParameters:
            Name  Flags
      parameters  

  public java.util.Map<java.lang.String, java.lang.Object> matchInParameterValuesWithCallParameters(org.springframework.jdbc.core.namedparam.SqlParameterSource);
    descriptor: (Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=13, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // org.springframework.jdbc.core.namedparam.SqlParameterSource parameterSource
         0: .line 482
            aload 1 /* parameterSource */
            invokestatic org.springframework.jdbc.core.namedparam.SqlParameterSourceUtils.extractCaseInsensitiveParameterNames:(Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;)Ljava/util/Map;
         1: .line 481
            astore 2 /* caseInsensitiveParameterNames */
        start local 2 // java.util.Map caseInsensitiveParameterNames
         2: .line 484
            new java.util.HashMap
            dup
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.callParameters:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial java.util.HashMap.<init>:(I)V
            astore 3 /* callParameterNames */
        start local 3 // java.util.Map callParameterNames
         3: .line 485
            new java.util.HashMap
            dup
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.callParameters:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial java.util.HashMap.<init>:(I)V
            astore 4 /* matchedParameters */
        start local 4 // java.util.Map matchedParameters
         4: .line 486
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.callParameters:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 46
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext org.springframework.jdbc.core.namedparam.SqlParameterSource java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.jdbc.core.SqlParameter
            astore 5 /* parameter */
        start local 5 // org.springframework.jdbc.core.SqlParameter parameter
         6: .line 487
            aload 5 /* parameter */
            invokevirtual org.springframework.jdbc.core.SqlParameter.isInputValueProvided:()Z
            ifeq 46
         7: .line 488
            aload 5 /* parameter */
            invokevirtual org.springframework.jdbc.core.SqlParameter.getName:()Ljava/lang/String;
            astore 7 /* parameterName */
        start local 7 // java.lang.String parameterName
         8: .line 489
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.obtainMetaDataProvider:()Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            aload 7 /* parameterName */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.parameterNameToUse:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* parameterNameToMatch */
        start local 8 // java.lang.String parameterNameToMatch
         9: .line 490
            aload 8 /* parameterNameToMatch */
            ifnull 11
        10: .line 491
            aload 3 /* callParameterNames */
            aload 8 /* parameterNameToMatch */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            aload 7 /* parameterName */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 493
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext org.springframework.jdbc.core.namedparam.SqlParameterSource java.util.Map java.util.Map java.util.Map org.springframework.jdbc.core.SqlParameter java.util.Iterator java.lang.String java.lang.String
      StackMap stack:
            aload 7 /* parameterName */
            ifnull 46
        12: .line 494
            aload 1 /* parameterSource */
            aload 7 /* parameterName */
            invokeinterface org.springframework.jdbc.core.namedparam.SqlParameterSource.hasValue:(Ljava/lang/String;)Z
            ifeq 17
        13: .line 495
            aload 4 /* matchedParameters */
            aload 7 /* parameterName */
        14: .line 496
            aload 1 /* parameterSource */
            aload 7 /* parameterName */
            invokestatic org.springframework.jdbc.core.namedparam.SqlParameterSourceUtils.getTypedValue:(Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;Ljava/lang/String;)Ljava/lang/Object;
        15: .line 495
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 497
            goto 46
        17: .line 499
      StackMap locals:
      StackMap stack:
            aload 7 /* parameterName */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 9 /* lowerCaseName */
        start local 9 // java.lang.String lowerCaseName
        18: .line 500
            aload 1 /* parameterSource */
            aload 9 /* lowerCaseName */
            invokeinterface org.springframework.jdbc.core.namedparam.SqlParameterSource.hasValue:(Ljava/lang/String;)Z
            ifeq 23
        19: .line 501
            aload 4 /* matchedParameters */
            aload 7 /* parameterName */
        20: .line 502
            aload 1 /* parameterSource */
            aload 9 /* lowerCaseName */
            invokestatic org.springframework.jdbc.core.namedparam.SqlParameterSourceUtils.getTypedValue:(Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;Ljava/lang/String;)Ljava/lang/Object;
        21: .line 501
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 503
            goto 46
        23: .line 505
      StackMap locals: java.lang.String
      StackMap stack:
            aload 7 /* parameterName */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 10 /* englishLowerCaseName */
        start local 10 // java.lang.String englishLowerCaseName
        24: .line 506
            aload 1 /* parameterSource */
            aload 10 /* englishLowerCaseName */
            invokeinterface org.springframework.jdbc.core.namedparam.SqlParameterSource.hasValue:(Ljava/lang/String;)Z
            ifeq 29
        25: .line 507
            aload 4 /* matchedParameters */
            aload 7 /* parameterName */
        26: .line 508
            aload 1 /* parameterSource */
            aload 10 /* englishLowerCaseName */
            invokestatic org.springframework.jdbc.core.namedparam.SqlParameterSourceUtils.getTypedValue:(Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;Ljava/lang/String;)Ljava/lang/Object;
        27: .line 507
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 509
            goto 46
        29: .line 511
      StackMap locals: java.lang.String
      StackMap stack:
            aload 7 /* parameterName */
            invokestatic org.springframework.jdbc.support.JdbcUtils.convertUnderscoreNameToPropertyName:(Ljava/lang/String;)Ljava/lang/String;
            astore 11 /* propertyName */
        start local 11 // java.lang.String propertyName
        30: .line 512
            aload 1 /* parameterSource */
            aload 11 /* propertyName */
            invokeinterface org.springframework.jdbc.core.namedparam.SqlParameterSource.hasValue:(Ljava/lang/String;)Z
            ifeq 35
        31: .line 513
            aload 4 /* matchedParameters */
            aload 7 /* parameterName */
        32: .line 514
            aload 1 /* parameterSource */
            aload 11 /* propertyName */
            invokestatic org.springframework.jdbc.core.namedparam.SqlParameterSourceUtils.getTypedValue:(Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;Ljava/lang/String;)Ljava/lang/Object;
        33: .line 513
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        34: .line 515
            goto 46
        35: .line 517
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* caseInsensitiveParameterNames */
            aload 9 /* lowerCaseName */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 41
        36: .line 518
            aload 2 /* caseInsensitiveParameterNames */
            aload 9 /* lowerCaseName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 12 /* sourceName */
        start local 12 // java.lang.String sourceName
        37: .line 519
            aload 4 /* matchedParameters */
            aload 7 /* parameterName */
        38: .line 520
            aload 1 /* parameterSource */
            aload 12 /* sourceName */
            invokestatic org.springframework.jdbc.core.namedparam.SqlParameterSourceUtils.getTypedValue:(Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;Ljava/lang/String;)Ljava/lang/Object;
        39: .line 519
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 12 // java.lang.String sourceName
        40: .line 521
            goto 46
        41: .line 522
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
            ifeq 46
        42: .line 523
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Unable to locate the corresponding parameter value for '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        43: .line 524
            aload 7 /* parameterName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' within the parameter values provided: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        44: .line 525
            aload 2 /* caseInsensitiveParameterNames */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        45: .line 523
            invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
        end local 11 // java.lang.String propertyName
        end local 10 // java.lang.String englishLowerCaseName
        end local 9 // java.lang.String lowerCaseName
        end local 8 // java.lang.String parameterNameToMatch
        end local 7 // java.lang.String parameterName
        end local 5 // org.springframework.jdbc.core.SqlParameter parameter
        46: .line 486
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext org.springframework.jdbc.core.namedparam.SqlParameterSource java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        47: .line 535
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 50
        48: .line 536
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Matching "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* caseInsensitiveParameterNames */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " with "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* callParameterNames */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        49: .line 537
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Found match for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* matchedParameters */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        50: .line 539
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext org.springframework.jdbc.core.namedparam.SqlParameterSource java.util.Map java.util.Map java.util.Map
      StackMap stack:
            aload 4 /* matchedParameters */
            areturn
        end local 4 // java.util.Map matchedParameters
        end local 3 // java.util.Map callParameterNames
        end local 2 // java.util.Map caseInsensitiveParameterNames
        end local 1 // org.springframework.jdbc.core.namedparam.SqlParameterSource parameterSource
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   51     0                           this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0   51     1                parameterSource  Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;
            2   51     2  caseInsensitiveParameterNames  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            3   51     3             callParameterNames  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            4   51     4              matchedParameters  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            6   46     5                      parameter  Lorg/springframework/jdbc/core/SqlParameter;
            8   46     7                  parameterName  Ljava/lang/String;
            9   46     8           parameterNameToMatch  Ljava/lang/String;
           18   46     9                  lowerCaseName  Ljava/lang/String;
           24   46    10           englishLowerCaseName  Ljava/lang/String;
           30   46    11                   propertyName  Ljava/lang/String;
           37   40    12                     sourceName  Ljava/lang/String;
    Signature: (Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    MethodParameters:
                 Name  Flags
      parameterSource  

  public java.util.Map<java.lang.String, ?> matchInParameterValuesWithCallParameters(java.util.Map<java.lang.String, ?>);
    descriptor: (Ljava/util/Map;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // java.util.Map inParameters
         0: .line 548
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.obtainMetaDataProvider:()Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            astore 2 /* provider */
        start local 2 // org.springframework.jdbc.core.metadata.CallMetaDataProvider provider
         1: .line 549
            aload 2 /* provider */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.isProcedureColumnMetaDataUsed:()Z
            ifne 3
         2: .line 550
            aload 1 /* inParameters */
            areturn
         3: .line 553
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataProvider
      StackMap stack:
            new java.util.HashMap
            dup
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.callParameters:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial java.util.HashMap.<init>:(I)V
            astore 3 /* callParameterNames */
        start local 3 // java.util.Map callParameterNames
         4: .line 554
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.callParameters:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.util.Map org.springframework.jdbc.core.metadata.CallMetaDataProvider java.util.Map top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.jdbc.core.SqlParameter
            astore 4 /* parameter */
        start local 4 // org.springframework.jdbc.core.SqlParameter parameter
         6: .line 555
            aload 4 /* parameter */
            invokevirtual org.springframework.jdbc.core.SqlParameter.isInputValueProvided:()Z
            ifeq 11
         7: .line 556
            aload 4 /* parameter */
            invokevirtual org.springframework.jdbc.core.SqlParameter.getName:()Ljava/lang/String;
            astore 6 /* parameterName */
        start local 6 // java.lang.String parameterName
         8: .line 557
            aload 2 /* provider */
            aload 6 /* parameterName */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.parameterNameToUse:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* parameterNameToMatch */
        start local 7 // java.lang.String parameterNameToMatch
         9: .line 558
            aload 7 /* parameterNameToMatch */
            ifnull 11
        10: .line 559
            aload 3 /* callParameterNames */
            aload 7 /* parameterNameToMatch */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            aload 6 /* parameterName */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.lang.String parameterNameToMatch
        end local 6 // java.lang.String parameterName
        end local 4 // org.springframework.jdbc.core.SqlParameter parameter
        11: .line 554
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        12: .line 564
            new java.util.HashMap
            dup
            aload 1 /* inParameters */
            invokeinterface java.util.Map.size:()I
            invokespecial java.util.HashMap.<init>:(I)V
            astore 4 /* matchedParameters */
        start local 4 // java.util.Map matchedParameters
        13: .line 565
            aload 1 /* inParameters */
            aload 0 /* this */
            aload 2 /* provider */
            aload 3 /* callParameterNames */
            aload 4 /* matchedParameters */
            invokedynamic accept(Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;Ljava/util/Map;Ljava/util/Map;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  org/springframework/jdbc/core/metadata/CallMetaDataContext.lambda$0(Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;Ljava/util/Map;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Object;)V (7)
                  (Ljava/lang/String;Ljava/lang/Object;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
        14: .line 585
            aload 4 /* matchedParameters */
            invokeinterface java.util.Map.size:()I
            aload 3 /* callParameterNames */
            invokeinterface java.util.Map.size:()I
            if_icmpge 24
        15: .line 586
            aload 3 /* callParameterNames */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 23
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.util.Map org.springframework.jdbc.core.metadata.CallMetaDataProvider java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        16: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* parameterName */
        start local 5 // java.lang.String parameterName
        17: .line 587
            aload 2 /* provider */
            aload 5 /* parameterName */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.parameterNameToUse:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* parameterNameToMatch */
        start local 7 // java.lang.String parameterNameToMatch
        18: .line 588
            aload 3 /* callParameterNames */
            aload 7 /* parameterNameToMatch */
            invokestatic org.springframework.jdbc.core.metadata.CallMetaDataContext.lowerCase:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* callParameterName */
        start local 8 // java.lang.String callParameterName
        19: .line 589
            aload 4 /* matchedParameters */
            aload 8 /* callParameterName */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 23
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
            ifeq 23
        20: .line 590
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Unable to locate the corresponding parameter value for '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* parameterName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 591
            ldc "' within the parameter values provided: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* inParameters */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 590
            invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
        end local 8 // java.lang.String callParameterName
        end local 7 // java.lang.String parameterNameToMatch
        end local 5 // java.lang.String parameterName
        23: .line 586
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        24: .line 596
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.util.Map org.springframework.jdbc.core.metadata.CallMetaDataProvider java.util.Map java.util.Map
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 27
        25: .line 597
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Matching "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* inParameters */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " with "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* callParameterNames */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        26: .line 598
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Found match for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* matchedParameters */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        27: .line 600
      StackMap locals:
      StackMap stack:
            aload 4 /* matchedParameters */
            areturn
        end local 4 // java.util.Map matchedParameters
        end local 3 // java.util.Map callParameterNames
        end local 2 // org.springframework.jdbc.core.metadata.CallMetaDataProvider provider
        end local 1 // java.util.Map inParameters
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   28     0                  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0   28     1          inParameters  Ljava/util/Map<Ljava/lang/String;*>;
            1   28     2              provider  Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            4   28     3    callParameterNames  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            6   11     4             parameter  Lorg/springframework/jdbc/core/SqlParameter;
            8   11     6         parameterName  Ljava/lang/String;
            9   11     7  parameterNameToMatch  Ljava/lang/String;
           13   28     4     matchedParameters  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
           17   23     5         parameterName  Ljava/lang/String;
           18   23     7  parameterNameToMatch  Ljava/lang/String;
           19   23     8     callParameterName  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;*>;)Ljava/util/Map<Ljava/lang/String;*>;
    MethodParameters:
              Name  Flags
      inParameters  

  public java.util.Map<java.lang.String, ?> matchInParameterValuesWithCallParameters([]);
    descriptor: ([Ljava/lang/Object;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // java.lang.Object[] parameterValues
         0: .line 604
            new java.util.HashMap
            dup
            aload 1 /* parameterValues */
            arraylength
            invokespecial java.util.HashMap.<init>:(I)V
            astore 2 /* matchedParameters */
        start local 2 // java.util.Map matchedParameters
         1: .line 605
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: .line 606
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.callParameters:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.lang.Object[] java.util.Map int top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.jdbc.core.SqlParameter
            astore 4 /* parameter */
        start local 4 // org.springframework.jdbc.core.SqlParameter parameter
         4: .line 607
            aload 4 /* parameter */
            invokevirtual org.springframework.jdbc.core.SqlParameter.isInputValueProvided:()Z
            ifeq 7
         5: .line 608
            aload 4 /* parameter */
            invokevirtual org.springframework.jdbc.core.SqlParameter.getName:()Ljava/lang/String;
            astore 6 /* parameterName */
        start local 6 // java.lang.String parameterName
         6: .line 609
            aload 2 /* matchedParameters */
            aload 6 /* parameterName */
            aload 1 /* parameterValues */
            iload 3 /* i */
            iinc 3 /* i */ 1
            aaload
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.String parameterName
        end local 4 // org.springframework.jdbc.core.SqlParameter parameter
         7: .line 606
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 612
            aload 2 /* matchedParameters */
            areturn
        end local 3 // int i
        end local 2 // java.util.Map matchedParameters
        end local 1 // java.lang.Object[] parameterValues
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    9     0               this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    9     1    parameterValues  [Ljava/lang/Object;
            1    9     2  matchedParameters  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            2    9     3                  i  I
            4    7     4          parameter  Lorg/springframework/jdbc/core/SqlParameter;
            6    7     6      parameterName  Ljava/lang/String;
    Signature: ([Ljava/lang/Object;)Ljava/util/Map<Ljava/lang/String;*>;
    MethodParameters:
                 Name  Flags
      parameterValues  

  public java.lang.String createCallString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
         0: .line 620
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.metaDataProvider:Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "No CallMetaDataProvider available"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         3: .line 623
            iconst_0
            istore 2 /* parameterCount */
        start local 2 // int parameterCount
         4: .line 629
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.metaDataProvider:Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.isSupportsSchemasInProcedureCalls:()Z
            ifeq 9
         5: .line 630
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.metaDataProvider:Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.isSupportsCatalogsInProcedureCalls:()Z
            ifne 9
         6: .line 631
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.metaDataProvider:Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.getCatalogName:()Ljava/lang/String;
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.catalogNameToUse:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* schemaNameToUse */
        start local 4 // java.lang.String schemaNameToUse
         7: .line 632
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.metaDataProvider:Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.getSchemaName:()Ljava/lang/String;
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.schemaNameToUse:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* catalogNameToUse */
        start local 3 // java.lang.String catalogNameToUse
         8: .line 633
            goto 11
        end local 4 // java.lang.String schemaNameToUse
        end local 3 // java.lang.String catalogNameToUse
         9: .line 635
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext top int
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.metaDataProvider:Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.getCatalogName:()Ljava/lang/String;
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.catalogNameToUse:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* catalogNameToUse */
        start local 3 // java.lang.String catalogNameToUse
        10: .line 636
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.metaDataProvider:Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.getSchemaName:()Ljava/lang/String;
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.schemaNameToUse:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* schemaNameToUse */
        start local 4 // java.lang.String schemaNameToUse
        11: .line 639
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.metaDataProvider:Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.getProcedureName:()Ljava/lang/String;
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.procedureNameToUse:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* procedureNameToUse */
        start local 5 // java.lang.String procedureNameToUse
        12: .line 640
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.isFunction:()Z
            ifne 13
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.isReturnValueRequired:()Z
            ifeq 24
        13: .line 641
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            ldc "{? = call "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 642
            aload 3 /* catalogNameToUse */
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 15
            new java.lang.StringBuilder
            dup
            aload 3 /* catalogNameToUse */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 16
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        15: ldc ""
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext top int java.lang.String java.lang.String java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
        16: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 643
            aload 4 /* schemaNameToUse */
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 18
            new java.lang.StringBuilder
            dup
            aload 4 /* schemaNameToUse */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 19
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        18: ldc ""
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext top int java.lang.String java.lang.String java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
        19: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 644
            aload 5 /* procedureNameToUse */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 641
            astore 1 /* callString */
        start local 1 // java.lang.StringBuilder callString
        22: .line 645
            iconst_m1
            istore 2 /* parameterCount */
        23: .line 646
            goto 33
        end local 1 // java.lang.StringBuilder callString
        24: .line 648
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            ldc "{call "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 649
            aload 3 /* catalogNameToUse */
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 26
            new java.lang.StringBuilder
            dup
            aload 3 /* catalogNameToUse */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 27
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        26: ldc ""
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext top int java.lang.String java.lang.String java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
        27: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 650
            aload 4 /* schemaNameToUse */
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 29
            new java.lang.StringBuilder
            dup
            aload 4 /* schemaNameToUse */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 30
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        29: ldc ""
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext top int java.lang.String java.lang.String java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
        30: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 651
            aload 5 /* procedureNameToUse */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        32: .line 648
            astore 1 /* callString */
        start local 1 // java.lang.StringBuilder callString
        33: .line 654
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.lang.StringBuilder int java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.callParameters:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 41
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.lang.StringBuilder int java.lang.String java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
        34: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.jdbc.core.SqlParameter
            astore 6 /* parameter */
        start local 6 // org.springframework.jdbc.core.SqlParameter parameter
        35: .line 655
            aload 6 /* parameter */
            invokevirtual org.springframework.jdbc.core.SqlParameter.isResultsParameter:()Z
            ifne 41
        36: .line 656
            iload 2 /* parameterCount */
            ifle 38
        37: .line 657
            aload 1 /* callString */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        38: .line 659
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.lang.StringBuilder int java.lang.String java.lang.String java.lang.String org.springframework.jdbc.core.SqlParameter java.util.Iterator
      StackMap stack:
            iload 2 /* parameterCount */
            iflt 40
        39: .line 660
            aload 1 /* callString */
            aload 0 /* this */
            aload 6 /* parameter */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.createParameterBinding:(Lorg/springframework/jdbc/core/SqlParameter;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        40: .line 662
      StackMap locals:
      StackMap stack:
            iinc 2 /* parameterCount */ 1
        end local 6 // org.springframework.jdbc.core.SqlParameter parameter
        41: .line 654
      StackMap locals: org.springframework.jdbc.core.metadata.CallMetaDataContext java.lang.StringBuilder int java.lang.String java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 34
        42: .line 665
            aload 1 /* callString */
            ldc ")}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        43: .line 667
            aload 1 /* callString */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 5 // java.lang.String procedureNameToUse
        end local 4 // java.lang.String schemaNameToUse
        end local 3 // java.lang.String catalogNameToUse
        end local 2 // int parameterCount
        end local 1 // java.lang.StringBuilder callString
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   44     0                this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
           22   24     1          callString  Ljava/lang/StringBuilder;
           33   44     1          callString  Ljava/lang/StringBuilder;
            4   44     2      parameterCount  I
            8    9     3    catalogNameToUse  Ljava/lang/String;
           10   44     3    catalogNameToUse  Ljava/lang/String;
            7    9     4     schemaNameToUse  Ljava/lang/String;
           11   44     4     schemaNameToUse  Ljava/lang/String;
           12   44     5  procedureNameToUse  Ljava/lang/String;
           35   41     6           parameter  Lorg/springframework/jdbc/core/SqlParameter;

  protected java.lang.String createParameterBinding(org.springframework.jdbc.core.SqlParameter);
    descriptor: (Lorg/springframework/jdbc/core/SqlParameter;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 1 // org.springframework.jdbc.core.SqlParameter parameter
         0: .line 677
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.core.metadata.CallMetaDataContext.isNamedBinding:()Z
            ifeq 1
            new java.lang.StringBuilder
            dup
            aload 1 /* parameter */
            invokevirtual org.springframework.jdbc.core.SqlParameter.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " => ?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc "?"
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 1 // org.springframework.jdbc.core.SqlParameter parameter
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0    3     1  parameter  Lorg/springframework/jdbc/core/SqlParameter;
    MethodParameters:
           Name  Flags
      parameter  

  private static java.lang.String lowerCase(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String paramName
         0: .line 681
            aload 0 /* paramName */
            ifnull 1
            aload 0 /* paramName */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // java.lang.String paramName
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  paramName  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
           Name  Flags
      paramName  

  private void lambda$0(org.springframework.jdbc.core.metadata.CallMetaDataProvider, java.util.Map, java.util.Map, java.lang.String, java.lang.Object);
    descriptor: (Lorg/springframework/jdbc/core/metadata/CallMetaDataProvider;Ljava/util/Map;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=9, args_size=6
        start local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
        start local 4 // java.lang.String parameterName
        start local 5 // java.lang.Object parameterValue
         0: .line 566
            aload 1
            aload 4 /* parameterName */
            invokeinterface org.springframework.jdbc.core.metadata.CallMetaDataProvider.parameterNameToUse:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* parameterNameToMatch */
        start local 6 // java.lang.String parameterNameToMatch
         1: .line 567
            aload 2
            aload 6 /* parameterNameToMatch */
            invokestatic org.springframework.jdbc.core.metadata.CallMetaDataContext.lowerCase:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* callParameterName */
        start local 7 // java.lang.String callParameterName
         2: .line 568
            aload 7 /* callParameterName */
            ifnonnull 12
         3: .line 569
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 13
         4: .line 570
            aload 5 /* parameterValue */
            astore 8 /* value */
        start local 8 // java.lang.Object value
         5: .line 571
            aload 8 /* value */
            instanceof org.springframework.jdbc.core.SqlParameterValue
            ifeq 7
         6: .line 572
            aload 8 /* value */
            checkcast org.springframework.jdbc.core.SqlParameterValue
            invokevirtual org.springframework.jdbc.core.SqlParameterValue.getValue:()Ljava/lang/Object;
            astore 8 /* value */
         7: .line 574
      StackMap locals: java.lang.String java.lang.String java.lang.Object
      StackMap stack:
            aload 8 /* value */
            ifnull 13
         8: .line 575
            aload 0 /* this */
            getfield org.springframework.jdbc.core.metadata.CallMetaDataContext.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Unable to locate the corresponding IN or IN-OUT parameter for \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 576
            aload 4 /* parameterName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\" in the parameters used: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 575
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        end local 8 // java.lang.Object value
        11: .line 579
            goto 13
        12: .line 581
      StackMap locals:
      StackMap stack:
            aload 3
            aload 7 /* callParameterName */
            aload 5 /* parameterValue */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.lang.String callParameterName
        end local 6 // java.lang.String parameterNameToMatch
        13: .line 583
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.lang.Object parameterValue
        end local 4 // java.lang.String parameterName
        end local 0 // org.springframework.jdbc.core.metadata.CallMetaDataContext this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   14     0                  this  Lorg/springframework/jdbc/core/metadata/CallMetaDataContext;
            0   14     4         parameterName  Ljava/lang/String;
            0   14     5        parameterValue  Ljava/lang/Object;
            1   13     6  parameterNameToMatch  Ljava/lang/String;
            2   13     7     callParameterName  Ljava/lang/String;
            5   11     8                 value  Ljava/lang/Object;
}
SourceFile: "CallMetaDataContext.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles