--- old/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContext.java 2017-03-10 23:56:54.394298592 +0300
+++ new/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContext.java 2017-03-10 23:56:54.290299038 +0300
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2017, 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
@@ -27,11 +27,11 @@
import org.w3c.dom.Node;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.Collections;
import java.util.Map;
import java.util.Properties;
-import java.io.IOException;
-import java.io.InputStream;
/**
* The {@code JAXBContext} class provides the client's entry point to the
@@ -332,7 +332,14 @@
* the context class loader of the current thread.
*
* @throws JAXBException if an error was encountered while creating the
- * {@code JAXBContext}. See {@link JAXBContext#newInstance(String, ClassLoader, Map)} for details.
+ * {@code JAXBContext} such as
+ *
+ * - failure to locate either ObjectFactory.class or jaxb.index in the packages
+ * - an ambiguity among global elements contained in the contextPath
+ * - failure to locate a value for the context factory provider property
+ * - mixing schema derived packages from different providers on the same contextPath
+ * - packages are not open to {@code java.xml.bind} module
+ *
*/
public static JAXBContext newInstance( String contextPath )
throws JAXBException {
@@ -414,16 +421,26 @@
*
* The steps involved in discovering the JAXB implementation is discussed in the class javadoc.
*
- * @param contextPath list of java package names that contain schema
- * derived class and/or java to schema (JAXB-annotated)
- * mapped classes
+ * @param contextPath
+ * List of java package names that contain schema
+ * derived class and/or java to schema (JAXB-annotated)
+ * mapped classes.
+ * Packages in {@code contextPath} that are in named modules must be
+ * {@linkplain java.lang.reflect.Module#isOpen open} to the {@code java.xml.bind} module.
* @param classLoader
* This class loader will be used to locate the implementation
* classes.
*
* @return a new instance of a {@code JAXBContext}
* @throws JAXBException if an error was encountered while creating the
- * {@code JAXBContext}. See {@link JAXBContext#newInstance(String, ClassLoader, Map)} for details.
+ * {@code JAXBContext} such as
+ *
+ * - failure to locate either ObjectFactory.class or jaxb.index in the packages
+ * - an ambiguity among global elements contained in the contextPath
+ * - failure to locate a value for the context factory provider property
+ * - mixing schema derived packages from different providers on the same contextPath
+ * - packages are not open to {@code java.xml.bind} module
+ *
*/
public static JAXBContext newInstance( String contextPath, ClassLoader classLoader ) throws JAXBException {
@@ -442,7 +459,12 @@
* The interpretation of properties is up to implementations. Implementations must
* throw {@code JAXBException} if it finds properties that it doesn't understand.
*
- * @param contextPath list of java package names that contain schema derived classes
+ * @param contextPath
+ * List of java package names that contain schema
+ * derived class and/or java to schema (JAXB-annotated)
+ * mapped classes.
+ * Packages in {@code contextPath} that are in named modules must be
+ * {@linkplain java.lang.reflect.Module#isOpen open} to the {@code java.xml.bind} module.
* @param classLoader
* This class loader will be used to locate the implementation classes.
* @param properties
@@ -457,6 +479,7 @@
* an ambiguity among global elements contained in the contextPath
* failure to locate a value for the context factory provider property
* mixing schema derived packages from different providers on the same contextPath
+ * packages are not open to {@code java.xml.bind} module
*
* @since 1.6, JAXB 2.0
*/
@@ -588,15 +611,27 @@
* The steps involved in discovering the JAXB implementation is discussed in the class javadoc.
*
* @param classesToBeBound
- * list of java classes to be recognized by the new {@link JAXBContext}.
+ * List of java classes to be recognized by the new {@link JAXBContext}.
+ * Classes in {@code classesToBeBound} that are in named modules must be in a package
+ * that is {@linkplain java.lang.reflect.Module#isOpen open} to the {@code java.xml.bind} module.
* Can be empty, in which case a {@link JAXBContext} that only knows about
* spec-defined classes will be returned.
*
* @return
* A new instance of a {@code JAXBContext}.
*
- * @throws JAXBException if an error was encountered while creating the
- * {@code JAXBContext}. See {@link JAXBContext#newInstance(Class[], Map)} for details.
+ * @throws JAXBException
+ * if an error was encountered while creating the
+ * {@code JAXBContext}, such as (but not limited to):
+ *
+ * - No JAXB implementation was discovered
+ *
- Classes use JAXB annotations incorrectly
+ *
- Classes have colliding annotations (i.e., two classes with the same type name)
+ *
- The JAXB implementation was unable to locate
+ * provider-specific out-of-band information (such as additional
+ * files generated at the development time.)
+ *
- {@code classesToBeBound} are not open to {@code java.xml.bind} module
+ *
*
* @throws IllegalArgumentException
* if the parameter contains {@code null} (i.e., {@code newInstance(null);})
@@ -621,7 +656,9 @@
* throw {@code JAXBException} if it finds properties that it doesn't understand.
*
* @param classesToBeBound
- * list of java classes to be recognized by the new {@link JAXBContext}.
+ * List of java classes to be recognized by the new {@link JAXBContext}.
+ * Classes in {@code classesToBeBound} that are in named modules must be in a package
+ * that is {@linkplain java.lang.reflect.Module#isOpen open} to the {@code java.xml.bind} module.
* Can be empty, in which case a {@link JAXBContext} that only knows about
* spec-defined classes will be returned.
* @param properties
@@ -641,6 +678,7 @@
* The JAXB implementation was unable to locate
* provider-specific out-of-band information (such as additional
* files generated at the development time.)
+ * {@code classesToBeBound} are not open to {@code java.xml.bind} module
*
*
* @throws IllegalArgumentException