1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.jackson;
18
19 import org.apache.logging.log4j.core.impl.ExtendedStackTraceElement;
20 import org.apache.logging.log4j.core.impl.ThrowableProxy;
21
22 import com.fasterxml.jackson.annotation.JsonIgnore;
23 import com.fasterxml.jackson.annotation.JsonProperty;
24 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
25 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
26
27
28
29
30 abstract class ThrowableProxyMixIn {
31
32 @JsonProperty(JsonConstants.ELT_CAUSE)
33 @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_CAUSE)
34 private ThrowableProxyMixIn causeProxy;
35
36 @JsonProperty
37 @JacksonXmlProperty(isAttribute = true)
38 private int commonElementCount;
39
40 @JsonProperty(JsonConstants.ELT_EXTENDED_STACK_TRACE)
41 @JacksonXmlElementWrapper(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_EXTENDED_STACK_TRACE)
42 @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_EXTENDED_STACK_TRACE_ITEM)
43 private ExtendedStackTraceElement[] extendedStackTrace;
44
45 @JsonProperty
46 @JacksonXmlProperty(isAttribute = true)
47 private String localizedMessage;
48
49 @JsonProperty
50 @JacksonXmlProperty(isAttribute = true)
51 private String message;
52
53 @JsonProperty
54 @JacksonXmlProperty(isAttribute = true)
55 private String name;
56
57 @JsonIgnore
58 private transient Throwable throwable;
59
60 @JsonIgnore
61 public abstract String getCauseStackTraceAsString();
62
63 @JsonIgnore
64 public abstract String getExtendedStackTraceAsString();
65
66 @JsonIgnore
67 public abstract StackTraceElement[] getStackTrace();
68
69 @JsonProperty(JsonConstants.ELT_SUPPRESSED)
70 @JacksonXmlElementWrapper(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_SUPPRESSED)
71 @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_SUPPRESSED_ITEM)
72 public abstract ThrowableProxy[] getSuppressedProxies();
73
74 @JsonIgnore
75 public abstract String getSuppressedStackTrace();
76
77 @JsonIgnore
78 public abstract Throwable getThrowable();
79
80 }