1.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/xsom/util/DomAnnotationParserFactory.java Fri Feb 14 10:53:55 2014 +0100 1.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/xsom/util/DomAnnotationParserFactory.java Fri Feb 14 11:13:45 2014 +0100 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -63,10 +63,15 @@ 1.11 } 1.12 1.13 public AnnotationParser create(boolean disableSecureProcessing) { 1.14 - return new AnnotationParserImpl(); 1.15 + return new AnnotationParserImpl(disableSecureProcessing); 1.16 } 1.17 1.18 - private static final SAXTransformerFactory stf = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); 1.19 + private static final ContextClassloaderLocal<SAXTransformerFactory> stf = new ContextClassloaderLocal<SAXTransformerFactory>() { 1.20 + @Override 1.21 + protected SAXTransformerFactory initialValue() throws Exception { 1.22 + return (SAXTransformerFactory) SAXTransformerFactory.newInstance(); 1.23 + } 1.24 + }; 1.25 1.26 private static class AnnotationParserImpl extends AnnotationParser { 1.27 1.28 @@ -82,8 +87,9 @@ 1.29 1.30 AnnotationParserImpl(boolean disableSecureProcessing) { 1.31 try { 1.32 - transformer = stf.newTransformerHandler(); 1.33 - stf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, disableSecureProcessing); 1.34 + SAXTransformerFactory factory = stf.get(); 1.35 + factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, disableSecureProcessing); 1.36 + transformer = factory.newTransformerHandler(); 1.37 } catch (TransformerConfigurationException e) { 1.38 throw new Error(e); // impossible 1.39 }