public class org.springframework.http.codec.xml.Jaxb2XmlEncoder extends org.springframework.core.codec.AbstractSingleValueEncoder<java.lang.Object>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.http.codec.xml.Jaxb2XmlEncoder
super_class: org.springframework.core.codec.AbstractSingleValueEncoder
{
private final org.springframework.http.codec.xml.JaxbContextContainer jaxbContexts;
descriptor: Lorg/springframework/http/codec/xml/JaxbContextContainer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.function.Function<javax.xml.bind.Marshaller, javax.xml.bind.Marshaller> marshallerProcessor;
descriptor: Ljava/util/function/Function;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/function/Function<Ljavax/xml/bind/Marshaller;Ljavax/xml/bind/Marshaller;>;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
iconst_2
anewarray org.springframework.util.MimeType
dup
iconst_0
getstatic org.springframework.util.MimeTypeUtils.APPLICATION_XML:Lorg/springframework/util/MimeType;
aastore
dup
iconst_1
getstatic org.springframework.util.MimeTypeUtils.TEXT_XML:Lorg/springframework/util/MimeType;
aastore
invokespecial org.springframework.core.codec.AbstractSingleValueEncoder.<init>:([Lorg/springframework/util/MimeType;)V
1: aload 0
new org.springframework.http.codec.xml.JaxbContextContainer
dup
invokespecial org.springframework.http.codec.xml.JaxbContextContainer.<init>:()V
putfield org.springframework.http.codec.xml.Jaxb2XmlEncoder.jaxbContexts:Lorg/springframework/http/codec/xml/JaxbContextContainer;
2: aload 0
invokestatic java.util.function.Function.identity:()Ljava/util/function/Function;
putfield org.springframework.http.codec.xml.Jaxb2XmlEncoder.marshallerProcessor:Ljava/util/function/Function;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/http/codec/xml/Jaxb2XmlEncoder;
public void setMarshallerProcessor(java.util.function.Function<javax.xml.bind.Marshaller, javax.xml.bind.Marshaller>);
descriptor: (Ljava/util/function/Function;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield org.springframework.http.codec.xml.Jaxb2XmlEncoder.marshallerProcessor:Ljava/util/function/Function;
aload 1
invokeinterface java.util.function.Function.andThen:(Ljava/util/function/Function;)Ljava/util/function/Function;
putfield org.springframework.http.codec.xml.Jaxb2XmlEncoder.marshallerProcessor:Ljava/util/function/Function;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/http/codec/xml/Jaxb2XmlEncoder;
0 2 1 processor Ljava/util/function/Function<Ljavax/xml/bind/Marshaller;Ljavax/xml/bind/Marshaller;>;
Signature: (Ljava/util/function/Function<Ljavax/xml/bind/Marshaller;Ljavax/xml/bind/Marshaller;>;)V
MethodParameters:
Name Flags
processor
public java.util.function.Function<javax.xml.bind.Marshaller, javax.xml.bind.Marshaller> getMarshallerProcessor();
descriptor: ()Ljava/util/function/Function;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.http.codec.xml.Jaxb2XmlEncoder.marshallerProcessor:Ljava/util/function/Function;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/codec/xml/Jaxb2XmlEncoder;
Signature: ()Ljava/util/function/Function<Ljavax/xml/bind/Marshaller;Ljavax/xml/bind/Marshaller;>;
public boolean canEncode(org.springframework.core.ResolvableType, org.springframework.util.MimeType);
descriptor: (Lorg/springframework/core/ResolvableType;Lorg/springframework/util/MimeType;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.springframework.core.codec.AbstractSingleValueEncoder.canEncode:(Lorg/springframework/core/ResolvableType;Lorg/springframework/util/MimeType;)Z
ifeq 6
1: aload 1
invokevirtual org.springframework.core.ResolvableType.toClass:()Ljava/lang/Class;
astore 3
start local 3 2: aload 3
ldc Ljavax/xml/bind/annotation/XmlRootElement;
invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
ifne 5
3: aload 3
ldc Ljavax/xml/bind/annotation/XmlType;
invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
ifne 5
4: iconst_0
ireturn
StackMap locals: java.lang.Class
StackMap stack:
5: iconst_1
ireturn
end local 3 6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/http/codec/xml/Jaxb2XmlEncoder;
0 7 1 elementType Lorg/springframework/core/ResolvableType;
0 7 2 mimeType Lorg/springframework/util/MimeType;
2 6 3 outputClass Ljava/lang/Class<*>;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
elementType
mimeType
protected reactor.core.publisher.Flux<org.springframework.core.io.buffer.DataBuffer> encode(, org.springframework.core.io.buffer.DataBufferFactory, org.springframework.core.ResolvableType, org.springframework.util.MimeType, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Ljava/lang/Object;Lorg/springframework/core/io/buffer/DataBufferFactory;Lorg/springframework/core/ResolvableType;Lorg/springframework/util/MimeType;Ljava/util/Map;)Lreactor/core/publisher/Flux;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 5
invokestatic org.springframework.core.codec.Hints.isLoggingSuppressed:(Ljava/util/Map;)Z
ifne 2
1: aload 0
getfield org.springframework.http.codec.xml.Jaxb2XmlEncoder.logger:Lorg/apache/commons/logging/Log;
aload 1
aload 5
invokedynamic apply(Ljava/lang/Object;Ljava/util/Map;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/springframework/http/codec/xml/Jaxb2XmlEncoder.lambda$0(Ljava/lang/Object;Ljava/util/Map;Ljava/lang/Boolean;)Ljava/lang/String; (6)
(Ljava/lang/Boolean;)Ljava/lang/String;
invokestatic org.springframework.core.log.LogFormatUtils.traceDebug:(Lorg/apache/commons/logging/Log;Ljava/util/function/Function;)V
2: StackMap locals:
StackMap stack:
iconst_1
istore 6
start local 6 3: aload 2
sipush 1024
invokeinterface org.springframework.core.io.buffer.DataBufferFactory.allocateBuffer:(I)Lorg/springframework/core/io/buffer/DataBuffer;
astore 7
start local 7 4: aload 7
invokeinterface org.springframework.core.io.buffer.DataBuffer.asOutputStream:()Ljava/io/OutputStream;
astore 8
start local 8 5: aload 1
invokestatic org.springframework.util.ClassUtils.getUserClass:(Ljava/lang/Object;)Ljava/lang/Class;
astore 9
start local 9 6: aload 0
aload 9
invokevirtual org.springframework.http.codec.xml.Jaxb2XmlEncoder.initMarshaller:(Ljava/lang/Class;)Ljavax/xml/bind/Marshaller;
astore 10
start local 10 7: aload 10
aload 1
aload 8
invokeinterface javax.xml.bind.Marshaller.marshal:(Ljava/lang/Object;Ljava/io/OutputStream;)V
8: iconst_0
istore 6
9: aload 7
invokestatic reactor.core.publisher.Flux.just:(Ljava/lang/Object;)Lreactor/core/publisher/Flux;
astore 12
10: iload 6
ifeq 12
11: aload 7
invokestatic org.springframework.core.io.buffer.DataBufferUtils.release:(Lorg/springframework/core/io/buffer/DataBuffer;)Z
pop
12: StackMap locals: org.springframework.http.codec.xml.Jaxb2XmlEncoder java.lang.Object org.springframework.core.io.buffer.DataBufferFactory org.springframework.core.ResolvableType org.springframework.util.MimeType java.util.Map int org.springframework.core.io.buffer.DataBuffer java.io.OutputStream java.lang.Class javax.xml.bind.Marshaller top reactor.core.publisher.Flux
StackMap stack:
aload 12
areturn
end local 10 13: StackMap locals: org.springframework.http.codec.xml.Jaxb2XmlEncoder java.lang.Object org.springframework.core.io.buffer.DataBufferFactory org.springframework.core.ResolvableType org.springframework.util.MimeType java.util.Map int org.springframework.core.io.buffer.DataBuffer java.io.OutputStream java.lang.Class
StackMap stack: javax.xml.bind.MarshalException
astore 10
start local 10 14: new org.springframework.core.codec.EncodingException
dup
15: new java.lang.StringBuilder
dup
ldc "Could not marshal "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " to XML"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 10
16: invokespecial org.springframework.core.codec.EncodingException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
invokestatic reactor.core.publisher.Flux.error:(Ljava/lang/Throwable;)Lreactor/core/publisher/Flux;
astore 12
17: iload 6
ifeq 19
18: aload 7
invokestatic org.springframework.core.io.buffer.DataBufferUtils.release:(Lorg/springframework/core/io/buffer/DataBuffer;)Z
pop
19: StackMap locals: org.springframework.http.codec.xml.Jaxb2XmlEncoder java.lang.Object org.springframework.core.io.buffer.DataBufferFactory org.springframework.core.ResolvableType org.springframework.util.MimeType java.util.Map int org.springframework.core.io.buffer.DataBuffer java.io.OutputStream java.lang.Class javax.xml.bind.MarshalException top reactor.core.publisher.Flux
StackMap stack:
aload 12
areturn
end local 10 20: StackMap locals: org.springframework.http.codec.xml.Jaxb2XmlEncoder java.lang.Object org.springframework.core.io.buffer.DataBufferFactory org.springframework.core.ResolvableType org.springframework.util.MimeType java.util.Map int org.springframework.core.io.buffer.DataBuffer java.io.OutputStream java.lang.Class
StackMap stack: javax.xml.bind.JAXBException
astore 10
start local 10 21: new org.springframework.core.codec.CodecException
dup
ldc "Invalid JAXB configuration"
aload 10
invokespecial org.springframework.core.codec.CodecException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
invokestatic reactor.core.publisher.Flux.error:(Ljava/lang/Throwable;)Lreactor/core/publisher/Flux;
astore 12
22: iload 6
ifeq 24
23: aload 7
invokestatic org.springframework.core.io.buffer.DataBufferUtils.release:(Lorg/springframework/core/io/buffer/DataBuffer;)Z
pop
24: StackMap locals: org.springframework.http.codec.xml.Jaxb2XmlEncoder java.lang.Object org.springframework.core.io.buffer.DataBufferFactory org.springframework.core.ResolvableType org.springframework.util.MimeType java.util.Map int org.springframework.core.io.buffer.DataBuffer java.io.OutputStream java.lang.Class javax.xml.bind.JAXBException top reactor.core.publisher.Flux
StackMap stack:
aload 12
areturn
end local 10 25: StackMap locals: org.springframework.http.codec.xml.Jaxb2XmlEncoder java.lang.Object org.springframework.core.io.buffer.DataBufferFactory org.springframework.core.ResolvableType org.springframework.util.MimeType java.util.Map int org.springframework.core.io.buffer.DataBuffer java.io.OutputStream java.lang.Class
StackMap stack: java.lang.Throwable
astore 11
26: iload 6
ifeq 28
27: aload 7
invokestatic org.springframework.core.io.buffer.DataBufferUtils.release:(Lorg/springframework/core/io/buffer/DataBuffer;)Z
pop
28: StackMap locals: org.springframework.http.codec.xml.Jaxb2XmlEncoder java.lang.Object org.springframework.core.io.buffer.DataBufferFactory org.springframework.core.ResolvableType org.springframework.util.MimeType java.util.Map int org.springframework.core.io.buffer.DataBuffer java.io.OutputStream java.lang.Class top java.lang.Throwable
StackMap stack:
aload 11
athrow
end local 9 end local 8 end local 7 end local 6 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 29 0 this Lorg/springframework/http/codec/xml/Jaxb2XmlEncoder;
0 29 1 value Ljava/lang/Object;
0 29 2 dataBufferFactory Lorg/springframework/core/io/buffer/DataBufferFactory;
0 29 3 type Lorg/springframework/core/ResolvableType;
0 29 4 mimeType Lorg/springframework/util/MimeType;
0 29 5 hints Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
3 29 6 release Z
4 29 7 buffer Lorg/springframework/core/io/buffer/DataBuffer;
5 29 8 outputStream Ljava/io/OutputStream;
6 29 9 clazz Ljava/lang/Class<*>;
7 13 10 marshaller Ljavax/xml/bind/Marshaller;
14 20 10 ex Ljavax/xml/bind/MarshalException;
21 25 10 ex Ljavax/xml/bind/JAXBException;
Exception table:
from to target type
6 10 13 Class javax.xml.bind.MarshalException
6 10 20 Class javax.xml.bind.JAXBException
6 10 25 any
13 17 25 any
20 22 25 any
Signature: (Ljava/lang/Object;Lorg/springframework/core/io/buffer/DataBufferFactory;Lorg/springframework/core/ResolvableType;Lorg/springframework/util/MimeType;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lreactor/core/publisher/Flux<Lorg/springframework/core/io/buffer/DataBuffer;>;
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
org.springframework.lang.Nullable()
4:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
value
dataBufferFactory
type
mimeType
hints
private javax.xml.bind.Marshaller initMarshaller(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljavax/xml/bind/Marshaller;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.http.codec.xml.Jaxb2XmlEncoder.jaxbContexts:Lorg/springframework/http/codec/xml/JaxbContextContainer;
aload 1
invokevirtual org.springframework.http.codec.xml.JaxbContextContainer.createMarshaller:(Ljava/lang/Class;)Ljavax/xml/bind/Marshaller;
astore 2
start local 2 1: aload 2
ldc "jaxb.encoding"
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
invokeinterface javax.xml.bind.Marshaller.setProperty:(Ljava/lang/String;Ljava/lang/Object;)V
2: aload 0
getfield org.springframework.http.codec.xml.Jaxb2XmlEncoder.marshallerProcessor:Ljava/util/function/Function;
aload 2
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast javax.xml.bind.Marshaller
astore 2
3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/http/codec/xml/Jaxb2XmlEncoder;
0 4 1 clazz Ljava/lang/Class<*>;
1 4 2 marshaller Ljavax/xml/bind/Marshaller;
Exceptions:
throws javax.xml.bind.JAXBException
Signature: (Ljava/lang/Class<*>;)Ljavax/xml/bind/Marshaller;
MethodParameters:
Name Flags
clazz
private static java.lang.String lambda$0(java.lang.Object, java.util.Map, java.lang.Boolean);
descriptor: (Ljava/lang/Object;Ljava/util/Map;Ljava/lang/Boolean;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=3
start local 2 0: aload 0
aload 2
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack: java.lang.Object
1: iconst_1
StackMap locals: java.lang.Object java.util.Map java.lang.Boolean
StackMap stack: java.lang.Object int
2: invokestatic org.springframework.core.log.LogFormatUtils.formatValue:(Ljava/lang/Object;Z)Ljava/lang/String;
astore 3
start local 3 3: new java.lang.StringBuilder
dup
aload 1
invokestatic org.springframework.core.codec.Hints.getLogPrefix:(Ljava/util/Map;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "Encoding ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 LocalVariableTable:
Start End Slot Name Signature
0 4 2 traceOn Ljava/lang/Boolean;
3 4 3 formatted Ljava/lang/String;
}
Signature: Lorg/springframework/core/codec/AbstractSingleValueEncoder<Ljava/lang/Object;>;
SourceFile: "Jaxb2XmlEncoder.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles