public class org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter extends org.springframework.http.converter.xml.AbstractJaxb2HttpMessageConverter<java.lang.Object>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter
super_class: org.springframework.http.converter.xml.AbstractJaxb2HttpMessageConverter
{
private boolean supportDtd;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean processExternalEntities;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private static final org.xml.sax.EntityResolver NO_OP_ENTITY_RESOLVER;
descriptor: Lorg/xml/sax/EntityResolver;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokedynamic resolveEntity()Lorg/xml/sax/EntityResolver;
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/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;
org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter.lambda$0(Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource; (6)
(Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;
1: putstatic org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.NO_OP_ENTITY_RESOLVER:Lorg/xml/sax/EntityResolver;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.springframework.http.converter.xml.AbstractJaxb2HttpMessageConverter.<init>:()V
1: aload 0
iconst_0
putfield org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.supportDtd:Z
2: aload 0
iconst_0
putfield org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.processExternalEntities:Z
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter;
public void setSupportDtd(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
putfield org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.supportDtd:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter;
0 2 1 supportDtd Z
MethodParameters:
Name Flags
supportDtd
public boolean isSupportDtd();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.supportDtd:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter;
public void setProcessExternalEntities(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
putfield org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.processExternalEntities:Z
1: iload 1
ifeq 3
2: aload 0
iconst_1
invokevirtual org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.setSupportDtd:(Z)V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter;
0 4 1 processExternalEntities Z
MethodParameters:
Name Flags
processExternalEntities
public boolean isProcessExternalEntities();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.processExternalEntities:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter;
public boolean canRead(java.lang.Class<?>, org.springframework.http.MediaType);
descriptor: (Ljava/lang/Class;Lorg/springframework/http/MediaType;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc Ljavax/xml/bind/annotation/XmlRootElement;
invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
ifne 1
aload 1
ldc Ljavax/xml/bind/annotation/XmlType;
invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
ifeq 3
1: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.canRead:(Lorg/springframework/http/MediaType;)Z
ifeq 3
2: iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter;
0 4 1 clazz Ljava/lang/Class<*>;
0 4 2 mediaType Lorg/springframework/http/MediaType;
Signature: (Ljava/lang/Class<*>;Lorg/springframework/http/MediaType;)Z
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
clazz
mediaType
public boolean canWrite(java.lang.Class<?>, org.springframework.http.MediaType);
descriptor: (Ljava/lang/Class;Lorg/springframework/http/MediaType;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc Ljavax/xml/bind/annotation/XmlRootElement;
invokestatic org.springframework.core.annotation.AnnotationUtils.findAnnotation:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnull 1
aload 0
aload 2
invokevirtual org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.canWrite:(Lorg/springframework/http/MediaType;)Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter;
0 2 1 clazz Ljava/lang/Class<*>;
0 2 2 mediaType Lorg/springframework/http/MediaType;
Signature: (Ljava/lang/Class<*>;Lorg/springframework/http/MediaType;)Z
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
clazz
mediaType
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: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter;
0 1 1 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
protected readFromSource(java.lang.Class<?>, org.springframework.http.HttpHeaders, javax.xml.transform.Source);
descriptor: (Ljava/lang/Class;Lorg/springframework/http/HttpHeaders;Ljavax/xml/transform/Source;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 3
invokevirtual org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.processSource:(Ljavax/xml/transform/Source;)Ljavax/xml/transform/Source;
astore 3
1: aload 0
aload 1
invokevirtual org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.createUnmarshaller:(Ljava/lang/Class;)Ljavax/xml/bind/Unmarshaller;
astore 4
start local 4 2: aload 1
ldc Ljavax/xml/bind/annotation/XmlRootElement;
invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
ifeq 5
3: aload 4
aload 3
invokeinterface javax.xml.bind.Unmarshaller.unmarshal:(Ljavax/xml/transform/Source;)Ljava/lang/Object;
4: areturn
5: StackMap locals: javax.xml.bind.Unmarshaller
StackMap stack:
aload 4
aload 3
aload 1
invokeinterface javax.xml.bind.Unmarshaller.unmarshal:(Ljavax/xml/transform/Source;Ljava/lang/Class;)Ljavax/xml/bind/JAXBElement;
astore 5
start local 5 6: aload 5
invokevirtual javax.xml.bind.JAXBElement.getValue:()Ljava/lang/Object;
7: areturn
end local 5 end local 4 8: StackMap locals: org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter java.lang.Class org.springframework.http.HttpHeaders javax.xml.transform.Source
StackMap stack: java.lang.NullPointerException
astore 4
start local 4 9: aload 0
invokevirtual org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.isSupportDtd:()Z
ifne 13
10: new java.lang.IllegalStateException
dup
ldc "NPE while unmarshalling. This can happen due to the presence of DTD declarations which are disabled."
11: aload 4
12: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
13: StackMap locals: java.lang.NullPointerException
StackMap stack:
aload 4
athrow
end local 4 14: StackMap locals: org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter java.lang.Class org.springframework.http.HttpHeaders javax.xml.transform.Source
StackMap stack: javax.xml.bind.UnmarshalException
astore 4
start local 4 15: aload 4
athrow
end local 4 16: StackMap locals:
StackMap stack: javax.xml.bind.JAXBException
astore 4
start local 4 17: new org.springframework.http.converter.HttpMessageConversionException
dup
new java.lang.StringBuilder
dup
ldc "Invalid JAXB setup: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual javax.xml.bind.JAXBException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokespecial org.springframework.http.converter.HttpMessageConversionException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter;
0 18 1 clazz Ljava/lang/Class<*>;
0 18 2 headers Lorg/springframework/http/HttpHeaders;
0 18 3 source Ljavax/xml/transform/Source;
2 8 4 unmarshaller Ljavax/xml/bind/Unmarshaller;
6 8 5 jaxbElement Ljavax/xml/bind/JAXBElement<*>;
9 14 4 ex Ljava/lang/NullPointerException;
15 16 4 ex Ljavax/xml/bind/UnmarshalException;
17 18 4 ex Ljavax/xml/bind/JAXBException;
Exception table:
from to target type
0 4 8 Class java.lang.NullPointerException
5 7 8 Class java.lang.NullPointerException
0 4 14 Class javax.xml.bind.UnmarshalException
5 7 14 Class javax.xml.bind.UnmarshalException
0 4 16 Class javax.xml.bind.JAXBException
5 7 16 Class javax.xml.bind.JAXBException
Exceptions:
throws java.lang.Exception
Signature: (Ljava/lang/Class<*>;Lorg/springframework/http/HttpHeaders;Ljavax/xml/transform/Source;)Ljava/lang/Object;
MethodParameters:
Name Flags
clazz
headers
source
protected javax.xml.transform.Source processSource(javax.xml.transform.Source);
descriptor: (Ljavax/xml/transform/Source;)Ljavax/xml/transform/Source;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
instanceof javax.xml.transform.stream.StreamSource
ifeq 16
1: aload 1
checkcast javax.xml.transform.stream.StreamSource
astore 2
start local 2 2: new org.xml.sax.InputSource
dup
aload 2
invokevirtual javax.xml.transform.stream.StreamSource.getInputStream:()Ljava/io/InputStream;
invokespecial org.xml.sax.InputSource.<init>:(Ljava/io/InputStream;)V
astore 3
start local 3 3: invokestatic org.xml.sax.helpers.XMLReaderFactory.createXMLReader:()Lorg/xml/sax/XMLReader;
astore 4
start local 4 4: aload 4
ldc "http://apache.org/xml/features/disallow-doctype-decl"
aload 0
invokevirtual org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.isSupportDtd:()Z
ifeq 5
iconst_0
goto 6
StackMap locals: org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter javax.xml.transform.Source javax.xml.transform.stream.StreamSource org.xml.sax.InputSource org.xml.sax.XMLReader
StackMap stack: org.xml.sax.XMLReader java.lang.String
5: iconst_1
StackMap locals: org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter javax.xml.transform.Source javax.xml.transform.stream.StreamSource org.xml.sax.InputSource org.xml.sax.XMLReader
StackMap stack: org.xml.sax.XMLReader java.lang.String int
6: invokeinterface org.xml.sax.XMLReader.setFeature:(Ljava/lang/String;Z)V
7: ldc "http://xml.org/sax/features/external-general-entities"
astore 5
start local 5 8: aload 4
aload 5
aload 0
invokevirtual org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.isProcessExternalEntities:()Z
invokeinterface org.xml.sax.XMLReader.setFeature:(Ljava/lang/String;Z)V
9: aload 0
invokevirtual org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.isProcessExternalEntities:()Z
ifne 11
10: aload 4
getstatic org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.NO_OP_ENTITY_RESOLVER:Lorg/xml/sax/EntityResolver;
invokeinterface org.xml.sax.XMLReader.setEntityResolver:(Lorg/xml/sax/EntityResolver;)V
11: StackMap locals: java.lang.String
StackMap stack:
new javax.xml.transform.sax.SAXSource
dup
aload 4
aload 3
invokespecial javax.xml.transform.sax.SAXSource.<init>:(Lorg/xml/sax/XMLReader;Lorg/xml/sax/InputSource;)V
12: areturn
end local 5 end local 4 13: StackMap locals: org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter javax.xml.transform.Source javax.xml.transform.stream.StreamSource org.xml.sax.InputSource
StackMap stack: org.xml.sax.SAXException
astore 4
start local 4 14: aload 0
getfield org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.logger:Lorg/apache/commons/logging/Log;
ldc "Processing of external entities could not be disabled"
aload 4
invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
15: aload 1
areturn
end local 4 end local 3 end local 2 16: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter;
0 17 1 source Ljavax/xml/transform/Source;
2 16 2 streamSource Ljavax/xml/transform/stream/StreamSource;
3 16 3 inputSource Lorg/xml/sax/InputSource;
4 13 4 xmlReader Lorg/xml/sax/XMLReader;
8 13 5 featureName Ljava/lang/String;
14 16 4 ex Lorg/xml/sax/SAXException;
Exception table:
from to target type
3 12 13 Class org.xml.sax.SAXException
MethodParameters:
Name Flags
source
protected void (java.lang.Object, org.springframework.http.HttpHeaders, javax.xml.transform.Result);
descriptor: (Ljava/lang/Object;Lorg/springframework/http/HttpHeaders;Ljavax/xml/transform/Result;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokestatic org.springframework.util.ClassUtils.getUserClass:(Ljava/lang/Object;)Ljava/lang/Class;
astore 4
start local 4 1: aload 0
aload 4
invokevirtual org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.createMarshaller:(Ljava/lang/Class;)Ljavax/xml/bind/Marshaller;
astore 5
start local 5 2: aload 0
aload 2
invokevirtual org.springframework.http.HttpHeaders.getContentType:()Lorg/springframework/http/MediaType;
aload 5
invokevirtual org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.setCharset:(Lorg/springframework/http/MediaType;Ljavax/xml/bind/Marshaller;)V
3: aload 5
aload 1
aload 3
invokeinterface javax.xml.bind.Marshaller.marshal:(Ljava/lang/Object;Ljavax/xml/transform/Result;)V
end local 5 end local 4 4: goto 9
5: StackMap locals:
StackMap stack: javax.xml.bind.MarshalException
astore 4
start local 4 6: aload 4
athrow
end local 4 7: StackMap locals:
StackMap stack: javax.xml.bind.JAXBException
astore 4
start local 4 8: new org.springframework.http.converter.HttpMessageConversionException
dup
new java.lang.StringBuilder
dup
ldc "Invalid JAXB setup: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual javax.xml.bind.JAXBException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokespecial org.springframework.http.converter.HttpMessageConversionException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 9: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter;
0 10 1 o Ljava/lang/Object;
0 10 2 headers Lorg/springframework/http/HttpHeaders;
0 10 3 result Ljavax/xml/transform/Result;
1 4 4 clazz Ljava/lang/Class<*>;
2 4 5 marshaller Ljavax/xml/bind/Marshaller;
6 7 4 ex Ljavax/xml/bind/MarshalException;
8 9 4 ex Ljavax/xml/bind/JAXBException;
Exception table:
from to target type
0 4 5 Class javax.xml.bind.MarshalException
0 4 7 Class javax.xml.bind.JAXBException
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
o
headers
result
private void setCharset(org.springframework.http.MediaType, javax.xml.bind.Marshaller);
descriptor: (Lorg/springframework/http/MediaType;Ljavax/xml/bind/Marshaller;)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
ifnull 2
aload 1
invokevirtual org.springframework.http.MediaType.getCharset:()Ljava/nio/charset/Charset;
ifnull 2
1: aload 2
ldc "jaxb.encoding"
aload 1
invokevirtual org.springframework.http.MediaType.getCharset:()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: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter;
0 3 1 contentType Lorg/springframework/http/MediaType;
0 3 2 marshaller Ljavax/xml/bind/Marshaller;
Exceptions:
throws javax.xml.bind.PropertyException
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
contentType
marshaller
private static org.xml.sax.InputSource lambda$0(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new org.xml.sax.InputSource
dup
new java.io.StringReader
dup
ldc ""
invokespecial java.io.StringReader.<init>:(Ljava/lang/String;)V
invokespecial org.xml.sax.InputSource.<init>:(Ljava/io/Reader;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 publicId Ljava/lang/String;
0 1 1 systemId Ljava/lang/String;
Exceptions:
throws org.xml.sax.SAXException, java.io.IOException
}
Signature: Lorg/springframework/http/converter/xml/AbstractJaxb2HttpMessageConverter<Ljava/lang/Object;>;
SourceFile: "Jaxb2RootElementHttpMessageConverter.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles