1.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/xmlschema/bindinfo/BindInfo.java Thu Apr 04 19:05:24 2013 -0700 1.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/xmlschema/bindinfo/BindInfo.java Tue Apr 09 14:51:13 2013 +0100 1.3 @@ -35,6 +35,7 @@ 1.4 1.5 import javax.xml.bind.JAXBContext; 1.6 import javax.xml.bind.JAXBException; 1.7 +import javax.xml.bind.Unmarshaller; 1.8 import javax.xml.bind.annotation.XmlAnyElement; 1.9 import javax.xml.bind.annotation.XmlElement; 1.10 import javax.xml.bind.annotation.XmlMixed; 1.11 @@ -46,6 +47,7 @@ 1.12 import javax.xml.transform.stream.StreamResult; 1.13 1.14 import com.sun.codemodel.internal.JDocComment; 1.15 +import com.sun.xml.internal.bind.v2.WellKnownNamespace; 1.16 import com.sun.tools.internal.xjc.SchemaCache; 1.17 import com.sun.tools.internal.xjc.model.CCustomizations; 1.18 import com.sun.tools.internal.xjc.model.CPluginCustomization; 1.19 @@ -54,8 +56,6 @@ 1.20 import com.sun.tools.internal.xjc.reader.xmlschema.BGMBuilder; 1.21 import com.sun.xml.internal.bind.annotation.XmlLocation; 1.22 import com.sun.xml.internal.bind.marshaller.MinimumEscapeHandler; 1.23 -import com.sun.xml.internal.bind.v2.WellKnownNamespace; 1.24 -import com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl; 1.25 import com.sun.xml.internal.xsom.XSComponent; 1.26 1.27 import org.w3c.dom.Element; 1.28 @@ -69,7 +69,7 @@ 1.29 * @author 1.30 * Kohsuke Kawaguchi (kohsuke,kawaguchi@sun.com) 1.31 */ 1.32 -@XmlRootElement(namespace=WellKnownNamespace.XML_SCHEMA,name="annotation") 1.33 +@XmlRootElement(namespace= WellKnownNamespace.XML_SCHEMA,name="annotation") 1.34 @XmlType(namespace=WellKnownNamespace.XML_SCHEMA,name="foobar") 1.35 public final class BindInfo implements Iterable<BIDeclaration> { 1.36 1.37 @@ -311,33 +311,42 @@ 1.38 /** 1.39 * Lazily prepared {@link JAXBContext}. 1.40 */ 1.41 - private static JAXBContextImpl customizationContext; 1.42 + private static volatile JAXBContext customizationContext; 1.43 1.44 - public static JAXBContextImpl getJAXBContext() { 1.45 - synchronized(AnnotationParserFactoryImpl.class) { 1.46 - try { 1.47 - if(customizationContext==null) 1.48 - customizationContext = new JAXBContextImpl.JAXBContextBuilder().setClasses( 1.49 - new Class[] { 1.50 - BindInfo.class, // for xs:annotation 1.51 - BIClass.class, 1.52 - BIConversion.User.class, 1.53 - BIConversion.UserAdapter.class, 1.54 - BIDom.class, 1.55 - BIFactoryMethod.class, 1.56 - BIInlineBinaryData.class, 1.57 - BIXDom.class, 1.58 - BIXSubstitutable.class, 1.59 - BIEnum.class, 1.60 - BIEnumMember.class, 1.61 - BIGlobalBinding.class, 1.62 - BIProperty.class, 1.63 - BISchemaBinding.class 1.64 - }).build(); 1.65 - return customizationContext; 1.66 - } catch (JAXBException e) { 1.67 - throw new AssertionError(e); 1.68 + public static JAXBContext getCustomizationContext() { 1.69 + try { 1.70 + if (customizationContext == null) { 1.71 + synchronized (BindInfo.class) { 1.72 + if (customizationContext == null) { 1.73 + customizationContext = JAXBContext.newInstance( 1.74 + BindInfo.class, // for xs:annotation 1.75 + BIClass.class, 1.76 + BIConversion.User.class, 1.77 + BIConversion.UserAdapter.class, 1.78 + BIDom.class, 1.79 + BIFactoryMethod.class, 1.80 + BIInlineBinaryData.class, 1.81 + BIXDom.class, 1.82 + BIXSubstitutable.class, 1.83 + BIEnum.class, 1.84 + BIEnumMember.class, 1.85 + BIGlobalBinding.class, 1.86 + BIProperty.class, 1.87 + BISchemaBinding.class); 1.88 + } 1.89 + } 1.90 } 1.91 + return customizationContext; 1.92 + } catch (JAXBException e) { 1.93 + throw new AssertionError(e); 1.94 + } 1.95 + } 1.96 + 1.97 + public static Unmarshaller getCustomizationUnmarshaller() { 1.98 + try { 1.99 + return getCustomizationContext().createUnmarshaller(); 1.100 + } catch (JAXBException e) { 1.101 + throw new AssertionError(e); 1.102 } 1.103 } 1.104