@@ -179,16 +179,10 @@ public static SAXTransformerFactory newSecureSAXTransformerFactory()
179179 */
180180 private static void setOptionalSecureTransformerAttributes (
181181 TransformerFactory transformerFactory ) {
182- if (CAN_SET_TRANSFORMER_ACCESS_EXTERNAL_DTD .get ()) {
183- if (!bestEffortSetAttribute (transformerFactory , XMLConstants .ACCESS_EXTERNAL_DTD , "" )) {
184- CAN_SET_TRANSFORMER_ACCESS_EXTERNAL_DTD .set (false );
185- }
186- }
187- if (CAN_SET_TRANSFORMER_ACCESS_EXTERNAL_STYLESHEET .get ()) {
188- if (!bestEffortSetAttribute (transformerFactory , XMLConstants .ACCESS_EXTERNAL_STYLESHEET , "" )) {
189- CAN_SET_TRANSFORMER_ACCESS_EXTERNAL_STYLESHEET .set (false );
190- }
191- }
182+ bestEffortSetAttribute (transformerFactory , CAN_SET_TRANSFORMER_ACCESS_EXTERNAL_DTD ,
183+ XMLConstants .ACCESS_EXTERNAL_DTD , "" );
184+ bestEffortSetAttribute (transformerFactory , CAN_SET_TRANSFORMER_ACCESS_EXTERNAL_STYLESHEET ,
185+ XMLConstants .ACCESS_EXTERNAL_STYLESHEET , "" );
192186 }
193187
194188 /**
@@ -197,18 +191,19 @@ private static void setOptionalSecureTransformerAttributes(
197191 * logs the issue at debug level.
198192 *
199193 * @param transformerFactory to update
194+ * @param flag that indicates whether to do the update and the flag can be set to false if an update fails
200195 * @param name of the attribute to set
201196 * @param value to set on the attribute
202- * @return whether the attribute was successfully set
203197 */
204- static boolean bestEffortSetAttribute (TransformerFactory transformerFactory ,
205- String name , Object value ) {
206- try {
207- transformerFactory .setAttribute (name , value );
208- return true ;
209- } catch (Throwable t ) {
210- LOG .debug ("Issue setting TransformerFactory attribute {}: {}" , name , t .toString ());
198+ static void bestEffortSetAttribute (TransformerFactory transformerFactory , AtomicBoolean flag ,
199+ String name , Object value ) {
200+ if (flag .get ()) {
201+ try {
202+ transformerFactory .setAttribute (name , value );
203+ } catch (Throwable t ) {
204+ flag .set (false );
205+ LOG .debug ("Issue setting TransformerFactory attribute {}: {}" , name , t .toString ());
206+ }
211207 }
212- return false ;
213208 }
214209}
0 commit comments