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 com.fasterxml.jackson.annotation.JsonIgnore;
20 import com.fasterxml.jackson.annotation.JsonProperty;
21 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
22 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
23 import org.apache.logging.log4j.core.impl.ExtendedStackTraceElement;
24 import org.apache.logging.log4j.core.impl.ThrowableProxy;
25
26
27
28
29 abstract class ThrowableProxyWithStacktraceAsStringMixIn {
30
31 @JsonProperty(JsonConstants.ELT_CAUSE)
32 @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_CAUSE)
33 private ThrowableProxyWithStacktraceAsStringMixIn causeProxy;
34
35 @JsonProperty
36 @JacksonXmlProperty(isAttribute = true)
37 private int commonElementCount;
38
39 @JsonIgnore
40 private ExtendedStackTraceElement[] extendedStackTrace;
41
42 @JsonProperty
43 @JacksonXmlProperty(isAttribute = true)
44 private String localizedMessage;
45
46 @JsonProperty
47 @JacksonXmlProperty(isAttribute = true)
48 private String message;
49
50 @JsonProperty
51 @JacksonXmlProperty(isAttribute = true)
52 private String name;
53
54 @JsonIgnore
55 private transient Throwable throwable;
56
57 @JsonIgnore
58 public abstract String getCauseStackTraceAsString();
59
60 @JsonProperty(JsonConstants.ELT_EXTENDED_STACK_TRACE)
61 @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_EXTENDED_STACK_TRACE)
62 public abstract String getExtendedStackTraceAsString();
63
64 @JsonIgnore
65 public abstract StackTraceElement[] getStackTrace();
66
67 @JsonProperty(JsonConstants.ELT_SUPPRESSED)
68 @JacksonXmlElementWrapper(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_SUPPRESSED)
69 @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_SUPPRESSED_ITEM)
70 public abstract ThrowableProxy[] getSuppressedProxies();
71
72 @JsonIgnore
73 public abstract String getSuppressedStackTrace();
74
75 @JsonIgnore
76 public abstract Throwable getThrowable();
77
78 }