public class com.caucho.burlap.server.BurlapSkeleton extends com.caucho.services.server.AbstractSkeleton
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.caucho.burlap.server.BurlapSkeleton
  super_class: com.caucho.services.server.AbstractSkeleton
{
  private static final java.util.logging.Logger log;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private java.lang.Object _service;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 65
            ldc Lcom/caucho/burlap/server/BurlapSkeleton;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
         1: .line 64
            putstatic com.caucho.burlap.server.BurlapSkeleton.log:Ljava/util/logging/Logger;
         2: .line 65
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.Object, java.lang.Class);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.caucho.burlap.server.BurlapSkeleton this
        start local 1 // java.lang.Object service
        start local 2 // java.lang.Class apiClass
         0: .line 77
            aload 0 /* this */
            aload 2 /* apiClass */
            invokespecial com.caucho.services.server.AbstractSkeleton.<init>:(Ljava/lang/Class;)V
         1: .line 79
            aload 0 /* this */
            aload 1 /* service */
            putfield com.caucho.burlap.server.BurlapSkeleton._service:Ljava/lang/Object;
         2: .line 80
            return
        end local 2 // java.lang.Class apiClass
        end local 1 // java.lang.Object service
        end local 0 // com.caucho.burlap.server.BurlapSkeleton this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/caucho/burlap/server/BurlapSkeleton;
            0    3     1   service  Ljava/lang/Object;
            0    3     2  apiClass  Ljava/lang/Class;
    MethodParameters:
          Name  Flags
      service   
      apiClass  

  public void <init>(java.lang.Class);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.caucho.burlap.server.BurlapSkeleton this
        start local 1 // java.lang.Class apiClass
         0: .line 90
            aload 0 /* this */
            aload 1 /* apiClass */
            invokespecial com.caucho.services.server.AbstractSkeleton.<init>:(Ljava/lang/Class;)V
         1: .line 91
            return
        end local 1 // java.lang.Class apiClass
        end local 0 // com.caucho.burlap.server.BurlapSkeleton this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/caucho/burlap/server/BurlapSkeleton;
            0    2     1  apiClass  Ljava/lang/Class;
    MethodParameters:
          Name  Flags
      apiClass  

  public void invoke(com.caucho.burlap.io.BurlapInput, com.caucho.burlap.io.BurlapOutput);
    descriptor: (Lcom/caucho/burlap/io/BurlapInput;Lcom/caucho/burlap/io/BurlapOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.caucho.burlap.server.BurlapSkeleton this
        start local 1 // com.caucho.burlap.io.BurlapInput in
        start local 2 // com.caucho.burlap.io.BurlapOutput out
         0: .line 102
            aload 0 /* this */
            aload 0 /* this */
            getfield com.caucho.burlap.server.BurlapSkeleton._service:Ljava/lang/Object;
            aload 1 /* in */
            aload 2 /* out */
            invokevirtual com.caucho.burlap.server.BurlapSkeleton.invoke:(Ljava/lang/Object;Lcom/caucho/burlap/io/BurlapInput;Lcom/caucho/burlap/io/BurlapOutput;)V
         1: .line 103
            return
        end local 2 // com.caucho.burlap.io.BurlapOutput out
        end local 1 // com.caucho.burlap.io.BurlapInput in
        end local 0 // com.caucho.burlap.server.BurlapSkeleton this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/caucho/burlap/server/BurlapSkeleton;
            0    2     1    in  Lcom/caucho/burlap/io/BurlapInput;
            0    2     2   out  Lcom/caucho/burlap/io/BurlapOutput;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      in    
      out   

  public void invoke(java.lang.Object, com.caucho.burlap.io.BurlapInput, com.caucho.burlap.io.BurlapOutput);
    descriptor: (Ljava/lang/Object;Lcom/caucho/burlap/io/BurlapInput;Lcom/caucho/burlap/io/BurlapOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // com.caucho.burlap.server.BurlapSkeleton this
        start local 1 // java.lang.Object service
        start local 2 // com.caucho.burlap.io.BurlapInput in
        start local 3 // com.caucho.burlap.io.BurlapOutput out
         0: .line 114
            aload 2 /* in */
            invokevirtual com.caucho.burlap.io.BurlapInput.readCall:()I
            pop
         1: .line 116
            invokestatic com.caucho.services.server.ServiceContext.getContext:()Lcom/caucho/services/server/ServiceContext;
            astore 4 /* context */
        start local 4 // com.caucho.services.server.ServiceContext context
         2: .line 119
            goto 5
        start local 5 // java.lang.String header
         3: .line 120
      StackMap locals: com.caucho.services.server.ServiceContext java.lang.String
      StackMap stack:
            aload 2 /* in */
            invokevirtual com.caucho.burlap.io.BurlapInput.readObject:()Ljava/lang/Object;
            astore 6 /* value */
        start local 6 // java.lang.Object value
         4: .line 122
            aload 4 /* context */
            aload 5 /* header */
            aload 6 /* value */
            invokevirtual com.caucho.services.server.ServiceContext.addHeader:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 6 // java.lang.Object value
        end local 5 // java.lang.String header
         5: .line 119
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            invokevirtual com.caucho.burlap.io.BurlapInput.readHeader:()Ljava/lang/String;
            dup
            astore 5 /* header */
        start local 5 // java.lang.String header
         6: ifnonnull 3
         7: .line 125
            aload 2 /* in */
            invokevirtual com.caucho.burlap.io.BurlapInput.readMethod:()Ljava/lang/String;
            astore 6 /* methodName */
        start local 6 // java.lang.String methodName
         8: .line 126
            aload 0 /* this */
            aload 6 /* methodName */
            invokevirtual com.caucho.burlap.server.BurlapSkeleton.getMethod:(Ljava/lang/String;)Ljava/lang/reflect/Method;
            astore 7 /* method */
        start local 7 // java.lang.reflect.Method method
         9: .line 128
            getstatic com.caucho.burlap.server.BurlapSkeleton.log:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 11
        10: .line 129
            getstatic com.caucho.burlap.server.BurlapSkeleton.log:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " invoking "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* methodName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
        11: .line 131
      StackMap locals: java.lang.String java.lang.String java.lang.reflect.Method
      StackMap stack:
            aload 7 /* method */
            ifnonnull 34
        12: .line 133
            ldc "_burlap_getAttribute"
            aload 2 /* in */
            invokevirtual com.caucho.burlap.io.BurlapInput.getMethod:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        13: .line 134
            aload 2 /* in */
            invokevirtual com.caucho.burlap.io.BurlapInput.readString:()Ljava/lang/String;
            astore 8 /* attrName */
        start local 8 // java.lang.String attrName
        14: .line 135
            aload 2 /* in */
            invokevirtual com.caucho.burlap.io.BurlapInput.completeCall:()V
        15: .line 137
            aconst_null
            astore 9 /* value */
        start local 9 // java.lang.String value
        16: .line 139
            ldc "java.api.class"
            aload 8 /* attrName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 140
            aload 0 /* this */
            invokevirtual com.caucho.burlap.server.BurlapSkeleton.getAPIClassName:()Ljava/lang/String;
            astore 9 /* value */
            goto 22
        18: .line 141
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            ldc "java.home.class"
            aload 8 /* attrName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        19: .line 142
            aload 0 /* this */
            invokevirtual com.caucho.burlap.server.BurlapSkeleton.getHomeClassName:()Ljava/lang/String;
            astore 9 /* value */
            goto 22
        20: .line 143
      StackMap locals:
      StackMap stack:
            ldc "java.object.class"
            aload 8 /* attrName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        21: .line 144
            aload 0 /* this */
            invokevirtual com.caucho.burlap.server.BurlapSkeleton.getObjectClassName:()Ljava/lang/String;
            astore 9 /* value */
        22: .line 146
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            invokevirtual com.caucho.burlap.io.BurlapOutput.startReply:()V
        23: .line 148
            aload 3 /* out */
            aload 9 /* value */
            invokevirtual com.caucho.burlap.io.BurlapOutput.writeObject:(Ljava/lang/Object;)V
        24: .line 150
            aload 3 /* out */
            invokevirtual com.caucho.burlap.io.BurlapOutput.completeReply:()V
        25: .line 151
            return
        end local 9 // java.lang.String value
        end local 8 // java.lang.String attrName
        26: .line 153
      StackMap locals:
      StackMap stack:
            aload 7 /* method */
            ifnonnull 34
        27: .line 154
            aload 3 /* out */
            invokevirtual com.caucho.burlap.io.BurlapOutput.startReply:()V
        28: .line 155
            aload 3 /* out */
            ldc "NoSuchMethodException"
        29: .line 156
            new java.lang.StringBuilder
            dup
            ldc "The service has no method named: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* in */
            invokevirtual com.caucho.burlap.io.BurlapInput.getMethod:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        30: .line 157
            aconst_null
        31: .line 155
            invokevirtual com.caucho.burlap.io.BurlapOutput.writeFault:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
        32: .line 158
            aload 3 /* out */
            invokevirtual com.caucho.burlap.io.BurlapOutput.completeReply:()V
        33: .line 159
            return
        34: .line 162
      StackMap locals:
      StackMap stack:
            aload 7 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 8 /* args */
        start local 8 // java.lang.Class[] args
        35: .line 163
            aload 8 /* args */
            arraylength
            anewarray java.lang.Object
            astore 9 /* values */
        start local 9 // java.lang.Object[] values
        36: .line 165
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        37: goto 40
        38: .line 166
      StackMap locals: java.lang.Class[] java.lang.Object[] int
      StackMap stack:
            aload 9 /* values */
            iload 10 /* i */
            aload 2 /* in */
            aload 8 /* args */
            iload 10 /* i */
            aaload
            invokevirtual com.caucho.burlap.io.BurlapInput.readObject:(Ljava/lang/Class;)Ljava/lang/Object;
            aastore
        39: .line 165
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        40: iload 10 /* i */
            aload 8 /* args */
            arraylength
            if_icmplt 38
        end local 10 // int i
        41: .line 168
            aload 2 /* in */
            invokevirtual com.caucho.burlap.io.BurlapInput.completeCall:()V
        42: .line 170
            aconst_null
            astore 10 /* result */
        start local 10 // java.lang.Object result
        43: .line 173
            aload 7 /* method */
            aload 1 /* service */
            aload 9 /* values */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 10 /* result */
        44: .line 174
            goto 59
      StackMap locals: com.caucho.burlap.server.BurlapSkeleton java.lang.Object com.caucho.burlap.io.BurlapInput com.caucho.burlap.io.BurlapOutput com.caucho.services.server.ServiceContext java.lang.String java.lang.String java.lang.reflect.Method java.lang.Class[] java.lang.Object[] java.lang.Object
      StackMap stack: java.lang.Throwable
        45: astore 11 /* e */
        start local 11 // java.lang.Throwable e
        46: .line 175
            getstatic com.caucho.burlap.server.BurlapSkeleton.log:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
        47: .line 176
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* service */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "() failed with exception:\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        48: .line 177
            aload 11 /* e */
            invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        49: .line 176
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        50: .line 178
            aload 11 /* e */
        51: .line 175
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        52: .line 180
            aload 11 /* e */
            instanceof java.lang.reflect.InvocationTargetException
            ifeq 55
        53: .line 181
            aload 11 /* e */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            instanceof java.lang.Exception
            ifeq 55
        54: .line 182
            aload 11 /* e */
            checkcast java.lang.reflect.InvocationTargetException
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            astore 11 /* e */
        55: .line 183
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3 /* out */
            invokevirtual com.caucho.burlap.io.BurlapOutput.startReply:()V
        56: .line 184
            aload 3 /* out */
            ldc "ServiceException"
            aload 11 /* e */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            aload 11 /* e */
            invokevirtual com.caucho.burlap.io.BurlapOutput.writeFault:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
        57: .line 185
            aload 3 /* out */
            invokevirtual com.caucho.burlap.io.BurlapOutput.completeReply:()V
        58: .line 186
            return
        end local 11 // java.lang.Throwable e
        59: .line 189
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            invokevirtual com.caucho.burlap.io.BurlapOutput.startReply:()V
        60: .line 191
            aload 3 /* out */
            aload 10 /* result */
            invokevirtual com.caucho.burlap.io.BurlapOutput.writeObject:(Ljava/lang/Object;)V
        61: .line 193
            aload 3 /* out */
            invokevirtual com.caucho.burlap.io.BurlapOutput.completeReply:()V
        62: .line 194
            return
        end local 10 // java.lang.Object result
        end local 9 // java.lang.Object[] values
        end local 8 // java.lang.Class[] args
        end local 7 // java.lang.reflect.Method method
        end local 6 // java.lang.String methodName
        end local 5 // java.lang.String header
        end local 4 // com.caucho.services.server.ServiceContext context
        end local 3 // com.caucho.burlap.io.BurlapOutput out
        end local 2 // com.caucho.burlap.io.BurlapInput in
        end local 1 // java.lang.Object service
        end local 0 // com.caucho.burlap.server.BurlapSkeleton this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   63     0        this  Lcom/caucho/burlap/server/BurlapSkeleton;
            0   63     1     service  Ljava/lang/Object;
            0   63     2          in  Lcom/caucho/burlap/io/BurlapInput;
            0   63     3         out  Lcom/caucho/burlap/io/BurlapOutput;
            2   63     4     context  Lcom/caucho/services/server/ServiceContext;
            3    5     5      header  Ljava/lang/String;
            6   63     5      header  Ljava/lang/String;
            4    5     6       value  Ljava/lang/Object;
            8   63     6  methodName  Ljava/lang/String;
            9   63     7      method  Ljava/lang/reflect/Method;
           14   26     8    attrName  Ljava/lang/String;
           16   26     9       value  Ljava/lang/String;
           35   63     8        args  [Ljava/lang/Class;
           36   63     9      values  [Ljava/lang/Object;
           37   41    10           i  I
           43   63    10      result  Ljava/lang/Object;
           46   59    11           e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          43    44      45  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      service  
      in       
      out      
}
SourceFile: "BurlapSkeleton.java"