src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/JAXBContextImpl.java

changeset 515
6cd506508147
parent 450
b0c2840e2513
child 637
9c07ef4934dd
equal deleted inserted replaced
514:29a761eaff0d 515:6cd506508147
127 * All the bridge classes. 127 * All the bridge classes.
128 */ 128 */
129 private final Map<TypeReference,Bridge> bridges = new LinkedHashMap<TypeReference,Bridge>(); 129 private final Map<TypeReference,Bridge> bridges = new LinkedHashMap<TypeReference,Bridge>();
130 130
131 /** 131 /**
132 * Shared instance of {@link TransformerFactory}.
133 * Lock before use, because a {@link TransformerFactory} is not thread-safe
134 * whereas {@link JAXBContextImpl} is.
135 * Lazily created.
136 */
137 private volatile static SAXTransformerFactory tf;
138
139 /**
140 * Shared instance of {@link DocumentBuilder}. 132 * Shared instance of {@link DocumentBuilder}.
141 * Lock before use. Lazily created. 133 * Lock before use. Lazily created.
142 */ 134 */
143 private static DocumentBuilder db; 135 private static DocumentBuilder db;
144 136
703 /** 695 /**
704 * Creates a new identity transformer. 696 * Creates a new identity transformer.
705 */ 697 */
706 static Transformer createTransformer(boolean disableSecureProcessing) { 698 static Transformer createTransformer(boolean disableSecureProcessing) {
707 try { 699 try {
708 if (tf==null) { 700 SAXTransformerFactory tf = (SAXTransformerFactory)XmlFactory.createTransformerFactory(disableSecureProcessing);
709 synchronized(JAXBContextImpl.class) {
710 if (tf==null) {
711 tf = (SAXTransformerFactory)XmlFactory.createTransformerFactory(disableSecureProcessing);
712 }
713 }
714 }
715 return tf.newTransformer(); 701 return tf.newTransformer();
716 } catch (TransformerConfigurationException e) { 702 } catch (TransformerConfigurationException e) {
717 throw new Error(e); // impossible 703 throw new Error(e); // impossible
718 } 704 }
719 } 705 }
721 /** 707 /**
722 * Creates a new identity transformer. 708 * Creates a new identity transformer.
723 */ 709 */
724 public static TransformerHandler createTransformerHandler(boolean disableSecureProcessing) { 710 public static TransformerHandler createTransformerHandler(boolean disableSecureProcessing) {
725 try { 711 try {
726 if (tf==null) { 712 SAXTransformerFactory tf = (SAXTransformerFactory)XmlFactory.createTransformerFactory(disableSecureProcessing);
727 synchronized(JAXBContextImpl.class) {
728 if (tf==null) {
729 tf = (SAXTransformerFactory)XmlFactory.createTransformerFactory(disableSecureProcessing);
730 }
731 }
732 }
733 return tf.newTransformerHandler(); 713 return tf.newTransformerHandler();
734 } catch (TransformerConfigurationException e) { 714 } catch (TransformerConfigurationException e) {
735 throw new Error(e); // impossible 715 throw new Error(e); // impossible
736 } 716 }
737 } 717 }

mercurial