public class sun.jvm.hotspot.utilities.soql.SOQLEngine extends sun.jvm.hotspot.utilities.soql.JSJavaScriptEngine
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.utilities.soql.SOQLEngine
  super_class: sun.jvm.hotspot.utilities.soql.JSJavaScriptEngine
{
  private static final boolean debug;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private sun.jvm.hotspot.utilities.ObjectReader objReader;
    descriptor: Lsun/jvm/hotspot/utilities/ObjectReader;
    flags: (0x0002) ACC_PRIVATE

  private sun.jvm.hotspot.utilities.soql.JSJavaFactory factory;
    descriptor: Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
    flags: (0x0002) ACC_PRIVATE

  private static sun.jvm.hotspot.utilities.soql.SOQLEngine soleInstance;
    descriptor: Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 254
            ldc "sun.jvm.hotspot.utilities.soql.SOQLEngine.debug"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic sun.jvm.hotspot.utilities.soql.SOQLEngine.debug:Z
         3: .line 264
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static synchronized sun.jvm.hotspot.utilities.soql.SOQLEngine getEngine();
    descriptor: ()Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=0, args_size=0
         0: .line 40
            getstatic sun.jvm.hotspot.utilities.soql.SOQLEngine.soleInstance:Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
            ifnonnull 2
         1: .line 41
            new sun.jvm.hotspot.utilities.soql.SOQLEngine
            dup
            invokespecial sun.jvm.hotspot.utilities.soql.SOQLEngine.<init>:()V
            putstatic sun.jvm.hotspot.utilities.soql.SOQLEngine.soleInstance:Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
         2: .line 43
      StackMap locals:
      StackMap stack:
            getstatic sun.jvm.hotspot.utilities.soql.SOQLEngine.soleInstance:Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public synchronized void executeQuery(java.lang.String, sun.jvm.hotspot.utilities.soql.ObjectVisitor);
    descriptor: (Ljava/lang/String;Lsun/jvm/hotspot/utilities/soql/ObjectVisitor;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=8, locals=13, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
        start local 1 // java.lang.String query
        start local 2 // sun.jvm.hotspot.utilities.soql.ObjectVisitor visitor
         0: .line 56
            new java.lang.StringBuilder
            dup
            ldc "query : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* query */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic sun.jvm.hotspot.utilities.soql.SOQLEngine.debugPrint:(Ljava/lang/String;)V
         1: .line 57
            new java.util.StringTokenizer
            dup
            aload 1 /* query */
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
            astore 3 /* st */
        start local 3 // java.util.StringTokenizer st
         2: .line 58
            aload 3 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 6
         3: .line 59
            aload 3 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 4 /* first */
        start local 4 // java.lang.String first
         4: .line 60
            aload 4 /* first */
            ldc "select"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
         5: .line 61
            new sun.jvm.hotspot.utilities.soql.SOQLException
            dup
            ldc "query syntax error: no 'select' clause"
            invokespecial sun.jvm.hotspot.utilities.soql.SOQLException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String first
         6: .line 64
      StackMap locals: java.util.StringTokenizer
      StackMap stack:
            new sun.jvm.hotspot.utilities.soql.SOQLException
            dup
            ldc "query syntax error: no 'select' clause"
            invokespecial sun.jvm.hotspot.utilities.soql.SOQLException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 67
      StackMap locals:
      StackMap stack:
            aload 1 /* query */
            ldc "select"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 4 /* selectStart */
        start local 4 // int selectStart
         8: .line 68
            aload 1 /* query */
            ldc "from"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 5 /* fromStart */
        start local 5 // int fromStart
         9: .line 70
            aconst_null
            astore 6 /* selectExpr */
        start local 6 // java.lang.String selectExpr
        10: .line 71
            aconst_null
            astore 7 /* className */
        start local 7 // java.lang.String className
        11: .line 72
            iconst_0
            istore 8 /* isInstanceOf */
        start local 8 // boolean isInstanceOf
        12: .line 73
            aconst_null
            astore 9 /* whereExpr */
        start local 9 // java.lang.String whereExpr
        13: .line 74
            aconst_null
            astore 10 /* identifier */
        start local 10 // java.lang.String identifier
        14: .line 76
            iload 5 /* fromStart */
            iconst_m1
            if_icmpeq 40
        15: .line 77
            aload 1 /* query */
            iload 4 /* selectStart */
            ldc "select"
            invokevirtual java.lang.String.length:()I
            iadd
            iload 5 /* fromStart */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* selectExpr */
        16: .line 78
            new java.util.StringTokenizer
            dup
            aload 1 /* query */
            iload 5 /* fromStart */
            ldc "from"
            invokevirtual java.lang.String.length:()I
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
            astore 3 /* st */
        17: .line 80
            aload 3 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 27
        18: .line 81
            aload 3 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 11 /* tmp */
        start local 11 // java.lang.String tmp
        19: .line 82
            aload 11 /* tmp */
            ldc "instanceof"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
        20: .line 83
            iconst_1
            istore 8 /* isInstanceOf */
        21: .line 84
            aload 3 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 23
        22: .line 85
            new sun.jvm.hotspot.utilities.soql.SOQLException
            dup
            ldc "no class name after 'instanceof'"
            invokespecial sun.jvm.hotspot.utilities.soql.SOQLException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 87
      StackMap locals: sun.jvm.hotspot.utilities.soql.SOQLEngine java.lang.String sun.jvm.hotspot.utilities.soql.ObjectVisitor java.util.StringTokenizer int int java.lang.String java.lang.String int java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 7 /* className */
        24: .line 88
            goto 28
        25: .line 89
      StackMap locals:
      StackMap stack:
            aload 11 /* tmp */
            astore 7 /* className */
        end local 11 // java.lang.String tmp
        26: .line 91
            goto 28
        27: .line 92
      StackMap locals:
      StackMap stack:
            new sun.jvm.hotspot.utilities.soql.SOQLException
            dup
            ldc "query syntax error: class name must follow 'from'"
            invokespecial sun.jvm.hotspot.utilities.soql.SOQLException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 95
      StackMap locals:
      StackMap stack:
            aload 3 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 39
        29: .line 96
            aload 3 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 10 /* identifier */
        30: .line 97
            aload 10 /* identifier */
            ldc "where"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        31: .line 98
            new sun.jvm.hotspot.utilities.soql.SOQLException
            dup
            ldc "query syntax error: identifier should follow class name"
            invokespecial sun.jvm.hotspot.utilities.soql.SOQLException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 100
      StackMap locals:
      StackMap stack:
            aload 3 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 41
        33: .line 101
            aload 3 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 11 /* tmp */
        start local 11 // java.lang.String tmp
        34: .line 102
            aload 11 /* tmp */
            ldc "where"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 36
        35: .line 103
            new sun.jvm.hotspot.utilities.soql.SOQLException
            dup
            ldc "query syntax error: 'where' clause expected after 'from' clause"
            invokespecial sun.jvm.hotspot.utilities.soql.SOQLException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 105
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* query */
            ldc "where"
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            iconst_5
            iadd
            istore 12 /* whereEnd */
        start local 12 // int whereEnd
        37: .line 106
            aload 1 /* query */
            iload 12 /* whereEnd */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 9 /* whereExpr */
        end local 12 // int whereEnd
        end local 11 // java.lang.String tmp
        38: .line 108
            goto 41
        39: .line 109
      StackMap locals:
      StackMap stack:
            new sun.jvm.hotspot.utilities.soql.SOQLException
            dup
            ldc "query syntax error: identifier should follow class name"
            invokespecial sun.jvm.hotspot.utilities.soql.SOQLException.<init>:(Ljava/lang/String;)V
            athrow
        40: .line 112
      StackMap locals:
      StackMap stack:
            aload 1 /* query */
            iload 4 /* selectStart */
            ldc "select"
            invokevirtual java.lang.String.length:()I
            iadd
            aload 1 /* query */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* selectExpr */
        41: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.jvm.hotspot.utilities.soql.SOQLQuery
            dup
            aload 6 /* selectExpr */
            iload 8 /* isInstanceOf */
            aload 7 /* className */
            aload 10 /* identifier */
            aload 9 /* whereExpr */
            invokespecial sun.jvm.hotspot.utilities.soql.SOQLQuery.<init>:(Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            aload 2 /* visitor */
            invokevirtual sun.jvm.hotspot.utilities.soql.SOQLEngine.executeQuery:(Lsun/jvm/hotspot/utilities/soql/SOQLQuery;Lsun/jvm/hotspot/utilities/soql/ObjectVisitor;)V
        42: .line 116
            return
        end local 10 // java.lang.String identifier
        end local 9 // java.lang.String whereExpr
        end local 8 // boolean isInstanceOf
        end local 7 // java.lang.String className
        end local 6 // java.lang.String selectExpr
        end local 5 // int fromStart
        end local 4 // int selectStart
        end local 3 // java.util.StringTokenizer st
        end local 2 // sun.jvm.hotspot.utilities.soql.ObjectVisitor visitor
        end local 1 // java.lang.String query
        end local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   43     0          this  Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
            0   43     1         query  Ljava/lang/String;
            0   43     2       visitor  Lsun/jvm/hotspot/utilities/soql/ObjectVisitor;
            2   43     3            st  Ljava/util/StringTokenizer;
            4    6     4         first  Ljava/lang/String;
            8   43     4   selectStart  I
            9   43     5     fromStart  I
           10   43     6    selectExpr  Ljava/lang/String;
           11   43     7     className  Ljava/lang/String;
           12   43     8  isInstanceOf  Z
           13   43     9     whereExpr  Ljava/lang/String;
           14   43    10    identifier  Ljava/lang/String;
           19   26    11           tmp  Ljava/lang/String;
           34   38    11           tmp  Ljava/lang/String;
           37   38    12      whereEnd  I
    Exceptions:
      throws sun.jvm.hotspot.utilities.soql.SOQLException
    MethodParameters:
         Name  Flags
      query    
      visitor  

  private void executeQuery(sun.jvm.hotspot.utilities.soql.SOQLQuery, sun.jvm.hotspot.utilities.soql.ObjectVisitor);
    descriptor: (Lsun/jvm/hotspot/utilities/soql/SOQLQuery;Lsun/jvm/hotspot/utilities/soql/ObjectVisitor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
        start local 1 // sun.jvm.hotspot.utilities.soql.SOQLQuery q
        start local 2 // sun.jvm.hotspot.utilities.soql.ObjectVisitor visitor
         0: .line 119
            aconst_null
            astore 3 /* kls */
        start local 3 // sun.jvm.hotspot.oops.InstanceKlass kls
         1: .line 120
            aload 1 /* q */
            getfield sun.jvm.hotspot.utilities.soql.SOQLQuery.className:Ljava/lang/String;
            ifnull 5
         2: .line 121
            aload 1 /* q */
            getfield sun.jvm.hotspot.utilities.soql.SOQLQuery.className:Ljava/lang/String;
            invokestatic sun.jvm.hotspot.utilities.SystemDictionaryHelper.findInstanceKlass:(Ljava/lang/String;)Lsun/jvm/hotspot/oops/InstanceKlass;
            astore 3 /* kls */
         3: .line 122
            aload 3 /* kls */
            ifnonnull 5
         4: .line 123
            new sun.jvm.hotspot.utilities.soql.SOQLException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* q */
            getfield sun.jvm.hotspot.utilities.soql.SOQLQuery.className:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " is not found!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial sun.jvm.hotspot.utilities.soql.SOQLException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 128
      StackMap locals: sun.jvm.hotspot.oops.InstanceKlass
      StackMap stack:
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 4 /* buf */
        start local 4 // java.lang.StringBuffer buf
         6: .line 129
            aload 4 /* buf */
            ldc "function result("
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         7: .line 130
            aload 1 /* q */
            getfield sun.jvm.hotspot.utilities.soql.SOQLQuery.identifier:Ljava/lang/String;
            ifnull 9
         8: .line 131
            aload 4 /* buf */
            aload 1 /* q */
            getfield sun.jvm.hotspot.utilities.soql.SOQLQuery.identifier:Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         9: .line 133
      StackMap locals: java.lang.StringBuffer
      StackMap stack:
            aload 4 /* buf */
            ldc ") { return "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        10: .line 134
            aload 4 /* buf */
            aload 1 /* q */
            getfield sun.jvm.hotspot.utilities.soql.SOQLQuery.selectExpr:Ljava/lang/String;
            bipush 10
            bipush 32
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        11: .line 135
            aload 4 /* buf */
            ldc "; }"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        12: .line 137
            aload 4 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            astore 5 /* selectCode */
        start local 5 // java.lang.String selectCode
        13: .line 138
            aload 5 /* selectCode */
            invokestatic sun.jvm.hotspot.utilities.soql.SOQLEngine.debugPrint:(Ljava/lang/String;)V
        14: .line 139
            aconst_null
            astore 6 /* whereCode */
        start local 6 // java.lang.String whereCode
        15: .line 140
            aload 1 /* q */
            getfield sun.jvm.hotspot.utilities.soql.SOQLQuery.whereExpr:Ljava/lang/String;
            ifnull 25
        16: .line 141
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 4 /* buf */
        17: .line 142
            aload 4 /* buf */
            ldc "function filter("
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        18: .line 143
            aload 4 /* buf */
            aload 1 /* q */
            getfield sun.jvm.hotspot.utilities.soql.SOQLQuery.identifier:Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        19: .line 144
            aload 4 /* buf */
            ldc ") { return "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        20: .line 145
            aload 4 /* buf */
            aload 1 /* q */
            getfield sun.jvm.hotspot.utilities.soql.SOQLQuery.whereExpr:Ljava/lang/String;
            bipush 10
            bipush 32
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        21: .line 146
            aload 4 /* buf */
            ldc "; }"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        22: .line 147
            aload 4 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            astore 6 /* whereCode */
        23: .line 148
            aload 6 /* whereCode */
            invokestatic sun.jvm.hotspot.utilities.soql.SOQLEngine.debugPrint:(Ljava/lang/String;)V
        24: .line 149
            goto 26
        25: .line 150
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            ldc "filter = null;"
            astore 6 /* whereCode */
        26: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.soql.SOQLEngine.beginQuery:()V
        27: .line 155
            aload 0 /* this */
            aload 5 /* selectCode */
            ldc ""
            iconst_1
            invokevirtual sun.jvm.hotspot.utilities.soql.SOQLEngine.evalString:(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/Object;
            pop
        28: .line 156
            aload 0 /* this */
            aload 6 /* whereCode */
            ldc ""
            iconst_1
            invokevirtual sun.jvm.hotspot.utilities.soql.SOQLEngine.evalString:(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/Object;
            pop
        29: .line 159
            aload 1 /* q */
            getfield sun.jvm.hotspot.utilities.soql.SOQLQuery.className:Ljava/lang/String;
            ifnull 37
        30: .line 161
            aload 0 /* this */
            aload 3 /* kls */
            aload 2 /* visitor */
            aload 1 /* q */
            getfield sun.jvm.hotspot.utilities.soql.SOQLQuery.isInstanceOf:Z
            invokevirtual sun.jvm.hotspot.utilities.soql.SOQLEngine.iterateOops:(Lsun/jvm/hotspot/oops/InstanceKlass;Lsun/jvm/hotspot/utilities/soql/ObjectVisitor;Z)V
        31: .line 162
            goto 35
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 7
        33: .line 163
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.soql.SOQLEngine.endQuery:()V
        34: .line 164
            aload 7
            athrow
        35: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.soql.SOQLEngine.endQuery:()V
        36: .line 165
            goto 42
        37: .line 168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "result"
            iconst_0
            anewarray java.lang.Object
            invokevirtual sun.jvm.hotspot.utilities.soql.SOQLEngine.call:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* select */
        start local 7 // java.lang.Object select
        38: .line 169
            aload 2 /* visitor */
            aload 7 /* select */
            invokeinterface sun.jvm.hotspot.utilities.soql.ObjectVisitor.visit:(Ljava/lang/Object;)V
        end local 7 // java.lang.Object select
        39: .line 170
            goto 42
      StackMap locals:
      StackMap stack: java.lang.Exception
        40: astore 7 /* e */
        start local 7 // java.lang.Exception e
        41: .line 171
            aload 7 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 7 // java.lang.Exception e
        42: .line 174
      StackMap locals:
      StackMap stack:
            return
        end local 6 // java.lang.String whereCode
        end local 5 // java.lang.String selectCode
        end local 4 // java.lang.StringBuffer buf
        end local 3 // sun.jvm.hotspot.oops.InstanceKlass kls
        end local 2 // sun.jvm.hotspot.utilities.soql.ObjectVisitor visitor
        end local 1 // sun.jvm.hotspot.utilities.soql.SOQLQuery q
        end local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0        this  Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
            0   43     1           q  Lsun/jvm/hotspot/utilities/soql/SOQLQuery;
            0   43     2     visitor  Lsun/jvm/hotspot/utilities/soql/ObjectVisitor;
            1   43     3         kls  Lsun/jvm/hotspot/oops/InstanceKlass;
            6   43     4         buf  Ljava/lang/StringBuffer;
           13   43     5  selectCode  Ljava/lang/String;
           15   43     6   whereCode  Ljava/lang/String;
           38   39     7      select  Ljava/lang/Object;
           41   42     7           e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          30    32      32  any
          37    39      40  Class java.lang.Exception
    Exceptions:
      throws sun.jvm.hotspot.utilities.soql.SOQLException
    MethodParameters:
         Name  Flags
      q        
      visitor  

  private void dispatchObject(sun.jvm.hotspot.oops.Oop, sun.jvm.hotspot.utilities.soql.ObjectVisitor, boolean);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;Lsun/jvm/hotspot/utilities/soql/ObjectVisitor;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
        start local 1 // sun.jvm.hotspot.oops.Oop oop
        start local 2 // sun.jvm.hotspot.utilities.soql.ObjectVisitor visitor
        start local 3 // boolean filterExists
         0: .line 177
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.soql.SOQLEngine.factory:Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
            aload 1 /* oop */
            invokeinterface sun.jvm.hotspot.utilities.soql.JSJavaFactory.newJSJavaObject:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/utilities/soql/JSJavaObject;
            astore 4 /* jsObj */
        start local 4 // sun.jvm.hotspot.utilities.soql.JSJavaObject jsObj
         1: .line 178
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* jsObj */
            aastore
            astore 5 /* args */
        start local 5 // java.lang.Object[] args
         2: .line 179
            iconst_1
            istore 6 /* b */
        start local 6 // boolean b
         3: .line 182
            iload 3 /* filterExists */
            ifeq 16
         4: .line 183
            aload 0 /* this */
            ldc "filter"
            aload 5 /* args */
            invokevirtual sun.jvm.hotspot.utilities.soql.SOQLEngine.call:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* res */
        start local 7 // java.lang.Object res
         5: .line 184
            aload 7 /* res */
            instanceof java.lang.Boolean
            ifeq 8
         6: .line 185
            aload 7 /* res */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 6 /* b */
         7: .line 186
            goto 16
      StackMap locals: sun.jvm.hotspot.utilities.soql.SOQLEngine sun.jvm.hotspot.oops.Oop sun.jvm.hotspot.utilities.soql.ObjectVisitor int sun.jvm.hotspot.utilities.soql.JSJavaObject java.lang.Object[] int java.lang.Object
      StackMap stack:
         8: aload 7 /* res */
            instanceof java.lang.Number
            ifeq 13
         9: .line 187
            aload 7 /* res */
            checkcast java.lang.Number
            invokevirtual java.lang.Number.intValue:()I
            ifeq 10
            iconst_1
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 6 /* b */
        12: .line 188
            goto 16
        13: .line 189
      StackMap locals:
      StackMap stack:
            aload 7 /* res */
            ifnull 14
            iconst_1
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 6 /* b */
        end local 7 // java.lang.Object res
        16: .line 193
      StackMap locals:
      StackMap stack:
            iload 6 /* b */
            ifeq 22
        17: .line 194
            aload 0 /* this */
            ldc "result"
            aload 5 /* args */
            invokevirtual sun.jvm.hotspot.utilities.soql.SOQLEngine.call:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* select */
        start local 7 // java.lang.Object select
        18: .line 195
            aload 2 /* visitor */
            aload 7 /* select */
            invokeinterface sun.jvm.hotspot.utilities.soql.ObjectVisitor.visit:(Ljava/lang/Object;)V
        end local 7 // java.lang.Object select
        19: .line 197
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Exception
        20: astore 7 /* e */
        start local 7 // java.lang.Exception e
        21: .line 198
            new java.lang.RuntimeException
            dup
            aload 7 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.lang.Exception e
        22: .line 200
      StackMap locals:
      StackMap stack:
            return
        end local 6 // boolean b
        end local 5 // java.lang.Object[] args
        end local 4 // sun.jvm.hotspot.utilities.soql.JSJavaObject jsObj
        end local 3 // boolean filterExists
        end local 2 // sun.jvm.hotspot.utilities.soql.ObjectVisitor visitor
        end local 1 // sun.jvm.hotspot.oops.Oop oop
        end local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   23     0          this  Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
            0   23     1           oop  Lsun/jvm/hotspot/oops/Oop;
            0   23     2       visitor  Lsun/jvm/hotspot/utilities/soql/ObjectVisitor;
            0   23     3  filterExists  Z
            1   23     4         jsObj  Lsun/jvm/hotspot/utilities/soql/JSJavaObject;
            2   23     5          args  [Ljava/lang/Object;
            3   23     6             b  Z
            5   16     7           res  Ljava/lang/Object;
           18   19     7        select  Ljava/lang/Object;
           21   22     7             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3    19      20  Class java.lang.Exception
    MethodParameters:
              Name  Flags
      oop           
      visitor       
      filterExists  

  private void iterateOops(sun.jvm.hotspot.oops.InstanceKlass, sun.jvm.hotspot.utilities.soql.ObjectVisitor, boolean);
    descriptor: (Lsun/jvm/hotspot/oops/InstanceKlass;Lsun/jvm/hotspot/utilities/soql/ObjectVisitor;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
        start local 1 // sun.jvm.hotspot.oops.InstanceKlass ik
        start local 2 // sun.jvm.hotspot.utilities.soql.ObjectVisitor visitor
        start local 3 // boolean includeSubtypes
         0: .line 204
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getObjectHeap:()Lsun/jvm/hotspot/oops/ObjectHeap;
            astore 4 /* oh */
        start local 4 // sun.jvm.hotspot.oops.ObjectHeap oh
         1: .line 205
            aload 4 /* oh */
            new sun.jvm.hotspot.utilities.soql.SOQLEngine$1
            dup
            aload 0 /* this */
            aload 2 /* visitor */
            invokespecial sun.jvm.hotspot.utilities.soql.SOQLEngine$1.<init>:(Lsun/jvm/hotspot/utilities/soql/SOQLEngine;Lsun/jvm/hotspot/utilities/soql/ObjectVisitor;)V
         2: .line 215
            aload 1 /* ik */
            iload 3 /* includeSubtypes */
         3: .line 205
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.iterateObjectsOfKlass:(Lsun/jvm/hotspot/oops/HeapVisitor;Lsun/jvm/hotspot/oops/Klass;Z)V
         4: .line 216
            return
        end local 4 // sun.jvm.hotspot.oops.ObjectHeap oh
        end local 3 // boolean includeSubtypes
        end local 2 // sun.jvm.hotspot.utilities.soql.ObjectVisitor visitor
        end local 1 // sun.jvm.hotspot.oops.InstanceKlass ik
        end local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
            0    5     1               ik  Lsun/jvm/hotspot/oops/InstanceKlass;
            0    5     2          visitor  Lsun/jvm/hotspot/utilities/soql/ObjectVisitor;
            0    5     3  includeSubtypes  Z
            1    5     4               oh  Lsun/jvm/hotspot/oops/ObjectHeap;
    MethodParameters:
                 Name  Flags
      ik               final
      visitor          final
      includeSubtypes  

  private void beginQuery();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
         0: .line 221
            aload 0 /* this */
            new sun.jvm.hotspot.utilities.ObjectReader
            dup
            invokespecial sun.jvm.hotspot.utilities.ObjectReader.<init>:()V
            putfield sun.jvm.hotspot.utilities.soql.SOQLEngine.objReader:Lsun/jvm/hotspot/utilities/ObjectReader;
         1: .line 222
            aload 0 /* this */
            new sun.jvm.hotspot.utilities.soql.JSJavaFactoryImpl
            dup
            invokespecial sun.jvm.hotspot.utilities.soql.JSJavaFactoryImpl.<init>:()V
            putfield sun.jvm.hotspot.utilities.soql.SOQLEngine.factory:Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
         2: .line 223
            return
        end local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/jvm/hotspot/utilities/soql/SOQLEngine;

  private void endQuery();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
         0: .line 228
            aload 0 /* this */
            aconst_null
            putfield sun.jvm.hotspot.utilities.soql.SOQLEngine.objReader:Lsun/jvm/hotspot/utilities/ObjectReader;
         1: .line 229
            aload 0 /* this */
            aconst_null
            putfield sun.jvm.hotspot.utilities.soql.SOQLEngine.factory:Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
         2: .line 230
            return
        end local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/jvm/hotspot/utilities/soql/SOQLEngine;

  protected sun.jvm.hotspot.utilities.ObjectReader getObjectReader();
    descriptor: ()Lsun/jvm/hotspot/utilities/ObjectReader;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
         0: .line 233
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.soql.SOQLEngine.objReader:Lsun/jvm/hotspot/utilities/ObjectReader;
            areturn
        end local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/soql/SOQLEngine;

  protected sun.jvm.hotspot.utilities.soql.JSJavaFactory getJSJavaFactory();
    descriptor: ()Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
         0: .line 237
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.soql.SOQLEngine.factory:Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
            areturn
        end local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/soql/SOQLEngine;

  protected boolean isQuitting();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
         0: .line 241
            iconst_0
            ireturn
        end local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/soql/SOQLEngine;

  protected void quit();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
         0: .line 246
            return
        end local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/soql/SOQLEngine;

  private static void debugPrint(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String msg
         0: .line 249
            getstatic sun.jvm.hotspot.utilities.soql.SOQLEngine.debug:Z
            ifeq 1
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 0 /* msg */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 250
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.String msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      msg   

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
         0: .line 258
            aload 0 /* this */
            getstatic sun.jvm.hotspot.utilities.soql.SOQLEngine.debug:Z
            invokespecial sun.jvm.hotspot.utilities.soql.JSJavaScriptEngine.<init>:(Z)V
         1: .line 259
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.soql.SOQLEngine.start:()V
         2: .line 260
            return
        end local 0 // sun.jvm.hotspot.utilities.soql.SOQLEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/jvm/hotspot/utilities/soql/SOQLEngine;
}
SourceFile: "SOQLEngine.java"
NestMembers:
  sun.jvm.hotspot.utilities.soql.SOQLEngine$1
InnerClasses:
  sun.jvm.hotspot.utilities.soql.SOQLEngine$1