1.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeBuiltinLeafInfoImpl.java Thu Aug 08 10:10:38 2013 -0700 1.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeBuiltinLeafInfoImpl.java Fri Aug 23 09:57:21 2013 +0100 1.3 @@ -91,6 +91,9 @@ 1.4 import com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext; 1.5 import com.sun.xml.internal.bind.v2.util.ByteArrayOutputStreamEx; 1.6 import com.sun.xml.internal.bind.v2.util.DataSourceSource; 1.7 +import java.util.logging.Logger; 1.8 +import com.sun.xml.internal.bind.Util; 1.9 +import java.util.logging.Level; 1.10 1.11 import org.xml.sax.SAXException; 1.12 1.13 @@ -105,6 +108,8 @@ 1.14 public abstract class RuntimeBuiltinLeafInfoImpl<T> extends BuiltinLeafInfoImpl<Type,Class> 1.15 implements RuntimeBuiltinLeafInfo, Transducer<T> { 1.16 1.17 + private static final Logger logger = Util.getClassLogger(); 1.18 + 1.19 private RuntimeBuiltinLeafInfoImpl(Class type, QName... typeNames) { 1.20 super(type, typeNames); 1.21 LEAVES.put(type,this); 1.22 @@ -196,6 +201,7 @@ 1.23 public static final List<RuntimeBuiltinLeafInfoImpl<?>> builtinBeanInfos; 1.24 1.25 public static final String MAP_ANYURI_TO_URI = "mapAnyUriToUri"; 1.26 + public static final String USE_OLD_GMONTH_MAPPING = "jaxb.ri.useOldGmonthMapping"; 1.27 1.28 static { 1.29 1.30 @@ -960,7 +966,14 @@ 1.31 m.put(DatatypeConstants.DATETIME, "%Y-%M-%DT%h:%m:%s"+ "%z"); 1.32 m.put(DatatypeConstants.DATE, "%Y-%M-%D" +"%z"); 1.33 m.put(DatatypeConstants.TIME, "%h:%m:%s"+ "%z"); 1.34 - m.put(DatatypeConstants.GMONTH, "--%M--%z"); 1.35 + if (System.getProperty(USE_OLD_GMONTH_MAPPING) == null) { 1.36 + m.put(DatatypeConstants.GMONTH, "--%M%z"); // E2-12 Error. http://www.w3.org/2001/05/xmlschema-errata#e2-12 1.37 + } else { // backw. compatibility 1.38 + if (logger.isLoggable(Level.FINE)) { 1.39 + logger.log(Level.FINE, "Old GMonth mapping used."); 1.40 + } 1.41 + m.put(DatatypeConstants.GMONTH, "--%M--%z"); 1.42 + } 1.43 m.put(DatatypeConstants.GDAY, "---%D" + "%z"); 1.44 m.put(DatatypeConstants.GYEAR, "%Y" + "%z"); 1.45 m.put(DatatypeConstants.GYEARMONTH, "%Y-%M" + "%z");