45
45
* @since 9.2.1
46
46
*/
47
47
public class NamespaceAndElementFilter extends XMLFilterImpl {
48
- private static final transient Logger log = Logger .getLogger (NamespaceAndElementFilter .class .getName ());
48
+ private static final Logger log = Logger .getLogger (NamespaceAndElementFilter .class .getName ());
49
49
50
50
private String mainNamespace ;
51
51
private boolean inElementToPropagate = false ;
52
- private String localNameToPropagate ;
52
+ private final String localNameToPropagate ;
53
53
private boolean inInnerElementToSkip = false ;
54
54
private String localNameToSkip ;
55
- private boolean unbindNamespace ;
55
+ private final boolean unbindNamespace ;
56
56
57
57
/**
58
58
* @param localName the XML's element to propagate
@@ -91,7 +91,10 @@ public void startElement(String namespace, String localName, String prefix, Attr
91
91
try {
92
92
super .startElement (namespaceToPropagate , localName , prefix , attributes );
93
93
} catch (Exception e ) {
94
- log .log (Level .WARNING , "Error parsing " + localName + " [" + namespace + "] element" , e );
94
+ log .warning ("Error parsing " + localName + " [" + namespace + "] element: " + exceptionMessage (e ));
95
+ if (log .isLoggable (Level .FINEST )) {
96
+ log .log (Level .FINEST , "Error parsing " + localName + " [" + namespace + "] element" , e );
97
+ }
95
98
}
96
99
} else {
97
100
// we have found an element within the structure to propagate with a not recognized namespace
@@ -150,7 +153,10 @@ public void endElement(String namespace, String localName, String prefix) throws
150
153
try {
151
154
super .endElement (namespaceToPropagate , localName , prefix );
152
155
} catch (Exception e ) {
153
- log .log (Level .WARNING , "Error parsing " + localName + " [" + namespace + "] element" , e );
156
+ log .warning ("Error parsing " + localName + " [" + namespace + "] element: " + exceptionMessage (e ));
157
+ if (log .isLoggable (Level .FINEST )) {
158
+ log .log (Level .FINEST , "Error parsing " + localName + " [" + namespace + "] element" , e );
159
+ }
154
160
}
155
161
}
156
162
}
@@ -169,9 +175,23 @@ public void startPrefixMapping(String prefix, String url) throws SAXException {
169
175
try {
170
176
super .startPrefixMapping (prefix , url );
171
177
} catch (Exception e ) {
172
- log .log (Level .WARNING , "Error parsing " + prefix + " [" + url + "] prefix mapping" , e );
178
+ log .warning ("Error parsing " + prefix + " [" + url + "] prefix mapping: " + exceptionMessage (e ));
179
+ if (log .isLoggable (Level .FINEST )) {
180
+ log .log (Level .FINEST , "Error parsing " + prefix + " [" + url + "] prefix mapping" , e );
181
+ }
173
182
}
174
183
}
175
184
}
176
185
}
186
+
187
+ private static String exceptionMessage (Exception e ) {
188
+ String message = e .getMessage ();
189
+ if (message == null && e .getCause () != null ) {
190
+ message = e .getCause ().getMessage ();
191
+ }
192
+ if (message == null ) {
193
+ message = e .getClass ().getSimpleName ();
194
+ }
195
+ return message ;
196
+ }
177
197
}
0 commit comments