public class org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter extends org.springframework.http.converter.AbstractHttpMessageConverter<com.google.protobuf.Message>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter
super_class: org.springframework.http.converter.AbstractHttpMessageConverter
{
public static final java.nio.charset.Charset DEFAULT_CHARSET;
descriptor: Ljava/nio/charset/Charset;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.springframework.http.MediaType PROTOBUF;
descriptor: Lorg/springframework/http/MediaType;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String ;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "X-Protobuf-Schema"
public static final java.lang.String ;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "X-Protobuf-Message"
private static final java.util.Map<java.lang.Class<?>, java.lang.reflect.Method> methodCache;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/lang/reflect/Method;>;
final com.google.protobuf.ExtensionRegistry extensionRegistry;
descriptor: Lcom/google/protobuf/ExtensionRegistry;
flags: (0x0010) ACC_FINAL
private final org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufFormatSupport protobufFormatSupport;
descriptor: Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
putstatic org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.DEFAULT_CHARSET:Ljava/nio/charset/Charset;
1: new org.springframework.http.MediaType
dup
ldc "application"
ldc "x-protobuf"
getstatic org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.DEFAULT_CHARSET:Ljava/nio/charset/Charset;
invokespecial org.springframework.http.MediaType.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/nio/charset/Charset;)V
putstatic org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.PROTOBUF:Lorg/springframework/http/MediaType;
2: new org.springframework.util.ConcurrentReferenceHashMap
dup
invokespecial org.springframework.util.ConcurrentReferenceHashMap.<init>:()V
putstatic org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.methodCache:Ljava/util/Map;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
aconst_null
invokespecial org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.<init>:(Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;Lcom/google/protobuf/ExtensionRegistry;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter;
public void <init>(org.springframework.http.converter.protobuf.ExtensionRegistryInitializer);
descriptor: (Lorg/springframework/http/converter/protobuf/ExtensionRegistryInitializer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
aconst_null
invokespecial org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.<init>:(Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;Lcom/google/protobuf/ExtensionRegistry;)V
1: aload 1
ifnull 3
2: aload 1
aload 0
getfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.extensionRegistry:Lcom/google/protobuf/ExtensionRegistry;
invokeinterface org.springframework.http.converter.protobuf.ExtensionRegistryInitializer.initializeExtensionRegistry:(Lcom/google/protobuf/ExtensionRegistry;)V
3: StackMap locals: org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter org.springframework.http.converter.protobuf.ExtensionRegistryInitializer
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter;
0 4 1 registryInitializer Lorg/springframework/http/converter/protobuf/ExtensionRegistryInitializer;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
registryInitializer
public void <init>(com.google.protobuf.ExtensionRegistry);
descriptor: (Lcom/google/protobuf/ExtensionRegistry;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
aload 1
invokespecial org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.<init>:(Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;Lcom/google/protobuf/ExtensionRegistry;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter;
0 2 1 extensionRegistry Lcom/google/protobuf/ExtensionRegistry;
MethodParameters:
Name Flags
extensionRegistry
void <init>(org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufFormatSupport, com.google.protobuf.ExtensionRegistry);
descriptor: (Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;Lcom/google/protobuf/ExtensionRegistry;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.springframework.http.converter.AbstractHttpMessageConverter.<init>:()V
1: aload 1
ifnull 4
2: aload 0
aload 1
putfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.protobufFormatSupport:Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
3: goto 11
4: StackMap locals: org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufFormatSupport com.google.protobuf.ExtensionRegistry
StackMap stack:
ldc "com.googlecode.protobuf.format.FormatFactory"
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokestatic org.springframework.util.ClassUtils.isPresent:(Ljava/lang/String;Ljava/lang/ClassLoader;)Z
ifeq 7
5: aload 0
new org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufJavaFormatSupport
dup
invokespecial org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufJavaFormatSupport.<init>:()V
putfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.protobufFormatSupport:Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
6: goto 11
7: StackMap locals:
StackMap stack:
ldc "com.google.protobuf.util.JsonFormat"
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokestatic org.springframework.util.ClassUtils.isPresent:(Ljava/lang/String;Ljava/lang/ClassLoader;)Z
ifeq 10
8: aload 0
new org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufJavaUtilSupport
dup
aconst_null
aconst_null
invokespecial org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufJavaUtilSupport.<init>:(Lcom/google/protobuf/util/JsonFormat$Parser;Lcom/google/protobuf/util/JsonFormat$Printer;)V
putfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.protobufFormatSupport:Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
9: goto 11
10: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.protobufFormatSupport:Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
11: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.protobufFormatSupport:Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
ifnull 13
12: aload 0
getfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.protobufFormatSupport:Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
invokeinterface org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufFormatSupport.supportedMediaTypes:()[Lorg/springframework/http/MediaType;
goto 14
StackMap locals:
StackMap stack: org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter
13: iconst_2
anewarray org.springframework.http.MediaType
dup
iconst_0
getstatic org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.PROTOBUF:Lorg/springframework/http/MediaType;
aastore
dup
iconst_1
getstatic org.springframework.http.MediaType.TEXT_PLAIN:Lorg/springframework/http/MediaType;
aastore
14: StackMap locals: org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufFormatSupport com.google.protobuf.ExtensionRegistry
StackMap stack: org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter org.springframework.http.MediaType[]
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.setSupportedMediaTypes:(Ljava/util/List;)V
15: aload 0
aload 2
ifnonnull 16
invokestatic com.google.protobuf.ExtensionRegistry.newInstance:()Lcom/google/protobuf/ExtensionRegistry;
goto 17
StackMap locals:
StackMap stack: org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter
16: aload 2
StackMap locals: org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufFormatSupport com.google.protobuf.ExtensionRegistry
StackMap stack: org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter com.google.protobuf.ExtensionRegistry
17: putfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.extensionRegistry:Lcom/google/protobuf/ExtensionRegistry;
18: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter;
0 19 1 formatSupport Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
0 19 2 extensionRegistry Lcom/google/protobuf/ExtensionRegistry;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
formatSupport
extensionRegistry
protected boolean supports(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: ldc Lcom/google/protobuf/Message;
aload 1
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter;
0 1 1 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
protected org.springframework.http.MediaType getDefaultContentType(com.google.protobuf.Message);
descriptor: (Lcom/google/protobuf/Message;)Lorg/springframework/http/MediaType;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.PROTOBUF:Lorg/springframework/http/MediaType;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter;
0 1 1 message Lcom/google/protobuf/Message;
MethodParameters:
Name Flags
message
protected com.google.protobuf.Message readInternal(java.lang.Class<? extends com.google.protobuf.Message>, org.springframework.http.HttpInputMessage);
descriptor: (Ljava/lang/Class;Lorg/springframework/http/HttpInputMessage;)Lcom/google/protobuf/Message;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface org.springframework.http.HttpInputMessage.getHeaders:()Lorg/springframework/http/HttpHeaders;
invokevirtual org.springframework.http.HttpHeaders.getContentType:()Lorg/springframework/http/MediaType;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: getstatic org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.PROTOBUF:Lorg/springframework/http/MediaType;
astore 3
3: StackMap locals: org.springframework.http.MediaType
StackMap stack:
aload 3
invokevirtual org.springframework.http.MediaType.getCharset:()Ljava/nio/charset/Charset;
astore 4
start local 4 4: aload 4
ifnonnull 6
5: getstatic org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.DEFAULT_CHARSET:Ljava/nio/charset/Charset;
astore 4
6: StackMap locals: java.nio.charset.Charset
StackMap stack:
aload 0
aload 1
invokevirtual org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.getMessageBuilder:(Ljava/lang/Class;)Lcom/google/protobuf/Message$Builder;
astore 5
start local 5 7: getstatic org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.PROTOBUF:Lorg/springframework/http/MediaType;
aload 3
invokevirtual org.springframework.http.MediaType.isCompatibleWith:(Lorg/springframework/http/MediaType;)Z
ifeq 10
8: aload 5
aload 2
invokeinterface org.springframework.http.HttpInputMessage.getBody:()Ljava/io/InputStream;
aload 0
getfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.extensionRegistry:Lcom/google/protobuf/ExtensionRegistry;
invokeinterface com.google.protobuf.Message$Builder.mergeFrom:(Ljava/io/InputStream;Lcom/google/protobuf/ExtensionRegistryLite;)Lcom/google/protobuf/Message$Builder;
pop
9: goto 18
10: StackMap locals: com.google.protobuf.Message$Builder
StackMap stack:
getstatic org.springframework.http.MediaType.TEXT_PLAIN:Lorg/springframework/http/MediaType;
aload 3
invokevirtual org.springframework.http.MediaType.isCompatibleWith:(Lorg/springframework/http/MediaType;)Z
ifeq 14
11: new java.io.InputStreamReader
dup
aload 2
invokeinterface org.springframework.http.HttpInputMessage.getBody:()Ljava/io/InputStream;
aload 4
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
astore 6
start local 6 12: aload 6
aload 0
getfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.extensionRegistry:Lcom/google/protobuf/ExtensionRegistry;
aload 5
invokestatic com.google.protobuf.TextFormat.merge:(Ljava/lang/Readable;Lcom/google/protobuf/ExtensionRegistry;Lcom/google/protobuf/Message$Builder;)V
end local 6 13: goto 18
14: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.protobufFormatSupport:Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
ifnull 18
15: aload 0
getfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.protobufFormatSupport:Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
16: aload 2
invokeinterface org.springframework.http.HttpInputMessage.getBody:()Ljava/io/InputStream;
aload 4
aload 3
aload 0
getfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.extensionRegistry:Lcom/google/protobuf/ExtensionRegistry;
aload 5
17: invokeinterface org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufFormatSupport.merge:(Ljava/io/InputStream;Ljava/nio/charset/Charset;Lorg/springframework/http/MediaType;Lcom/google/protobuf/ExtensionRegistry;Lcom/google/protobuf/Message$Builder;)V
18: StackMap locals:
StackMap stack:
aload 5
invokeinterface com.google.protobuf.Message$Builder.build:()Lcom/google/protobuf/Message;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter;
0 19 1 clazz Ljava/lang/Class<+Lcom/google/protobuf/Message;>;
0 19 2 inputMessage Lorg/springframework/http/HttpInputMessage;
1 19 3 contentType Lorg/springframework/http/MediaType;
4 19 4 charset Ljava/nio/charset/Charset;
7 19 5 builder Lcom/google/protobuf/Message$Builder;
12 13 6 reader Ljava/io/InputStreamReader;
Exceptions:
throws java.io.IOException, org.springframework.http.converter.HttpMessageNotReadableException
Signature: (Ljava/lang/Class<+Lcom/google/protobuf/Message;>;Lorg/springframework/http/HttpInputMessage;)Lcom/google/protobuf/Message;
MethodParameters:
Name Flags
clazz
inputMessage
private com.google.protobuf.Message$Builder getMessageBuilder(java.lang.Class<? extends com.google.protobuf.Message>);
descriptor: (Ljava/lang/Class;)Lcom/google/protobuf/Message$Builder;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.methodCache:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.reflect.Method
astore 2
start local 2 1: aload 2
ifnonnull 4
2: aload 1
ldc "newBuilder"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 2
3: getstatic org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.methodCache:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals: java.lang.reflect.Method
StackMap stack:
aload 2
aload 1
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.protobuf.Message$Builder
5: areturn
end local 2 6: StackMap locals: org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter java.lang.Class
StackMap stack: java.lang.Exception
astore 2
start local 2 7: new org.springframework.http.converter.HttpMessageConversionException
dup
8: new java.lang.StringBuilder
dup
ldc "Invalid Protobuf Message type: no invocable newBuilder() method on "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
9: invokespecial org.springframework.http.converter.HttpMessageConversionException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter;
0 10 1 clazz Ljava/lang/Class<+Lcom/google/protobuf/Message;>;
1 6 2 method Ljava/lang/reflect/Method;
7 10 2 ex Ljava/lang/Exception;
Exception table:
from to target type
0 5 6 Class java.lang.Exception
Signature: (Ljava/lang/Class<+Lcom/google/protobuf/Message;>;)Lcom/google/protobuf/Message$Builder;
MethodParameters:
Name Flags
clazz
protected boolean canWrite(org.springframework.http.MediaType);
descriptor: (Lorg/springframework/http/MediaType;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.springframework.http.converter.AbstractHttpMessageConverter.canWrite:(Lorg/springframework/http/MediaType;)Z
ifne 3
1: aload 0
getfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.protobufFormatSupport:Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
ifnull 2
aload 0
getfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.protobufFormatSupport:Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
aload 1
invokeinterface org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufFormatSupport.supportsWriteOnly:(Lorg/springframework/http/MediaType;)Z
ifne 3
2: StackMap locals:
StackMap stack:
iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter;
0 4 1 mediaType Lorg/springframework/http/MediaType;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
mediaType
protected void writeInternal(com.google.protobuf.Message, org.springframework.http.HttpOutputMessage);
descriptor: (Lcom/google/protobuf/Message;Lorg/springframework/http/HttpOutputMessage;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface org.springframework.http.HttpOutputMessage.getHeaders:()Lorg/springframework/http/HttpHeaders;
invokevirtual org.springframework.http.HttpHeaders.getContentType:()Lorg/springframework/http/MediaType;
astore 3
start local 3 1: aload 3
ifnonnull 6
2: aload 0
aload 1
invokevirtual org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.getDefaultContentType:(Lcom/google/protobuf/Message;)Lorg/springframework/http/MediaType;
astore 3
3: aload 3
ifnull 4
iconst_1
goto 5
StackMap locals: org.springframework.http.MediaType
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: ldc "No content type"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
6: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.springframework.http.MediaType.getCharset:()Ljava/nio/charset/Charset;
astore 4
start local 4 7: aload 4
ifnonnull 9
8: getstatic org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.DEFAULT_CHARSET:Ljava/nio/charset/Charset;
astore 4
9: StackMap locals: java.nio.charset.Charset
StackMap stack:
getstatic org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.PROTOBUF:Lorg/springframework/http/MediaType;
aload 3
invokevirtual org.springframework.http.MediaType.isCompatibleWith:(Lorg/springframework/http/MediaType;)Z
ifeq 15
10: aload 0
aload 2
aload 1
invokevirtual org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.setProtoHeader:(Lorg/springframework/http/HttpOutputMessage;Lcom/google/protobuf/Message;)V
11: aload 2
invokeinterface org.springframework.http.HttpOutputMessage.getBody:()Ljava/io/OutputStream;
invokestatic com.google.protobuf.CodedOutputStream.newInstance:(Ljava/io/OutputStream;)Lcom/google/protobuf/CodedOutputStream;
astore 5
start local 5 12: aload 1
aload 5
invokeinterface com.google.protobuf.Message.writeTo:(Lcom/google/protobuf/CodedOutputStream;)V
13: aload 5
invokevirtual com.google.protobuf.CodedOutputStream.flush:()V
end local 5 14: goto 24
15: StackMap locals:
StackMap stack:
getstatic org.springframework.http.MediaType.TEXT_PLAIN:Lorg/springframework/http/MediaType;
aload 3
invokevirtual org.springframework.http.MediaType.isCompatibleWith:(Lorg/springframework/http/MediaType;)Z
ifeq 21
16: new java.io.OutputStreamWriter
dup
aload 2
invokeinterface org.springframework.http.HttpOutputMessage.getBody:()Ljava/io/OutputStream;
aload 4
invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V
astore 5
start local 5 17: aload 1
aload 5
invokestatic com.google.protobuf.TextFormat.print:(Lcom/google/protobuf/MessageOrBuilder;Ljava/lang/Appendable;)V
18: aload 5
invokevirtual java.io.OutputStreamWriter.flush:()V
19: aload 2
invokeinterface org.springframework.http.HttpOutputMessage.getBody:()Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
end local 5 20: goto 24
21: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.protobufFormatSupport:Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
ifnull 24
22: aload 0
getfield org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.protobufFormatSupport:Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter$ProtobufFormatSupport;
aload 1
aload 2
invokeinterface org.springframework.http.HttpOutputMessage.getBody:()Ljava/io/OutputStream;
aload 3
aload 4
invokeinterface org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufFormatSupport.print:(Lcom/google/protobuf/Message;Ljava/io/OutputStream;Lorg/springframework/http/MediaType;Ljava/nio/charset/Charset;)V
23: aload 2
invokeinterface org.springframework.http.HttpOutputMessage.getBody:()Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
24: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter;
0 25 1 message Lcom/google/protobuf/Message;
0 25 2 outputMessage Lorg/springframework/http/HttpOutputMessage;
1 25 3 contentType Lorg/springframework/http/MediaType;
7 25 4 charset Ljava/nio/charset/Charset;
12 14 5 codedOutputStream Lcom/google/protobuf/CodedOutputStream;
17 20 5 outputStreamWriter Ljava/io/OutputStreamWriter;
Exceptions:
throws java.io.IOException, org.springframework.http.converter.HttpMessageNotWritableException
MethodParameters:
Name Flags
message
outputMessage
private void (org.springframework.http.HttpOutputMessage, com.google.protobuf.Message);
descriptor: (Lorg/springframework/http/HttpOutputMessage;Lcom/google/protobuf/Message;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface org.springframework.http.HttpOutputMessage.getHeaders:()Lorg/springframework/http/HttpHeaders;
ldc "X-Protobuf-Schema"
aload 2
invokeinterface com.google.protobuf.Message.getDescriptorForType:()Lcom/google/protobuf/Descriptors$Descriptor;
invokevirtual com.google.protobuf.Descriptors$Descriptor.getFile:()Lcom/google/protobuf/Descriptors$FileDescriptor;
invokevirtual com.google.protobuf.Descriptors$FileDescriptor.getName:()Ljava/lang/String;
invokevirtual org.springframework.http.HttpHeaders.set:(Ljava/lang/String;Ljava/lang/String;)V
1: aload 1
invokeinterface org.springframework.http.HttpOutputMessage.getHeaders:()Lorg/springframework/http/HttpHeaders;
ldc "X-Protobuf-Message"
aload 2
invokeinterface com.google.protobuf.Message.getDescriptorForType:()Lcom/google/protobuf/Descriptors$Descriptor;
invokevirtual com.google.protobuf.Descriptors$Descriptor.getFullName:()Ljava/lang/String;
invokevirtual org.springframework.http.HttpHeaders.set:(Ljava/lang/String;Ljava/lang/String;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/http/converter/protobuf/ProtobufHttpMessageConverter;
0 3 1 response Lorg/springframework/http/HttpOutputMessage;
0 3 2 message Lcom/google/protobuf/Message;
MethodParameters:
Name Flags
response
message
protected java.lang.Object readInternal(java.lang.Class, org.springframework.http.HttpInputMessage);
descriptor: (Ljava/lang/Class;Lorg/springframework/http/HttpInputMessage;)Ljava/lang/Object;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast java.lang.Class
aload 2
invokevirtual org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.readInternal:(Ljava/lang/Class;Lorg/springframework/http/HttpInputMessage;)Lcom/google/protobuf/Message;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException, org.springframework.http.converter.HttpMessageNotReadableException
protected org.springframework.http.MediaType getDefaultContentType(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lorg/springframework/http/MediaType;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast com.google.protobuf.Message
invokevirtual org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.getDefaultContentType:(Lcom/google/protobuf/Message;)Lorg/springframework/http/MediaType;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
protected void writeInternal(java.lang.Object, org.springframework.http.HttpOutputMessage);
descriptor: (Ljava/lang/Object;Lorg/springframework/http/HttpOutputMessage;)V
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast com.google.protobuf.Message
aload 2
invokevirtual org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter.writeInternal:(Lcom/google/protobuf/Message;Lorg/springframework/http/HttpOutputMessage;)V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException, org.springframework.http.converter.HttpMessageNotWritableException
}
Signature: Lorg/springframework/http/converter/AbstractHttpMessageConverter<Lcom/google/protobuf/Message;>;
SourceFile: "ProtobufHttpMessageConverter.java"
NestMembers:
org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufFormatSupport org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufJavaFormatSupport org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufJavaUtilSupport
InnerClasses:
public final Descriptor = com.google.protobuf.Descriptors$Descriptor of com.google.protobuf.Descriptors
public final FileDescriptor = com.google.protobuf.Descriptors$FileDescriptor of com.google.protobuf.Descriptors
public abstract Builder = com.google.protobuf.Message$Builder of com.google.protobuf.Message
public Parser = com.google.protobuf.util.JsonFormat$Parser of com.google.protobuf.util.JsonFormat
public Printer = com.google.protobuf.util.JsonFormat$Printer of com.google.protobuf.util.JsonFormat
abstract ProtobufFormatSupport = org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufFormatSupport of org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter
ProtobufJavaFormatSupport = org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufJavaFormatSupport of org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter
ProtobufJavaUtilSupport = org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter$ProtobufJavaUtilSupport of org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter