public class org.springframework.remoting.caucho.HessianExporter extends org.springframework.remoting.support.RemoteExporter implements org.springframework.beans.factory.InitializingBean
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.remoting.caucho.HessianExporter
super_class: org.springframework.remoting.support.RemoteExporter
{
public static final java.lang.String CONTENT_TYPE_HESSIAN;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "application/x-hessian"
private com.caucho.hessian.io.SerializerFactory serializerFactory;
descriptor: Lcom/caucho/hessian/io/SerializerFactory;
flags: (0x0002) ACC_PRIVATE
private com.caucho.hessian.io.HessianRemoteResolver remoteResolver;
descriptor: Lcom/caucho/hessian/io/HessianRemoteResolver;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.apache.commons.logging.Log debugLogger;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private com.caucho.hessian.server.HessianSkeleton skeleton;
descriptor: Lcom/caucho/hessian/server/HessianSkeleton;
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 0: aload 0
invokespecial org.springframework.remoting.support.RemoteExporter.<init>:()V
1: aload 0
new com.caucho.hessian.io.SerializerFactory
dup
invokespecial com.caucho.hessian.io.SerializerFactory.<init>:()V
putfield org.springframework.remoting.caucho.HessianExporter.serializerFactory:Lcom/caucho/hessian/io/SerializerFactory;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/remoting/caucho/HessianExporter;
public void setSerializerFactory(com.caucho.hessian.io.SerializerFactory);
descriptor: (Lcom/caucho/hessian/io/SerializerFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ifnull 1
aload 1
goto 2
StackMap locals:
StackMap stack: org.springframework.remoting.caucho.HessianExporter
1: new com.caucho.hessian.io.SerializerFactory
dup
invokespecial com.caucho.hessian.io.SerializerFactory.<init>:()V
StackMap locals: org.springframework.remoting.caucho.HessianExporter com.caucho.hessian.io.SerializerFactory
StackMap stack: org.springframework.remoting.caucho.HessianExporter com.caucho.hessian.io.SerializerFactory
2: putfield org.springframework.remoting.caucho.HessianExporter.serializerFactory:Lcom/caucho/hessian/io/SerializerFactory;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/remoting/caucho/HessianExporter;
0 4 1 serializerFactory Lcom/caucho/hessian/io/SerializerFactory;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
serializerFactory
public void setSendCollectionType(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.remoting.caucho.HessianExporter.serializerFactory:Lcom/caucho/hessian/io/SerializerFactory;
iload 1
invokevirtual com.caucho.hessian.io.SerializerFactory.setSendCollectionType:(Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/caucho/HessianExporter;
0 2 1 sendCollectionType Z
MethodParameters:
Name Flags
sendCollectionType
public void setAllowNonSerializable(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.remoting.caucho.HessianExporter.serializerFactory:Lcom/caucho/hessian/io/SerializerFactory;
iload 1
invokevirtual com.caucho.hessian.io.SerializerFactory.setAllowNonSerializable:(Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/caucho/HessianExporter;
0 2 1 allowNonSerializable Z
MethodParameters:
Name Flags
allowNonSerializable
public void setRemoteResolver(com.caucho.hessian.io.HessianRemoteResolver);
descriptor: (Lcom/caucho/hessian/io/HessianRemoteResolver;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.remoting.caucho.HessianExporter.remoteResolver:Lcom/caucho/hessian/io/HessianRemoteResolver;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/caucho/HessianExporter;
0 2 1 remoteResolver Lcom/caucho/hessian/io/HessianRemoteResolver;
MethodParameters:
Name Flags
remoteResolver
public void setDebug(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
ifeq 1
aload 0
getfield org.springframework.remoting.caucho.HessianExporter.logger:Lorg/apache/commons/logging/Log;
goto 2
StackMap locals:
StackMap stack: org.springframework.remoting.caucho.HessianExporter
1: aconst_null
StackMap locals: org.springframework.remoting.caucho.HessianExporter int
StackMap stack: org.springframework.remoting.caucho.HessianExporter org.apache.commons.logging.Log
2: putfield org.springframework.remoting.caucho.HessianExporter.debugLogger:Lorg/apache/commons/logging/Log;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/remoting/caucho/HessianExporter;
0 4 1 debug Z
MethodParameters:
Name Flags
debug
public void afterPropertiesSet();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.remoting.caucho.HessianExporter.prepare:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/caucho/HessianExporter;
public void prepare();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.remoting.caucho.HessianExporter.checkService:()V
1: aload 0
invokevirtual org.springframework.remoting.caucho.HessianExporter.checkServiceInterface:()V
2: aload 0
new com.caucho.hessian.server.HessianSkeleton
dup
aload 0
invokevirtual org.springframework.remoting.caucho.HessianExporter.getProxyForService:()Ljava/lang/Object;
aload 0
invokevirtual org.springframework.remoting.caucho.HessianExporter.getServiceInterface:()Ljava/lang/Class;
invokespecial com.caucho.hessian.server.HessianSkeleton.<init>:(Ljava/lang/Object;Ljava/lang/Class;)V
putfield org.springframework.remoting.caucho.HessianExporter.skeleton:Lcom/caucho/hessian/server/HessianSkeleton;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/remoting/caucho/HessianExporter;
public void invoke(java.io.InputStream, java.io.OutputStream);
descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.remoting.caucho.HessianExporter.skeleton:Lcom/caucho/hessian/server/HessianSkeleton;
ldc "Hessian exporter has not been initialized"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: aload 0
aload 0
getfield org.springframework.remoting.caucho.HessianExporter.skeleton:Lcom/caucho/hessian/server/HessianSkeleton;
aload 1
aload 2
invokevirtual org.springframework.remoting.caucho.HessianExporter.doInvoke:(Lcom/caucho/hessian/server/HessianSkeleton;Ljava/io/InputStream;Ljava/io/OutputStream;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/remoting/caucho/HessianExporter;
0 3 1 inputStream Ljava/io/InputStream;
0 3 2 outputStream Ljava/io/OutputStream;
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
inputStream
outputStream
protected void doInvoke(com.caucho.hessian.server.HessianSkeleton, java.io.InputStream, java.io.OutputStream);
descriptor: (Lcom/caucho/hessian/server/HessianSkeleton;Ljava/io/InputStream;Ljava/io/OutputStream;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=14, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.springframework.remoting.caucho.HessianExporter.overrideThreadContextClassLoader:()Ljava/lang/ClassLoader;
astore 4
start local 4 1: aload 2
astore 5
start local 5 2: aload 3
astore 6
start local 6 3: aload 0
getfield org.springframework.remoting.caucho.HessianExporter.debugLogger:Lorg/apache/commons/logging/Log;
ifnull 18
aload 0
getfield org.springframework.remoting.caucho.HessianExporter.debugLogger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 18
4: aconst_null
astore 7
aconst_null
astore 8
5: new java.io.PrintWriter
dup
new org.springframework.util.CommonsLogWriter
dup
aload 0
getfield org.springframework.remoting.caucho.HessianExporter.debugLogger:Lorg/apache/commons/logging/Log;
invokespecial org.springframework.util.CommonsLogWriter.<init>:(Lorg/apache/commons/logging/Log;)V
invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
astore 9
start local 9 6: new com.caucho.hessian.io.HessianDebugInputStream
dup
aload 2
aload 9
invokespecial com.caucho.hessian.io.HessianDebugInputStream.<init>:(Ljava/io/InputStream;Ljava/io/PrintWriter;)V
astore 10
start local 10 7: new com.caucho.hessian.io.HessianDebugOutputStream
dup
aload 3
aload 9
invokespecial com.caucho.hessian.io.HessianDebugOutputStream.<init>:(Ljava/io/OutputStream;Ljava/io/PrintWriter;)V
astore 11
start local 11 8: aload 10
invokevirtual com.caucho.hessian.io.HessianDebugInputStream.startTop2:()V
9: aload 11
invokevirtual com.caucho.hessian.io.HessianDebugOutputStream.startTop2:()V
10: aload 10
astore 5
11: aload 11
astore 6
end local 11 end local 10 12: aload 9
ifnull 18
aload 9
invokevirtual java.io.PrintWriter.close:()V
goto 18
StackMap locals: org.springframework.remoting.caucho.HessianExporter com.caucho.hessian.server.HessianSkeleton java.io.InputStream java.io.OutputStream java.lang.ClassLoader java.io.InputStream java.io.OutputStream java.lang.Throwable java.lang.Throwable java.io.PrintWriter
StackMap stack: java.lang.Throwable
13: astore 7
aload 9
ifnull 14
aload 9
invokevirtual java.io.PrintWriter.close:()V
end local 9 StackMap locals:
StackMap stack:
14: aload 7
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 8
aload 7
ifnonnull 16
aload 8
astore 7
goto 17
StackMap locals:
StackMap stack:
16: aload 7
aload 8
if_acmpeq 17
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
17: aload 7
athrow
18: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.io.InputStream.markSupported:()Z
ifne 21
19: new java.io.BufferedInputStream
dup
aload 5
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 5
20: aload 5
iconst_1
invokevirtual java.io.InputStream.mark:(I)V
21: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.io.InputStream.read:()I
istore 7
start local 7 22: iload 7
bipush 72
if_icmpne 31
23: aload 5
invokevirtual java.io.InputStream.read:()I
istore 8
start local 8 24: aload 5
invokevirtual java.io.InputStream.read:()I
istore 9
start local 9 25: iload 8
iconst_2
if_icmpeq 27
26: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Version "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " is not understood"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals: int int int
StackMap stack:
new com.caucho.hessian.io.Hessian2Input
dup
aload 5
invokespecial com.caucho.hessian.io.Hessian2Input.<init>:(Ljava/io/InputStream;)V
astore 10
start local 10 28: new com.caucho.hessian.io.Hessian2Output
dup
aload 6
invokespecial com.caucho.hessian.io.Hessian2Output.<init>:(Ljava/io/OutputStream;)V
astore 11
start local 11 29: aload 10
invokevirtual com.caucho.hessian.io.AbstractHessianInput.readCall:()I
pop
30: goto 47
end local 11 end local 10 end local 9 end local 8 31: StackMap locals:
StackMap stack:
iload 7
bipush 67
if_icmpne 37
32: aload 5
invokevirtual java.io.InputStream.reset:()V
33: new com.caucho.hessian.io.Hessian2Input
dup
aload 5
invokespecial com.caucho.hessian.io.Hessian2Input.<init>:(Ljava/io/InputStream;)V
astore 10
start local 10 34: new com.caucho.hessian.io.Hessian2Output
dup
aload 6
invokespecial com.caucho.hessian.io.Hessian2Output.<init>:(Ljava/io/OutputStream;)V
astore 11
start local 11 35: aload 10
invokevirtual com.caucho.hessian.io.AbstractHessianInput.readCall:()I
pop
36: goto 47
end local 11 end local 10 37: StackMap locals:
StackMap stack:
iload 7
bipush 99
if_icmpne 46
38: aload 5
invokevirtual java.io.InputStream.read:()I
istore 8
start local 8 39: aload 5
invokevirtual java.io.InputStream.read:()I
istore 9
start local 9 40: new com.caucho.hessian.io.HessianInput
dup
aload 5
invokespecial com.caucho.hessian.io.HessianInput.<init>:(Ljava/io/InputStream;)V
astore 10
start local 10 41: iload 8
iconst_2
if_icmplt 44
42: new com.caucho.hessian.io.Hessian2Output
dup
aload 6
invokespecial com.caucho.hessian.io.Hessian2Output.<init>:(Ljava/io/OutputStream;)V
astore 11
start local 11 43: goto 47
end local 11 44: StackMap locals: int int com.caucho.hessian.io.AbstractHessianInput
StackMap stack:
new com.caucho.hessian.io.HessianOutput
dup
aload 6
invokespecial com.caucho.hessian.io.HessianOutput.<init>:(Ljava/io/OutputStream;)V
astore 11
start local 11 45: goto 47
end local 11 end local 10 end local 9 end local 8 46: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Expected 'H'/'C' (Hessian 2.0) or 'c' (Hessian 1.0) in hessian input at "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
start local 10 start local 11 47: StackMap locals: org.springframework.remoting.caucho.HessianExporter com.caucho.hessian.server.HessianSkeleton java.io.InputStream java.io.OutputStream java.lang.ClassLoader java.io.InputStream java.io.OutputStream int top top com.caucho.hessian.io.AbstractHessianInput com.caucho.hessian.io.AbstractHessianOutput
StackMap stack:
aload 10
aload 0
getfield org.springframework.remoting.caucho.HessianExporter.serializerFactory:Lcom/caucho/hessian/io/SerializerFactory;
invokevirtual com.caucho.hessian.io.AbstractHessianInput.setSerializerFactory:(Lcom/caucho/hessian/io/SerializerFactory;)V
48: aload 11
aload 0
getfield org.springframework.remoting.caucho.HessianExporter.serializerFactory:Lcom/caucho/hessian/io/SerializerFactory;
invokevirtual com.caucho.hessian.io.AbstractHessianOutput.setSerializerFactory:(Lcom/caucho/hessian/io/SerializerFactory;)V
49: aload 0
getfield org.springframework.remoting.caucho.HessianExporter.remoteResolver:Lcom/caucho/hessian/io/HessianRemoteResolver;
ifnull 51
50: aload 10
aload 0
getfield org.springframework.remoting.caucho.HessianExporter.remoteResolver:Lcom/caucho/hessian/io/HessianRemoteResolver;
invokevirtual com.caucho.hessian.io.AbstractHessianInput.setRemoteResolver:(Lcom/caucho/hessian/io/HessianRemoteResolver;)V
51: StackMap locals:
StackMap stack:
aload 1
aload 10
aload 11
invokevirtual com.caucho.hessian.server.HessianSkeleton.invoke:(Lcom/caucho/hessian/io/AbstractHessianInput;Lcom/caucho/hessian/io/AbstractHessianOutput;)V
52: goto 63
53: StackMap locals:
StackMap stack: java.lang.Throwable
astore 12
54: aload 10
invokevirtual com.caucho.hessian.io.AbstractHessianInput.close:()V
55: aload 5
invokevirtual java.io.InputStream.close:()V
56: goto 58
57: StackMap locals: org.springframework.remoting.caucho.HessianExporter com.caucho.hessian.server.HessianSkeleton java.io.InputStream java.io.OutputStream java.lang.ClassLoader java.io.InputStream java.io.OutputStream int top top com.caucho.hessian.io.AbstractHessianInput com.caucho.hessian.io.AbstractHessianOutput java.lang.Throwable
StackMap stack: java.io.IOException
pop
58: StackMap locals:
StackMap stack:
aload 11
invokevirtual com.caucho.hessian.io.AbstractHessianOutput.close:()V
59: aload 6
invokevirtual java.io.OutputStream.close:()V
60: goto 62
61: StackMap locals:
StackMap stack: java.io.IOException
pop
62: StackMap locals:
StackMap stack:
aload 12
athrow
63: StackMap locals:
StackMap stack:
aload 10
invokevirtual com.caucho.hessian.io.AbstractHessianInput.close:()V
64: aload 5
invokevirtual java.io.InputStream.close:()V
65: goto 67
66: StackMap locals:
StackMap stack: java.io.IOException
pop
67: StackMap locals:
StackMap stack:
aload 11
invokevirtual com.caucho.hessian.io.AbstractHessianOutput.close:()V
68: aload 6
invokevirtual java.io.OutputStream.close:()V
69: goto 75
70: StackMap locals:
StackMap stack: java.io.IOException
pop
end local 11 end local 10 end local 7 end local 6 end local 5 71: goto 75
72: StackMap locals: org.springframework.remoting.caucho.HessianExporter com.caucho.hessian.server.HessianSkeleton java.io.InputStream java.io.OutputStream java.lang.ClassLoader
StackMap stack: java.lang.Throwable
astore 13
73: aload 0
aload 4
invokevirtual org.springframework.remoting.caucho.HessianExporter.resetThreadContextClassLoader:(Ljava/lang/ClassLoader;)V
74: aload 13
athrow
75: StackMap locals:
StackMap stack:
aload 0
aload 4
invokevirtual org.springframework.remoting.caucho.HessianExporter.resetThreadContextClassLoader:(Ljava/lang/ClassLoader;)V
76: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 77 0 this Lorg/springframework/remoting/caucho/HessianExporter;
0 77 1 skeleton Lcom/caucho/hessian/server/HessianSkeleton;
0 77 2 inputStream Ljava/io/InputStream;
0 77 3 outputStream Ljava/io/OutputStream;
1 77 4 originalClassLoader Ljava/lang/ClassLoader;
2 71 5 isToUse Ljava/io/InputStream;
3 71 6 osToUse Ljava/io/OutputStream;
6 14 9 debugWriter Ljava/io/PrintWriter;
7 12 10 dis Lcom/caucho/hessian/io/HessianDebugInputStream;
8 12 11 dos Lcom/caucho/hessian/io/HessianDebugOutputStream;
22 71 7 code I
24 31 8 major I
39 46 8 major I
25 31 9 minor I
40 46 9 minor I
28 31 10 in Lcom/caucho/hessian/io/AbstractHessianInput;
34 37 10 in Lcom/caucho/hessian/io/AbstractHessianInput;
41 46 10 in Lcom/caucho/hessian/io/AbstractHessianInput;
47 71 10 in Lcom/caucho/hessian/io/AbstractHessianInput;
29 31 11 out Lcom/caucho/hessian/io/AbstractHessianOutput;
35 37 11 out Lcom/caucho/hessian/io/AbstractHessianOutput;
43 44 11 out Lcom/caucho/hessian/io/AbstractHessianOutput;
45 46 11 out Lcom/caucho/hessian/io/AbstractHessianOutput;
47 71 11 out Lcom/caucho/hessian/io/AbstractHessianOutput;
Exception table:
from to target type
6 12 13 any
5 15 15 any
51 53 53 any
54 56 57 Class java.io.IOException
58 60 61 Class java.io.IOException
63 65 66 Class java.io.IOException
67 69 70 Class java.io.IOException
1 72 72 any
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
skeleton
inputStream
outputStream
}
SourceFile: "HessianExporter.java"