--- old/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/reader/relaxng/DatatypeLib.java 2015-10-22 23:50:55.000000000 +0200 +++ new/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/reader/relaxng/DatatypeLib.java 2015-10-22 23:50:55.000000000 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,6 +25,7 @@ package com.sun.tools.internal.xjc.reader.relaxng; +import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -44,11 +45,11 @@ * Datatype library's namespace URI. */ public final String nsUri; + private final Map types; - private final Map types = new HashMap(); - - public DatatypeLib(String nsUri) { + public DatatypeLib(String nsUri, Map types) { this.nsUri = nsUri; + this.types = Collections.unmodifiableMap(types); } /** @@ -61,16 +62,21 @@ /** * Datatype library for the built-in type. */ - public static final DatatypeLib BUILTIN = new DatatypeLib(""); + public static final DatatypeLib BUILTIN; /** * Datatype library for XML Schema datatypes. */ - public static final DatatypeLib XMLSCHEMA = new DatatypeLib(WellKnownNamespaces.XML_SCHEMA_DATATYPES); + public static final DatatypeLib XMLSCHEMA = + new DatatypeLib( + WellKnownNamespaces.XML_SCHEMA_DATATYPES, + SimpleTypeBuilder.builtinConversions); static { - BUILTIN.types.put("token",CBuiltinLeafInfo.TOKEN); - BUILTIN.types.put("string",CBuiltinLeafInfo.STRING); - XMLSCHEMA.types.putAll(SimpleTypeBuilder.builtinConversions); + Map builtinTypes = new HashMap<>(); + builtinTypes.put("token", CBuiltinLeafInfo.TOKEN); + builtinTypes.put("string", CBuiltinLeafInfo.STRING); + + BUILTIN = new DatatypeLib("", builtinTypes); } }