diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e689ab6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/glassfish-jaxb-2.2.5.tar.gz +/jaxb-ri-2.2.11.src.zip +/2.3.3-RI.tar.gz diff --git a/0001-Avoid-runtime-dependency-on-istack-commons-from-main.patch b/0001-Avoid-runtime-dependency-on-istack-commons-from-main.patch new file mode 100644 index 0000000..3dc8791 --- /dev/null +++ b/0001-Avoid-runtime-dependency-on-istack-commons-from-main.patch @@ -0,0 +1,1615 @@ +From d7988b7d7846fb9e6676c700ab21513903f68303 Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Tue, 11 Aug 2020 11:46:45 +0100 +Subject: [PATCH] Avoid runtime dependency on istack-commons from main impl jar + +--- + jaxb-ri/bundles/runtime/pom.xml | 9 +- + .../runtime/src/main/java/module-info.java | 3 - + jaxb-ri/runtime/impl/pom.xml | 4 - + .../java/com/sun/xml/bind/api/Bridge.java | 54 +++++----- + .../com/sun/xml/bind/api/ClassResolver.java | 4 +- + .../com/sun/xml/bind/api/JAXBRIContext.java | 52 +++++---- + .../sun/xml/bind/marshaller/SAX2DOMEx.java | 3 +- + .../com/sun/xml/bind/v2/ContextFactory.java | 5 +- + .../v2/model/annotation/AnnotationReader.java | 4 - + .../xml/bind/v2/model/core/PropertyInfo.java | 3 +- + .../v2/model/impl/ByteArrayDataSource.java | 65 +++++++++++ + .../xml/bind/v2/model/impl/ClassInfoImpl.java | 7 +- + .../bind/v2/model/impl/ElementInfoImpl.java | 5 +- + .../model/impl/ElementPropertyInfoImpl.java | 3 +- + .../impl/RuntimeBuiltinLeafInfoImpl.java | 1 - + .../v2/model/impl/RuntimeClassInfoImpl.java | 3 +- + .../v2/model/impl/RuntimeModelBuilder.java | 3 +- + .../xml/bind/v2/runtime/BridgeAdapter.java | 11 +- + .../sun/xml/bind/v2/runtime/BridgeImpl.java | 9 +- + .../bind/v2/runtime/ClassBeanInfoImpl.java | 5 +- + .../v2/runtime/ContentHandlerAdaptor.java | 12 +-- + .../xml/bind/v2/runtime/FilterTransducer.java | 3 +- + .../v2/runtime/InlineBinaryTransducer.java | 3 +- + .../xml/bind/v2/runtime/JAXBContextImpl.java | 16 ++- + .../sun/xml/bind/v2/runtime/JaxBeanInfo.java | 3 +- + .../bind/v2/runtime/NamespaceContext2.java | 3 +- + .../com/sun/xml/bind/v2/runtime/Pool.java | 101 ++++++++++++++++++ + .../sun/xml/bind/v2/runtime/Transducer.java | 7 +- + .../v2/runtime/ValueListBeanInfoImpl.java | 3 +- + .../xml/bind/v2/runtime/XMLSerializer.java | 11 +- + .../bind/v2/runtime/output/C14nXmlOutput.java | 3 +- + .../runtime/output/NamespaceContextImpl.java | 6 +- + .../xml/bind/v2/runtime/reflect/Accessor.java | 3 +- + .../xml/bind/v2/runtime/reflect/Lister.java | 3 +- + .../runtime/reflect/TransducedAccessor.java | 9 +- + .../v2/runtime/unmarshaller/Base64Data.java | 8 +- + .../unmarshaller/UnmarshallingContext.java | 11 +- + .../runtime/unmarshaller/XsiTypeLoader.java | 3 +- + .../bind/v2/schemagen/XmlSchemaGenerator.java | 6 +- + .../impl/src/main/java/module-info.java | 1 - + jaxb-ri/xjc/pom.xml | 4 + + 41 files changed, 290 insertions(+), 182 deletions(-) + create mode 100644 jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ByteArrayDataSource.java + create mode 100644 jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/Pool.java + +diff --git a/jaxb-ri/bundles/runtime/pom.xml b/jaxb-ri/bundles/runtime/pom.xml +index 9277e9b..5d481ed 100644 +--- a/jaxb-ri/bundles/runtime/pom.xml ++++ b/jaxb-ri/bundles/runtime/pom.xml +@@ -67,11 +67,6 @@ + txw2 + provided + +- +- com.sun.istack +- istack-commons-runtime +- provided +- + + + junit +@@ -129,7 +124,7 @@ + unpack-dependencies + + +- org.glassfish.jaxb,com.sun.istack ++ org.glassfish.jaxb + provided + sources + true +@@ -144,7 +139,7 @@ + unpack-dependencies + + +- org.glassfish.jaxb,com.sun.istack ++ org.glassfish.jaxb + provided + sources + true +diff --git a/jaxb-ri/bundles/runtime/src/main/java/module-info.java b/jaxb-ri/bundles/runtime/src/main/java/module-info.java +index 252fefe..2fa8190 100644 +--- a/jaxb-ri/bundles/runtime/src/main/java/module-info.java ++++ b/jaxb-ri/bundles/runtime/src/main/java/module-info.java +@@ -20,9 +20,6 @@ module com.sun.xml.bind { + requires static com.sun.xml.fastinfoset; + requires static org.jvnet.staxex; + +- exports com.sun.istack; +- exports com.sun.istack.localization; +- exports com.sun.istack.logging; + exports com.sun.xml.bind; + exports com.sun.xml.bind.annotation; + exports com.sun.xml.bind.api; +diff --git a/jaxb-ri/runtime/impl/pom.xml b/jaxb-ri/runtime/impl/pom.xml +index 67390ff..3b38efd 100644 +--- a/jaxb-ri/runtime/impl/pom.xml ++++ b/jaxb-ri/runtime/impl/pom.xml +@@ -56,10 +56,6 @@ + ${project.groupId} + txw2 + +- +- com.sun.istack +- istack-commons-runtime +- + + + org.jvnet.staxex +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/api/Bridge.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/api/Bridge.java +index fb20366..5e7b035 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/api/Bridge.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/api/Bridge.java +@@ -24,8 +24,6 @@ import javax.xml.stream.XMLStreamWriter; + import javax.xml.transform.Result; + import javax.xml.transform.Source; + +-import com.sun.istack.NotNull; +-import com.sun.istack.Nullable; + import com.sun.xml.bind.v2.runtime.BridgeContextImpl; + import com.sun.xml.bind.v2.runtime.JAXBContextImpl; + +@@ -61,7 +59,7 @@ public abstract class Bridge { + * + * @since 2.1 + */ +- public @NotNull JAXBRIContext getContext() { ++ public JAXBRIContext getContext() { + return context; + } + +@@ -83,11 +81,11 @@ public abstract class Bridge { + context.marshallerPool.recycle(m); + } + +- public final void marshal(@NotNull BridgeContext context,T object,XMLStreamWriter output) throws JAXBException { ++ public final void marshal(BridgeContext context,T object,XMLStreamWriter output) throws JAXBException { + marshal( ((BridgeContextImpl)context).marshaller, object, output ); + } + +- public abstract void marshal(@NotNull Marshaller m,T object,XMLStreamWriter output) throws JAXBException; ++ public abstract void marshal(Marshaller m,T object,XMLStreamWriter output) throws JAXBException; + + + /** +@@ -117,11 +115,11 @@ public abstract class Bridge { + context.marshallerPool.recycle(m); + } + +- public final void marshal(@NotNull BridgeContext context,T object,OutputStream output, NamespaceContext nsContext) throws JAXBException { ++ public final void marshal(BridgeContext context,T object,OutputStream output, NamespaceContext nsContext) throws JAXBException { + marshal( ((BridgeContextImpl)context).marshaller, object, output, nsContext ); + } + +- public abstract void marshal(@NotNull Marshaller m,T object,OutputStream output, NamespaceContext nsContext) throws JAXBException; ++ public abstract void marshal(Marshaller m,T object,OutputStream output, NamespaceContext nsContext) throws JAXBException; + + + public final void marshal(T object,Node output) throws JAXBException { +@@ -130,11 +128,11 @@ public abstract class Bridge { + context.marshallerPool.recycle(m); + } + +- public final void marshal(@NotNull BridgeContext context,T object,Node output) throws JAXBException { ++ public final void marshal(BridgeContext context,T object,Node output) throws JAXBException { + marshal( ((BridgeContextImpl)context).marshaller, object, output ); + } + +- public abstract void marshal(@NotNull Marshaller m,T object,Node output) throws JAXBException; ++ public abstract void marshal(Marshaller m,T object,Node output) throws JAXBException; + + + /** +@@ -153,10 +151,10 @@ public abstract class Bridge { + m.setAttachmentMarshaller(null); + context.marshallerPool.recycle(m); + } +- public final void marshal(@NotNull BridgeContext context,T object, ContentHandler contentHandler) throws JAXBException { ++ public final void marshal(BridgeContext context,T object, ContentHandler contentHandler) throws JAXBException { + marshal( ((BridgeContextImpl)context).marshaller, object, contentHandler ); + } +- public abstract void marshal(@NotNull Marshaller m,T object, ContentHandler contentHandler) throws JAXBException; ++ public abstract void marshal(Marshaller m,T object, ContentHandler contentHandler) throws JAXBException; + + /** + * @since 2.0 EA4 +@@ -166,10 +164,10 @@ public abstract class Bridge { + marshal(m,object,result); + context.marshallerPool.recycle(m); + } +- public final void marshal(@NotNull BridgeContext context,T object, Result result) throws JAXBException { ++ public final void marshal(BridgeContext context,T object, Result result) throws JAXBException { + marshal( ((BridgeContextImpl)context).marshaller, object, result ); + } +- public abstract void marshal(@NotNull Marshaller m,T object, Result result) throws JAXBException; ++ public abstract void marshal(Marshaller m,T object, Result result) throws JAXBException; + + + +@@ -195,21 +193,21 @@ public abstract class Bridge { + * + * @since 2.0 EA1 + */ +- public final @NotNull T unmarshal(@NotNull XMLStreamReader in) throws JAXBException { ++ public final T unmarshal(XMLStreamReader in) throws JAXBException { + return unmarshal(in,null); + } + /** + * @since 2.0.3 + */ +- public final @NotNull T unmarshal(@NotNull XMLStreamReader in, @Nullable AttachmentUnmarshaller au) throws JAXBException { ++ public final T unmarshal(XMLStreamReader in, AttachmentUnmarshaller au) throws JAXBException { + Unmarshaller u = context.unmarshallerPool.take(); + u.setAttachmentUnmarshaller(au); + return exit(unmarshal(u,in),u); + } +- public final @NotNull T unmarshal(@NotNull BridgeContext context, @NotNull XMLStreamReader in) throws JAXBException { ++ public final T unmarshal(BridgeContext context, XMLStreamReader in) throws JAXBException { + return unmarshal( ((BridgeContextImpl)context).unmarshaller, in ); + } +- public abstract @NotNull T unmarshal(@NotNull Unmarshaller u, @NotNull XMLStreamReader in) throws JAXBException; ++ public abstract T unmarshal(Unmarshaller u, XMLStreamReader in) throws JAXBException; + + /** + * Unmarshals the specified type object. +@@ -227,21 +225,21 @@ public abstract class Bridge { + * + * @since 2.0 EA1 + */ +- public final @NotNull T unmarshal(@NotNull Source in) throws JAXBException { ++ public final T unmarshal(Source in) throws JAXBException { + return unmarshal(in,null); + } + /** + * @since 2.0.3 + */ +- public final @NotNull T unmarshal(@NotNull Source in, @Nullable AttachmentUnmarshaller au) throws JAXBException { ++ public final T unmarshal(Source in, AttachmentUnmarshaller au) throws JAXBException { + Unmarshaller u = context.unmarshallerPool.take(); + u.setAttachmentUnmarshaller(au); + return exit(unmarshal(u,in),u); + } +- public final @NotNull T unmarshal(@NotNull BridgeContext context, @NotNull Source in) throws JAXBException { ++ public final T unmarshal(BridgeContext context, Source in) throws JAXBException { + return unmarshal( ((BridgeContextImpl)context).unmarshaller, in ); + } +- public abstract @NotNull T unmarshal(@NotNull Unmarshaller u, @NotNull Source in) throws JAXBException; ++ public abstract T unmarshal(Unmarshaller u, Source in) throws JAXBException; + + /** + * Unmarshals the specified type object. +@@ -259,14 +257,14 @@ public abstract class Bridge { + * + * @since 2.0 EA1 + */ +- public final @NotNull T unmarshal(@NotNull InputStream in) throws JAXBException { ++ public final T unmarshal(InputStream in) throws JAXBException { + Unmarshaller u = context.unmarshallerPool.take(); + return exit(unmarshal(u,in),u); + } +- public final @NotNull T unmarshal(@NotNull BridgeContext context, @NotNull InputStream in) throws JAXBException { ++ public final T unmarshal(BridgeContext context, InputStream in) throws JAXBException { + return unmarshal( ((BridgeContextImpl)context).unmarshaller, in ); + } +- public abstract @NotNull T unmarshal(@NotNull Unmarshaller u, @NotNull InputStream in) throws JAXBException; ++ public abstract T unmarshal(Unmarshaller u, InputStream in) throws JAXBException; + + /** + * Unmarshals the specified type object. +@@ -282,21 +280,21 @@ public abstract class Bridge { + * + * @since 2.0 FCS + */ +- public final @NotNull T unmarshal(@NotNull Node n) throws JAXBException { ++ public final T unmarshal(Node n) throws JAXBException { + return unmarshal(n,null); + } + /** + * @since 2.0.3 + */ +- public final @NotNull T unmarshal(@NotNull Node n, @Nullable AttachmentUnmarshaller au) throws JAXBException { ++ public final T unmarshal(Node n, AttachmentUnmarshaller au) throws JAXBException { + Unmarshaller u = context.unmarshallerPool.take(); + u.setAttachmentUnmarshaller(au); + return exit(unmarshal(u,n),u); + } +- public final @NotNull T unmarshal(@NotNull BridgeContext context, @NotNull Node n) throws JAXBException { ++ public final T unmarshal(BridgeContext context, Node n) throws JAXBException { + return unmarshal( ((BridgeContextImpl)context).unmarshaller, n ); + } +- public abstract @NotNull T unmarshal(@NotNull Unmarshaller context, @NotNull Node n) throws JAXBException; ++ public abstract T unmarshal(Unmarshaller context, Node n) throws JAXBException; + + /** + * Gets the {@link TypeReference} from which this bridge was created. +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/api/ClassResolver.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/api/ClassResolver.java +index b184668..612f5a2 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/api/ClassResolver.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/api/ClassResolver.java +@@ -15,8 +15,6 @@ import javax.xml.bind.Unmarshaller; + import javax.xml.bind.ValidationEventHandler; + import javax.xml.bind.annotation.XmlAnyElement; + +-import com.sun.istack.NotNull; +-import com.sun.istack.Nullable; + + /** + * Dynamically locates classes to represent elements discovered during the unmarshalling. +@@ -85,5 +83,5 @@ public abstract class ClassResolver { + * reproted to {@link ValidationEventHandler} (just like any other error + * during the unmarshalling.) + */ +- public abstract @Nullable Class resolveElementName(@NotNull String nsUri, @NotNull String localName) throws Exception; ++ public abstract Class resolveElementName(String nsUri, String localName) throws Exception; + } +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/api/JAXBRIContext.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/api/JAXBRIContext.java +index c8611d9..1a28dc6 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/api/JAXBRIContext.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/api/JAXBRIContext.java +@@ -25,8 +25,6 @@ import javax.xml.bind.annotation.XmlAttachmentRef; + import javax.xml.namespace.QName; + import javax.xml.transform.Result; + +-import com.sun.istack.NotNull; +-import com.sun.istack.Nullable; + import com.sun.xml.bind.api.impl.NameConverter; + import com.sun.xml.bind.v2.ContextFactory; + import com.sun.xml.bind.v2.model.annotation.RuntimeAnnotationReader; +@@ -73,11 +71,11 @@ public abstract class JAXBRIContext extends JAXBContext { + * Can be null. + * @since JAXB 2.1 EA2 + */ +- public static JAXBRIContext newInstance(@NotNull Class[] classes, +- @Nullable Collection typeRefs, +- @Nullable Map subclassReplacements, +- @Nullable String defaultNamespaceRemap, boolean c14nSupport, +- @Nullable RuntimeAnnotationReader ar) throws JAXBException { ++ public static JAXBRIContext newInstance(Class[] classes, ++ Collection typeRefs, ++ Map subclassReplacements, ++ String defaultNamespaceRemap, boolean c14nSupport, ++ RuntimeAnnotationReader ar) throws JAXBException { + return newInstance(classes, typeRefs, subclassReplacements, + defaultNamespaceRemap, c14nSupport, ar, false, false, false, false); + } +@@ -115,11 +113,11 @@ public abstract class JAXBRIContext extends JAXBContext { + * @param supressAccessorWarnings + * See {@link #SUPRESS_ACCESSOR_WARNINGS} for the meaning of this parameter. + */ +- public static JAXBRIContext newInstance(@NotNull Class[] classes, +- @Nullable Collection typeRefs, +- @Nullable Map subclassReplacements, +- @Nullable String defaultNamespaceRemap, boolean c14nSupport, +- @Nullable RuntimeAnnotationReader ar, ++ public static JAXBRIContext newInstance(Class[] classes, ++ Collection typeRefs, ++ Map subclassReplacements, ++ String defaultNamespaceRemap, boolean c14nSupport, ++ RuntimeAnnotationReader ar, + boolean xmlAccessorFactorySupport, + boolean allNillable, + boolean retainPropertyInfo, +@@ -141,9 +139,9 @@ public abstract class JAXBRIContext extends JAXBContext { + * @deprecated + * Compatibility with older versions. + */ +- public static JAXBRIContext newInstance(@NotNull Class[] classes, +- @Nullable Collection typeRefs, +- @Nullable String defaultNamespaceRemap, boolean c14nSupport ) throws JAXBException { ++ public static JAXBRIContext newInstance(Class[] classes, ++ Collection typeRefs, ++ String defaultNamespaceRemap, boolean c14nSupport ) throws JAXBException { + return newInstance(classes,typeRefs, Collections.emptyMap(), + defaultNamespaceRemap,c14nSupport,null); + } +@@ -167,7 +165,7 @@ public abstract class JAXBRIContext extends JAXBContext { + * + * @since 2.0 EA1 + */ +- public abstract @Nullable QName getElementName(@NotNull Object o) throws JAXBException; ++ public abstract QName getElementName(Object o) throws JAXBException; + + /** + * Allows to retrieve the element name based on Class. +@@ -176,7 +174,7 @@ public abstract class JAXBRIContext extends JAXBContext { + * @throws javax.xml.bind.JAXBException + * @since 2.1.10 + */ +- public abstract @Nullable QName getElementName(@NotNull Class o) throws JAXBException; ++ public abstract QName getElementName(Class o) throws JAXBException; + + /** + * Creates a mini-marshaller/unmarshaller that can process a {@link TypeReference}. +@@ -186,7 +184,7 @@ public abstract class JAXBRIContext extends JAXBContext { + * + * @since 2.0 EA1 + */ +- public abstract Bridge createBridge(@NotNull TypeReference ref); ++ public abstract Bridge createBridge(TypeReference ref); + + /** + * Creates a new {@link BridgeContext} instance. +@@ -196,7 +194,7 @@ public abstract class JAXBRIContext extends JAXBContext { + * + * @since 2.0 EA1 + */ +- public abstract @NotNull BridgeContext createBridgeContext(); ++ public abstract BridgeContext createBridgeContext(); + + /** + * Gets a {@link RawAccessor} for the specified element property of the specified wrapper bean class. +@@ -244,7 +242,7 @@ public abstract class JAXBRIContext extends JAXBContext { + * + * @since 2.0 EA2 + */ +- public abstract @NotNull List getKnownNamespaceURIs(); ++ public abstract List getKnownNamespaceURIs(); + + + /** +@@ -272,7 +270,7 @@ public abstract class JAXBRIContext extends JAXBContext { + * if {@link SchemaOutputResolver} throws an {@link IOException}. + */ + @Override +- public abstract void generateSchema(@NotNull SchemaOutputResolver outputResolver) throws IOException; ++ public abstract void generateSchema(SchemaOutputResolver outputResolver) throws IOException; + + /** + * Returns the name of the XML Type bound to the +@@ -289,7 +287,7 @@ public abstract class JAXBRIContext extends JAXBContext { + * @return null + * if the referenced type is an anonymous and therefore doesn't have a name. + */ +- public abstract QName getTypeName(@NotNull TypeReference tr); ++ public abstract QName getTypeName(TypeReference tr); + + /** + * Gets the build information of the JAXB runtime. +@@ -298,7 +296,7 @@ public abstract class JAXBRIContext extends JAXBContext { + * may be null, if the runtime is loaded by a class loader that doesn't support + * the access to the manifest informatino. + */ +- public abstract @NotNull String getBuildId(); ++ public abstract String getBuildId(); + + /** + * Generates the episode file that represents the binding known to this {@link JAXBContext}, +@@ -342,7 +340,7 @@ public abstract class JAXBRIContext extends JAXBContext { + * @return + * Typically, this method returns "nameLikeThis". + */ +- public static @NotNull String mangleNameToVariableName(@NotNull String localName) { ++ public static String mangleNameToVariableName(String localName) { + return NameConverter.standard.toVariableName(localName); + } + +@@ -355,7 +353,7 @@ public abstract class JAXBRIContext extends JAXBContext { + * @return + * Typically, this method returns "NameLikeThis". + */ +- public static @NotNull String mangleNameToClassName(@NotNull String localName) { ++ public static String mangleNameToClassName(String localName) { + return NameConverter.standard.toClassName(localName); + } + +@@ -370,7 +368,7 @@ public abstract class JAXBRIContext extends JAXBContext { + * @return + * Typically, this method returns "NameLikeThis". + */ +- public static @NotNull String mangleNameToPropertyName(@NotNull String localName) { ++ public static String mangleNameToPropertyName(String localName) { + return NameConverter.standard.toPropertyName(localName); + } + +@@ -400,7 +398,7 @@ public abstract class JAXBRIContext extends JAXBContext { + * or null if the type is not assignable to the base type. + * @since 2.0 FCS + */ +- public static @Nullable Type getBaseType(@NotNull Type type, @NotNull Class baseType) { ++ public static Type getBaseType(Type type, Class baseType) { + return Utils.REFLECTION_NAVIGATOR.getBaseClass(type, baseType); + } + +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/marshaller/SAX2DOMEx.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/marshaller/SAX2DOMEx.java +index a7e0dd0..65d9e0f 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/marshaller/SAX2DOMEx.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/marshaller/SAX2DOMEx.java +@@ -16,7 +16,6 @@ import javax.xml.parsers.DocumentBuilderFactory; + import javax.xml.parsers.ParserConfigurationException; + + import com.sun.xml.bind.util.Which; +-import com.sun.istack.FinalArrayList; + + import com.sun.xml.bind.v2.util.XmlFactory; + import org.w3c.dom.Document; +@@ -38,7 +37,7 @@ public class SAX2DOMEx implements ContentHandler { + private Node node = null; + private boolean isConsolidate; + protected final Stack nodeStack = new Stack(); +- private final FinalArrayList unprocessedNamespaces = new FinalArrayList(); ++ private final java.util.ArrayList unprocessedNamespaces = new java.util.ArrayList(); + /** + * Document object that owns the specified node. + */ +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/ContextFactory.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/ContextFactory.java +index a05635f..5ae425c 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/ContextFactory.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/ContextFactory.java +@@ -25,7 +25,6 @@ import java.util.logging.Level; + import javax.xml.bind.JAXBContext; + import javax.xml.bind.JAXBException; + +-import com.sun.istack.FinalArrayList; + import com.sun.xml.bind.Utils; + import com.sun.xml.bind.api.JAXBRIContext; + import com.sun.xml.bind.api.TypeReference; +@@ -222,7 +221,7 @@ public class ContextFactory { + */ + public static JAXBContext createContext( String contextPath, + ClassLoader classLoader, Map properties ) throws JAXBException { +- FinalArrayList classes = new FinalArrayList(); ++ java.util.ArrayList classes = new java.util.ArrayList(); + StringTokenizer tokens = new StringTokenizer(contextPath,":"); + List indexedClasses; + +@@ -285,7 +284,7 @@ public class ContextFactory { + BufferedReader in = + new BufferedReader(new InputStreamReader(resourceAsStream, "UTF-8")); + try { +- FinalArrayList classes = new FinalArrayList(); ++ java.util.ArrayList classes = new java.util.ArrayList(); + String className = in.readLine(); + while (className != null) { + className = className.trim(); +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/annotation/AnnotationReader.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/annotation/AnnotationReader.java +index cb097ae..06bd0d9 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/annotation/AnnotationReader.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/annotation/AnnotationReader.java +@@ -14,7 +14,6 @@ import java.lang.annotation.Annotation; + import java.lang.reflect.Field; + import java.lang.reflect.Method; + +-import com.sun.istack.Nullable; + import com.sun.xml.bind.v2.model.core.ErrorHandler; + + /** +@@ -110,20 +109,17 @@ public interface AnnotationReader { + * @return null + * if the annotation was not found. + */ +- @Nullable + A getMethodParameterAnnotation( + Class annotation, M method, int paramIndex, Locatable srcPos ); + + /** + * Reads an annotation on a class. + */ +- @Nullable + A getClassAnnotation(Class annotation, C clazz, Locatable srcpos) ; + + /** + * Reads an annotation on the package that the given class belongs to. + */ +- @Nullable + A getPackageAnnotation(Class annotation, C clazz, Locatable srcpos); + + /** +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/core/PropertyInfo.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/core/PropertyInfo.java +index af5431c..20c7524 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/core/PropertyInfo.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/core/PropertyInfo.java +@@ -19,7 +19,6 @@ import javax.xml.bind.annotation.XmlType; + import javax.xml.bind.annotation.XmlSchemaType; + import javax.xml.namespace.QName; + +-import com.sun.istack.Nullable; + import com.sun.xml.bind.v2.model.annotation.AnnotationSource; + + /** +@@ -133,5 +132,5 @@ public interface PropertyInfo extends AnnotationSource { + * when this returns non-null, it overrides the type names of all types + * that are in this property.) + */ +- @Nullable QName getSchemaType(); ++ QName getSchemaType(); + } +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ByteArrayDataSource.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ByteArrayDataSource.java +new file mode 100644 +index 0000000..4e19c60 +--- /dev/null ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ByteArrayDataSource.java +@@ -0,0 +1,65 @@ ++/* ++ * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved. ++ * ++ * This program and the accompanying materials are made available under the ++ * terms of the Eclipse Distribution License v. 1.0, which is available at ++ * http://www.eclipse.org/org/documents/edl-v10.php. ++ * ++ * SPDX-License-Identifier: BSD-3-Clause ++ */ ++ ++package com.sun.xml.bind.v2.model.impl; ++ ++import javax.activation.DataSource; ++import java.io.InputStream; ++import java.io.ByteArrayInputStream; ++import java.io.OutputStream; ++ ++/** ++ * {@link DataSource} backed by a byte buffer. ++ * ++ * @author Kohsuke Kawaguchi ++ */ ++public final class ByteArrayDataSource implements DataSource { ++ ++ private final String contentType; ++ private final byte[] buf; ++ private final int len; ++ ++ /** ++ * @param buf input buffer - the byte array isn't being copied; used directly ++ * @param contentType ++ */ ++ public ByteArrayDataSource(byte[] buf, String contentType) { ++ this(buf,buf.length,contentType); ++ } ++ ++ /** ++ * @param buf input buffer - the byte array isn't being copied; used directly ++ * @param length ++ * @param contentType ++ */ ++ public ByteArrayDataSource(byte[] buf, int length, String contentType) { ++ this.buf = buf; ++ this.len = length; ++ this.contentType = contentType; ++ } ++ ++ public String getContentType() { ++ if(contentType==null) ++ return "application/octet-stream"; ++ return contentType; ++ } ++ ++ public InputStream getInputStream() { ++ return new ByteArrayInputStream(buf,0,len); ++ } ++ ++ public String getName() { ++ return null; ++ } ++ ++ public OutputStream getOutputStream() { ++ throw new UnsupportedOperationException(); ++ } ++} +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ClassInfoImpl.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ClassInfoImpl.java +index 91bf82c..5115643 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ClassInfoImpl.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ClassInfoImpl.java +@@ -52,7 +52,6 @@ import javax.xml.bind.annotation.XmlValue; + import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + import javax.xml.namespace.QName; + +-import com.sun.istack.FinalArrayList; + import com.sun.xml.bind.annotation.OverrideAnnotationOf; + import com.sun.xml.bind.v2.model.annotation.Locatable; + import com.sun.xml.bind.v2.model.annotation.MethodLocatable; +@@ -94,7 +93,7 @@ public class ClassInfoImpl extends TypeInfoImpl + * + * @see #getProperties() + */ +- private FinalArrayList> properties; ++ private java.util.ArrayList> properties; + + /** + * The property order. +@@ -276,7 +275,7 @@ public class ClassInfoImpl extends TypeInfoImpl + // check the access type first + XmlAccessType at = getAccessType(); + +- properties = new FinalArrayList>(); ++ properties = new java.util.ArrayList>(); + + findFieldProperties(clazz,at); + +@@ -549,7 +548,7 @@ public class ClassInfoImpl extends TypeInfoImpl + } + + private static List makeSet( T... args ) { +- List l = new FinalArrayList(); ++ List l = new java.util.ArrayList(); + for( T arg : args ) + if(arg!=null) l.add(arg); + return l; +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ElementInfoImpl.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ElementInfoImpl.java +index a1dcb05..176fb9d 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ElementInfoImpl.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ElementInfoImpl.java +@@ -26,7 +26,6 @@ import javax.xml.bind.annotation.XmlSchema; + import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + import javax.xml.namespace.QName; + +-import com.sun.istack.FinalArrayList; + import com.sun.xml.bind.v2.TODO; + import com.sun.xml.bind.v2.model.annotation.AnnotationSource; + import com.sun.xml.bind.v2.model.annotation.Locatable; +@@ -77,7 +76,7 @@ class ElementInfoImpl extends TypeInfoImpl implements ElementI + * This could be null. + * @see #link() + */ +- private FinalArrayList> substitutionMembers; ++ private java.util.ArrayList> substitutionMembers; + + /** + * The factory method from which this mapping was created. +@@ -405,7 +404,7 @@ class ElementInfoImpl extends TypeInfoImpl implements ElementI + + private void addSubstitutionMember(ElementInfoImpl child) { + if(substitutionMembers==null) +- substitutionMembers = new FinalArrayList>(); ++ substitutionMembers = new java.util.ArrayList>(); + substitutionMembers.add(child); + } + +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ElementPropertyInfoImpl.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ElementPropertyInfoImpl.java +index e9a1dcb..8e90a71 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ElementPropertyInfoImpl.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/ElementPropertyInfoImpl.java +@@ -19,7 +19,6 @@ import javax.xml.bind.annotation.XmlElements; + import javax.xml.bind.annotation.XmlList; + import javax.xml.namespace.QName; + +-import com.sun.istack.FinalArrayList; + import com.sun.xml.bind.v2.model.core.ElementPropertyInfo; + import com.sun.xml.bind.v2.model.core.ID; + import com.sun.xml.bind.v2.model.core.PropertyKind; +@@ -75,7 +74,7 @@ class ElementPropertyInfoImpl + + public List> getTypes() { + if(types==null) { +- types = new FinalArrayList>(); ++ types = new java.util.ArrayList>(); + XmlElement[] ann=null; + + XmlElement xe = seed.readAnnotation(XmlElement.class); +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/RuntimeBuiltinLeafInfoImpl.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/RuntimeBuiltinLeafInfoImpl.java +index fc412ee..c64a3bb 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/RuntimeBuiltinLeafInfoImpl.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/RuntimeBuiltinLeafInfoImpl.java +@@ -61,7 +61,6 @@ import javax.xml.transform.Transformer; + import javax.xml.transform.TransformerException; + import javax.xml.transform.stream.StreamResult; + +-import com.sun.istack.ByteArrayDataSource; + import com.sun.xml.bind.DatatypeConverterImpl; + import com.sun.xml.bind.WhiteSpaceProcessor; + import com.sun.xml.bind.api.AccessorException; +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/RuntimeClassInfoImpl.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/RuntimeClassInfoImpl.java +index 50f0085..95d4cf7 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/RuntimeClassInfoImpl.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/RuntimeClassInfoImpl.java +@@ -23,7 +23,6 @@ import javax.xml.bind.JAXBException; + import javax.xml.namespace.QName; + import javax.xml.stream.XMLStreamException; + +-import com.sun.istack.NotNull; + import com.sun.xml.bind.AccessorFactory; + import com.sun.xml.bind.AccessorFactoryImpl; + import com.sun.xml.bind.InternalAccessorFactory; +@@ -344,7 +343,7 @@ class RuntimeClassInfoImpl extends ClassInfoImpl + } + } + +- public @NotNull CharSequence print(BeanT o) throws AccessorException { ++ public CharSequence print(BeanT o) throws AccessorException { + try { + CharSequence value = xacc.print(o); + if(value==null) +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.java +index 0b8b889..0b47be1 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.java +@@ -35,7 +35,6 @@ import com.sun.xml.bind.v2.runtime.SchemaTypeTransducer; + import com.sun.xml.bind.v2.runtime.Transducer; + import com.sun.xml.bind.v2.runtime.JAXBContextImpl; + import com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext; +-import com.sun.istack.Nullable; + + import com.sun.xml.bind.v2.WellKnownNamespace; + import javax.xml.namespace.QName; +@@ -56,7 +55,7 @@ public class RuntimeModelBuilder extends ModelBuilder { + * The {@link JAXBContextImpl} for which the model is built. + * Null when created for reflection. + */ +- public final @Nullable JAXBContextImpl context; ++ public final JAXBContextImpl context; + + public RuntimeModelBuilder(JAXBContextImpl context, RuntimeAnnotationReader annotationReader, Map subclassReplacements, String defaultNamespaceRemap) { + super(annotationReader, Utils.REFLECTION_NAVIGATOR, subclassReplacements, defaultNamespaceRemap); +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/BridgeAdapter.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/BridgeAdapter.java +index 22740bf..98b4677 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/BridgeAdapter.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/BridgeAdapter.java +@@ -27,7 +27,6 @@ import javax.xml.stream.XMLStreamWriter; + import javax.xml.transform.Result; + import javax.xml.transform.Source; + +-import com.sun.istack.NotNull; + import com.sun.xml.bind.api.Bridge; + import com.sun.xml.bind.api.TypeReference; + import com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl; +@@ -92,19 +91,19 @@ final class BridgeAdapter extends InternalBridge { + } + + +- public @NotNull InMemory unmarshal(Unmarshaller u, XMLStreamReader in) throws JAXBException { ++ public InMemory unmarshal(Unmarshaller u, XMLStreamReader in) throws JAXBException { + return adaptU(u, core.unmarshal(u,in)); + } + +- public @NotNull InMemory unmarshal(Unmarshaller u, Source in) throws JAXBException { ++ public InMemory unmarshal(Unmarshaller u, Source in) throws JAXBException { + return adaptU(u, core.unmarshal(u,in)); + } + +- public @NotNull InMemory unmarshal(Unmarshaller u, InputStream in) throws JAXBException { ++ public InMemory unmarshal(Unmarshaller u, InputStream in) throws JAXBException { + return adaptU(u, core.unmarshal(u,in)); + } + +- public @NotNull InMemory unmarshal(Unmarshaller u, Node n) throws JAXBException { ++ public InMemory unmarshal(Unmarshaller u, Node n) throws JAXBException { + return adaptU(u, core.unmarshal(u,n)); + } + +@@ -112,7 +111,7 @@ final class BridgeAdapter extends InternalBridge { + return core.getTypeReference(); + } + +- private @NotNull InMemory adaptU(Unmarshaller _u, OnWire v) throws JAXBException { ++ private InMemory adaptU(Unmarshaller _u, OnWire v) throws JAXBException { + UnmarshallerImpl u = (UnmarshallerImpl) _u; + XmlAdapter a = u.coordinator.getAdapter(adapter); + u.coordinator.pushCoordinator(); +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/BridgeImpl.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/BridgeImpl.java +index 416dc8d..ebdc6f5 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/BridgeImpl.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/BridgeImpl.java +@@ -25,7 +25,6 @@ import javax.xml.stream.XMLStreamWriter; + import javax.xml.transform.Result; + import javax.xml.transform.Source; + +-import com.sun.istack.NotNull; + import com.sun.xml.bind.api.Bridge; + import com.sun.xml.bind.api.TypeReference; + import com.sun.xml.bind.marshaller.SAX2DOMEx; +@@ -89,22 +88,22 @@ final class BridgeImpl extends InternalBridge { + m.write(tagName,bi,t, m.createXmlOutput(result),m.createPostInitAction(result)); + } + +- public @NotNull T unmarshal(Unmarshaller _u, XMLStreamReader in) throws JAXBException { ++ public T unmarshal(Unmarshaller _u, XMLStreamReader in) throws JAXBException { + UnmarshallerImpl u = (UnmarshallerImpl)_u; + return ((JAXBElement)u.unmarshal0(in,bi)).getValue(); + } + +- public @NotNull T unmarshal(Unmarshaller _u, Source in) throws JAXBException { ++ public T unmarshal(Unmarshaller _u, Source in) throws JAXBException { + UnmarshallerImpl u = (UnmarshallerImpl)_u; + return ((JAXBElement)u.unmarshal0(in,bi)).getValue(); + } + +- public @NotNull T unmarshal(Unmarshaller _u, InputStream in) throws JAXBException { ++ public T unmarshal(Unmarshaller _u, InputStream in) throws JAXBException { + UnmarshallerImpl u = (UnmarshallerImpl)_u; + return ((JAXBElement)u.unmarshal0(in,bi)).getValue(); + } + +- public @NotNull T unmarshal(Unmarshaller _u, Node n) throws JAXBException { ++ public T unmarshal(Unmarshaller _u, Node n) throws JAXBException { + UnmarshallerImpl u = (UnmarshallerImpl)_u; + return ((JAXBElement)u.unmarshal0(n,bi)).getValue(); + } +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/ClassBeanInfoImpl.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/ClassBeanInfoImpl.java +index 2f220d3..d89af76 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/ClassBeanInfoImpl.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/ClassBeanInfoImpl.java +@@ -27,7 +27,6 @@ import javax.xml.bind.helpers.ValidationEventImpl; + import javax.xml.namespace.QName; + import javax.xml.stream.XMLStreamException; + +-import com.sun.istack.FinalArrayList; + import com.sun.xml.bind.api.AccessorException; + import com.sun.xml.bind.v2.ClassFactory; + import com.sun.xml.bind.v2.WellKnownNamespace; +@@ -206,8 +205,8 @@ public final class ClassBeanInfoImpl extends JaxBeanInfo implement + } + + // create a list of attribute/URI handlers +- List attProps = new FinalArrayList(); +- List uriProps = new FinalArrayList(); ++ List attProps = new java.util.ArrayList(); ++ List uriProps = new java.util.ArrayList(); + for (ClassBeanInfoImpl bi = this; bi != null; bi = bi.superClazz) { + for (int i = 0; i < bi.properties.length; i++) { + Property p = bi.properties[i]; +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/ContentHandlerAdaptor.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/ContentHandlerAdaptor.java +index e8f554b..f93f9ac 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/ContentHandlerAdaptor.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/ContentHandlerAdaptor.java +@@ -10,8 +10,6 @@ + + package com.sun.xml.bind.v2.runtime; + +-import com.sun.istack.FinalArrayList; +-import com.sun.istack.SAXException2; + import org.xml.sax.Attributes; + import org.xml.sax.SAXException; + import org.xml.sax.helpers.DefaultHandler; +@@ -29,7 +27,7 @@ import java.io.IOException; + final class ContentHandlerAdaptor extends DefaultHandler { + + /** Stores newly declared prefix-URI mapping. */ +- private final FinalArrayList prefixMap = new FinalArrayList(); ++ private final java.util.ArrayList prefixMap = new java.util.ArrayList(); + + /** Events will be sent to this object. */ + private final XMLSerializer serializer; +@@ -106,9 +104,9 @@ final class ContentHandlerAdaptor extends DefaultHandler { + prefixMap.clear(); + serializer.endAttributes(); + } catch (IOException e) { +- throw new SAXException2(e); ++ throw new org.xml.sax.SAXException(e); + } catch (XMLStreamException e) { +- throw new SAXException2(e); ++ throw new org.xml.sax.SAXException(e); + } + } + +@@ -123,9 +121,9 @@ final class ContentHandlerAdaptor extends DefaultHandler { + flushText(); + serializer.endElement(); + } catch (IOException e) { +- throw new SAXException2(e); ++ throw new org.xml.sax.SAXException(e); + } catch (XMLStreamException e) { +- throw new SAXException2(e); ++ throw new org.xml.sax.SAXException(e); + } + } + +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/FilterTransducer.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/FilterTransducer.java +index e68cad7..c9678e9 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/FilterTransducer.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/FilterTransducer.java +@@ -15,7 +15,6 @@ import java.io.IOException; + import javax.xml.namespace.QName; + import javax.xml.stream.XMLStreamException; + +-import com.sun.istack.NotNull; + import com.sun.xml.bind.api.AccessorException; + + import org.xml.sax.SAXException; +@@ -46,7 +45,7 @@ public abstract class FilterTransducer implements Transducer { + core.declareNamespace(o, w); + } + +- public @NotNull CharSequence print(@NotNull T o) throws AccessorException { ++ public CharSequence print(T o) throws AccessorException { + return core.print(o); + } + +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/InlineBinaryTransducer.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/InlineBinaryTransducer.java +index 83eb7da..018f311 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/InlineBinaryTransducer.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/InlineBinaryTransducer.java +@@ -14,7 +14,6 @@ import java.io.IOException; + + import javax.xml.stream.XMLStreamException; + +-import com.sun.istack.NotNull; + import com.sun.xml.bind.api.AccessorException; + + import org.xml.sax.SAXException; +@@ -30,7 +29,7 @@ public class InlineBinaryTransducer extends FilterTransducer { + } + + @Override +- public @NotNull CharSequence print(@NotNull V o) throws AccessorException { ++ public CharSequence print(V o) throws AccessorException { + XMLSerializer w = XMLSerializer.getInstance(); + boolean old = w.setInlineBinaryFlag(true); + try { +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/JAXBContextImpl.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/JAXBContextImpl.java +index 3e7f327..f69c22a 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/JAXBContextImpl.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/JAXBContextImpl.java +@@ -53,8 +53,6 @@ import javax.xml.transform.TransformerFactory; + import javax.xml.transform.sax.SAXTransformerFactory; + import javax.xml.transform.sax.TransformerHandler; + +-import com.sun.istack.NotNull; +-import com.sun.istack.Pool; + import com.sun.xml.bind.v2.WellKnownNamespace; + import com.sun.xml.bind.api.AccessorException; + import com.sun.xml.bind.api.Bridge; +@@ -144,13 +142,13 @@ public final class JAXBContextImpl extends JAXBRIContext { + * Pool of {@link Marshaller}s. + */ + public final Pool marshallerPool = new Pool.Impl() { +- protected @NotNull Marshaller create() { ++ protected Marshaller create() { + return createMarshaller(); + } + }; + + public final Pool unmarshallerPool = new Pool.Impl() { +- protected @NotNull Unmarshaller create() { ++ protected Unmarshaller create() { + return createUnmarshaller(); + } + }; +@@ -211,10 +209,10 @@ public final class JAXBContextImpl extends JAXBRIContext { + + private WeakReference typeInfoSetCache; + +- private @NotNull RuntimeAnnotationReader annotationReader; ++ private RuntimeAnnotationReader annotationReader; + + private /*almost final*/ boolean hasSwaRef; +- private final @NotNull Map subclassReplacements; ++ private final Map subclassReplacements; + + /** + * If true, we aim for faster {@link JAXBContext} instantiation performance, +@@ -907,7 +905,7 @@ public final class JAXBContextImpl extends JAXBRIContext { + return bridges.get(ref); + } + +- public @NotNull BridgeContext createBridgeContext() { ++ public BridgeContext createBridgeContext() { + return new BridgeContextImpl(this); + } + +@@ -1020,8 +1018,8 @@ public final class JAXBContextImpl extends JAXBRIContext { + private boolean retainPropertyInfo = false; + private boolean supressAccessorWarnings = false; + private String defaultNsUri = ""; +- private @NotNull RuntimeAnnotationReader annotationReader = new RuntimeInlineAnnotationReader(); +- private @NotNull Map subclassReplacements = Collections.emptyMap(); ++ private RuntimeAnnotationReader annotationReader = new RuntimeInlineAnnotationReader(); ++ private Map subclassReplacements = Collections.emptyMap(); + private boolean c14nSupport = false; + private Class[] classes; + private Collection typeRefs; +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/JaxBeanInfo.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/JaxBeanInfo.java +index 53da7d9..1b57e0c 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/JaxBeanInfo.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/JaxBeanInfo.java +@@ -28,7 +28,6 @@ import javax.xml.datatype.XMLGregorianCalendar; + import javax.xml.namespace.QName; + import javax.xml.stream.XMLStreamException; + +-import com.sun.istack.NotNull; + import com.sun.xml.bind.Utils; + import com.sun.xml.bind.v2.model.runtime.RuntimeTypeInfo; + import com.sun.xml.bind.v2.runtime.unmarshaller.Loader; +@@ -272,7 +271,7 @@ public abstract class JaxBeanInfo { + * instance, but there's a few exceptions (most notably {@link XMLGregorianCalendar}), + * so as a general rule we need an instance to determine it. + */ +- public QName getTypeName(@NotNull BeanT instance) { ++ public QName getTypeName(BeanT instance) { + if(typeName==null) return null; + if(typeName instanceof QName) return (QName)typeName; + return ((QName[])typeName)[0]; +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/NamespaceContext2.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/NamespaceContext2.java +index 328df5c..71d7867 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/NamespaceContext2.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/NamespaceContext2.java +@@ -12,7 +12,6 @@ package com.sun.xml.bind.v2.runtime; + + import javax.xml.namespace.NamespaceContext; + +-import com.sun.istack.NotNull; + + /** + * Maintains {@code namespace <-> prefix} bindings. +@@ -69,5 +68,5 @@ public interface NamespaceContext2 extends NamespaceContext + * simply returns the assigned prefix index. Otherwise a new + * declaration will be put. + */ +- int force(@NotNull String uri, @NotNull String prefix); ++ int force(String uri, String prefix); + } +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/Pool.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/Pool.java +new file mode 100644 +index 0000000..cbcb10d +--- /dev/null ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/Pool.java +@@ -0,0 +1,101 @@ ++/* ++ * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved. ++ * ++ * This program and the accompanying materials are made available under the ++ * terms of the Eclipse Distribution License v. 1.0, which is available at ++ * http://www.eclipse.org/org/documents/edl-v10.php. ++ * ++ * SPDX-License-Identifier: BSD-3-Clause ++ */ ++ ++package com.sun.xml.bind.v2.runtime; ++ ++import java.util.concurrent.ConcurrentLinkedQueue; ++import java.lang.ref.WeakReference; ++ ++/** ++ * Pool of reusable objects that are indistinguishable from each other, ++ * such as JAXB marshallers. ++ * ++ * @author Kohsuke Kawaguchi ++ */ ++public interface Pool { ++ ++ /** ++ * Gets a new object from the pool. ++ * ++ *

++ * If no object is available in the pool, this method creates a new one. ++ */ ++ T take(); ++ ++ /** ++ * Returns an object back to the pool. ++ */ ++ void recycle(T t); ++ ++ /** ++ * Default implementation that uses {@link ConcurrentLinkedQueue} ++ * as the data store. ++ * ++ *

Note for Implementors

++ *

++ * Don't rely on the fact that this class extends from {@link ConcurrentLinkedQueue}. ++ */ ++ public abstract class Impl implements Pool { ++ ++ private volatile WeakReference> queue; ++ ++ /** ++ * Gets a new object from the pool. ++ * ++ *

++ * If no object is available in the pool, this method creates a new one. ++ * ++ * @return ++ * always non-null. ++ */ ++ public final T take() { ++ T t = getQueue().poll(); ++ if(t==null) { ++ return create(); ++ } ++ return t; ++ } ++ ++ /** ++ * Returns an object back to the pool. ++ */ ++ public final void recycle(T t) { ++ getQueue().offer(t); ++ } ++ ++ private ConcurrentLinkedQueue getQueue() { ++ WeakReference> q = queue; ++ if (q != null) { ++ ConcurrentLinkedQueue d = q.get(); ++ if (d != null) { ++ return d; ++ } ++ } ++ // overwrite the queue ++ ConcurrentLinkedQueue d = new ConcurrentLinkedQueue(); ++ queue = new WeakReference>(d); ++ ++ return d; ++ } ++ ++ /** ++ * Creates a new instance of object. ++ * ++ *

++ * This method is used when someone wants to ++ * {@link #take() take} an object from an empty pool. ++ * ++ *

++ * Also note that multiple threads may call this method ++ * concurrently. ++ */ ++ protected abstract T create(); ++ } ++} +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/Transducer.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/Transducer.java +index d95d3d2..f9c9f4d 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/Transducer.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/Transducer.java +@@ -17,7 +17,6 @@ import javax.xml.datatype.XMLGregorianCalendar; + import javax.xml.namespace.QName; + import javax.xml.stream.XMLStreamException; + +-import com.sun.istack.NotNull; + import com.sun.xml.bind.api.AccessorException; + import com.sun.xml.bind.v2.model.runtime.RuntimePropertyInfo; + import com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedTransducedAccessorFactory; +@@ -74,7 +73,7 @@ public interface Transducer { + * @return + * always non-null valid lexical representation. + */ +- @NotNull CharSequence print(@NotNull ValueT o) throws AccessorException; ++ CharSequence print(ValueT o) throws AccessorException; + + /** + * Converts the lexical representation to a value object. +@@ -102,7 +101,7 @@ public interface Transducer { + * to one of the {@link XMLSerializer#leafElement(Name, String, String)} method. + * but with the best representation of the value, not necessarily String. + */ +- void writeLeafElement(XMLSerializer w, Name tagName, @NotNull ValueT o, String fieldName) throws IOException, SAXException, XMLStreamException, AccessorException; ++ void writeLeafElement(XMLSerializer w, Name tagName, ValueT o, String fieldName) throws IOException, SAXException, XMLStreamException, AccessorException; + + /** + * Transducers implicitly work against a single XML type, +@@ -115,5 +114,5 @@ public interface Transducer { + * Most of the time this method returns null, in which case + * the implicitly associated type will be used. + */ +- QName getTypeName(@NotNull ValueT instance); ++ QName getTypeName(ValueT instance); + } +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/ValueListBeanInfoImpl.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/ValueListBeanInfoImpl.java +index 869a3c4..5bd5c1c 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/ValueListBeanInfoImpl.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/ValueListBeanInfoImpl.java +@@ -19,7 +19,6 @@ import javax.xml.bind.ValidationEvent; + import javax.xml.bind.helpers.ValidationEventImpl; + import javax.xml.stream.XMLStreamException; + +-import com.sun.istack.FinalArrayList; + import com.sun.xml.bind.WhiteSpaceProcessor; + import com.sun.xml.bind.api.AccessorException; + import com.sun.xml.bind.v2.runtime.unmarshaller.Loader; +@@ -47,7 +46,7 @@ final class ValueListBeanInfoImpl extends JaxBeanInfo { + private final Loader loader = new Loader(true) { + @Override + public void text(UnmarshallingContext.State state, CharSequence text) throws SAXException { +- List r = new FinalArrayList(); ++ List r = new java.util.ArrayList(); + + int idx = 0; + int len = text.length(); +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/XMLSerializer.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/XMLSerializer.java +index 9ede39f..a8df571 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/XMLSerializer.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/XMLSerializer.java +@@ -36,7 +36,6 @@ import javax.xml.transform.Transformer; + import javax.xml.transform.TransformerException; + import javax.xml.transform.sax.SAXResult; + +-import com.sun.istack.SAXException2; + import com.sun.xml.bind.CycleRecoverable; + import com.sun.xml.bind.api.AccessorException; + import com.sun.xml.bind.marshaller.NamespacePrefixMapper; +@@ -209,14 +208,14 @@ public final class XMLSerializer extends Coordinator { + try { + handler = marshaller.getEventHandler(); + } catch( JAXBException e ) { +- throw new SAXException2(e); ++ throw new org.xml.sax.SAXException(e); + } + + if(!handler.handleEvent(ve)) { + if(ve.getLinkedException() instanceof Exception) +- throw new SAXException2((Exception)ve.getLinkedException()); ++ throw new org.xml.sax.SAXException((Exception)ve.getLinkedException()); + else +- throw new SAXException2(ve.getMessage()); ++ throw new org.xml.sax.SAXException(ve.getMessage()); + } + } + +@@ -404,9 +403,9 @@ public final class XMLSerializer extends Coordinator { + try { + out.attribute(prefix,local,value); + } catch (IOException e) { +- throw new SAXException2(e); ++ throw new org.xml.sax.SAXException(e); + } catch (XMLStreamException e) { +- throw new SAXException2(e); ++ throw new org.xml.sax.SAXException(e); + } + } + +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/output/C14nXmlOutput.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/output/C14nXmlOutput.java +index 6d38d96..4a900ff 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/output/C14nXmlOutput.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/output/C14nXmlOutput.java +@@ -17,7 +17,6 @@ import java.util.Collections; + + import com.sun.xml.bind.api.JAXBRIContext; + import com.sun.xml.bind.v2.runtime.Name; +-import com.sun.istack.FinalArrayList; + import com.sun.xml.bind.marshaller.CharacterEscapeHandler; + + /** +@@ -53,7 +52,7 @@ public class C14nXmlOutput extends UTF8XmlOutput { + * + * As long as this map is empty, there's no need for sorting. + */ +- private final FinalArrayList otherAttributes = new FinalArrayList(); ++ private final java.util.ArrayList otherAttributes = new java.util.ArrayList(); + + /** + * True if {@link JAXBRIContext} is created with c14n support on, +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/output/NamespaceContextImpl.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/output/NamespaceContextImpl.java +index 50ad0b0..bef072e 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/output/NamespaceContextImpl.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/output/NamespaceContextImpl.java +@@ -17,8 +17,6 @@ import java.util.Iterator; + import javax.xml.XMLConstants; + import javax.xml.stream.XMLStreamException; + +-import com.sun.istack.NotNull; +-import com.sun.istack.Nullable; + import com.sun.xml.bind.marshaller.NamespacePrefixMapper; + import com.sun.xml.bind.v2.WellKnownNamespace; + import com.sun.xml.bind.v2.runtime.Name; +@@ -207,7 +205,7 @@ public final class NamespaceContextImpl implements NamespaceContext2 { + } + } + +- public int force(@NotNull String uri, @NotNull String prefix) { ++ public int force(String uri, String prefix) { + // check for the existing binding + + for( int i=size-1; i>=0; i-- ) { +@@ -235,7 +233,7 @@ public final class NamespaceContextImpl implements NamespaceContext2 { + * @return + * the index of this new binding. + */ +- public int put(@NotNull String uri, @Nullable String prefix) { ++ public int put(String uri, String prefix) { + if(size==nsUris.length) { + // reallocate + String[] u = new String[nsUris.length*2]; +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/reflect/Accessor.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/reflect/Accessor.java +index 410ace8..ecdd993 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/reflect/Accessor.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/reflect/Accessor.java +@@ -25,7 +25,6 @@ import java.util.logging.Logger; + import javax.xml.bind.JAXBElement; + import javax.xml.bind.annotation.adapters.XmlAdapter; + +-import com.sun.istack.Nullable; + import com.sun.xml.bind.api.AccessorException; + import com.sun.xml.bind.api.JAXBRIContext; + import com.sun.xml.bind.v2.model.core.Adapter; +@@ -73,7 +72,7 @@ public abstract class Accessor implements Receiver { + * (See {@link RuntimeModelBuilder#context}.) + * @return At least the implementation can return {@code this}. + */ +- public Accessor optimize(@Nullable JAXBContextImpl context) { ++ public Accessor optimize(JAXBContextImpl context) { + return this; + } + +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/reflect/Lister.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/reflect/Lister.java +index f25fe3f..5658985 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/reflect/Lister.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/reflect/Lister.java +@@ -30,7 +30,6 @@ import java.util.concurrent.Callable; + + import javax.xml.bind.JAXBException; + +-import com.sun.istack.SAXException2; + import com.sun.xml.bind.api.AccessorException; + import com.sun.xml.bind.v2.ClassFactory; + import com.sun.xml.bind.v2.TODO; +@@ -375,7 +374,7 @@ public abstract class Lister { + } catch (SAXException e) { + throw e; + } catch (Exception e) { +- throw new SAXException2(e); ++ throw new SAXException(e); + } + + if(t==null) { +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/reflect/TransducedAccessor.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/reflect/TransducedAccessor.java +index 29746be..fea1e2c 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/reflect/TransducedAccessor.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/reflect/TransducedAccessor.java +@@ -17,9 +17,6 @@ import javax.xml.bind.JAXBException; + import javax.xml.bind.annotation.XmlValue; + import javax.xml.stream.XMLStreamException; + +-import com.sun.istack.NotNull; +-import com.sun.istack.Nullable; +-import com.sun.istack.SAXException2; + import com.sun.xml.bind.WhiteSpaceProcessor; + import com.sun.xml.bind.api.AccessorException; + import com.sun.xml.bind.v2.model.core.ID; +@@ -80,7 +77,7 @@ public abstract class TransducedAccessor { + * @return + * if the accessor didn't yield a value, return null. + */ +- public abstract @Nullable CharSequence print(@NotNull BeanT o) throws AccessorException, SAXException; ++ public abstract CharSequence print(BeanT o) throws AccessorException, SAXException; + + /** + * Parses the text value into the responsible field of the given bean. +@@ -293,7 +290,7 @@ public abstract class TransducedAccessor { + } catch (RuntimeException e) {// from callable.call + throw e; + } catch (Exception e) {// from callable.call +- throw new SAXException2(e); ++ throw new SAXException(e); + } + if(t!=null) { + assign(bean,t,context); +@@ -316,7 +313,7 @@ public abstract class TransducedAccessor { + } catch (RuntimeException e) {// from callable.call + throw e; + } catch (Exception e) {// from callable.call +- throw new SAXException2(e); ++ throw new SAXException(e); + } + } + }); +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/Base64Data.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/Base64Data.java +index 00d5e70..93d2035 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/Base64Data.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/Base64Data.java +@@ -26,7 +26,6 @@ import com.sun.xml.bind.v2.runtime.XMLSerializer; + import com.sun.xml.bind.v2.runtime.output.Pcdata; + import com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput; + import com.sun.xml.bind.v2.util.ByteArrayOutputStreamEx; +-import com.sun.istack.Nullable; + + /** + * Fed to unmarshaller when the 'text' data is actually +@@ -61,8 +60,7 @@ public final class Base64Data extends Pcdata { + * Unused when {@link #dataHandler} is set. + * Use {@link DataHandler#getContentType()} in that case. + */ +- private @Nullable +- String mimeType; ++ private String mimeType; + + /** + * Fills in the data object by a portion of the byte[]. +@@ -70,7 +68,7 @@ public final class Base64Data extends Pcdata { + * @param len + * data[0] to data[len-1] are treated as the data. + */ +- public void set(byte[] data, int len, @Nullable String mimeType) { ++ public void set(byte[] data, int len, String mimeType) { + this.data = data; + this.dataLen = len; + this.dataHandler = null; +@@ -83,7 +81,7 @@ public final class Base64Data extends Pcdata { + * @param data + * this buffer may be owned directly by the unmarshaleld JAXB object. + */ +- public void set(byte[] data, @Nullable String mimeType) { ++ public void set(byte[] data, String mimeType) { + set(data, data.length, mimeType); + } + +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/UnmarshallingContext.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/UnmarshallingContext.java +index b2f72b9..d467f6a 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/UnmarshallingContext.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/UnmarshallingContext.java +@@ -34,9 +34,6 @@ import javax.xml.bind.helpers.ValidationEventImpl; + import javax.xml.namespace.NamespaceContext; + import javax.xml.namespace.QName; + +-import com.sun.istack.NotNull; +-import com.sun.istack.Nullable; +-import com.sun.istack.SAXParseException2; + import com.sun.xml.bind.IDResolver; + import com.sun.xml.bind.api.AccessorException; + import com.sun.xml.bind.api.ClassResolver; +@@ -87,7 +84,7 @@ public final class UnmarshallingContext extends Coordinator + DUMMY_INSTANCE = new LocatorExWrapper(loc); + } + +- private @NotNull LocatorEx locator = DUMMY_INSTANCE; ++ private LocatorEx locator = DUMMY_INSTANCE; + + /** Root object that is being unmarshalled. */ + private Object result; +@@ -158,13 +155,13 @@ public final class UnmarshallingContext extends Coordinator + /** + * Used to discover additional classes when we hit unknown elements/types. + */ +- public @Nullable ClassResolver classResolver; ++ public ClassResolver classResolver; + + /** + * User-supplied {@link ClassLoader} for converting name to {@link Class}. + * For backward compatibility, when null, use thread context classloader. + */ +- public @Nullable ClassLoader classLoader; ++ public ClassLoader classLoader; + + /** + * The variable introduced to avoid reporting n^10 similar errors. +@@ -706,7 +703,7 @@ public final class UnmarshallingContext extends Coordinator + if(!recover) aborted = true; + + if( !canRecover || !recover ) +- throw new SAXParseException2( event.getMessage(), locator, ++ throw new org.xml.sax.SAXParseException( event.getMessage(), locator, + new UnmarshalException( + event.getMessage(), + event.getLinkedException() ) ); +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/XsiTypeLoader.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/XsiTypeLoader.java +index 1450d5e..6733f5e 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/XsiTypeLoader.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/XsiTypeLoader.java +@@ -15,7 +15,6 @@ import javax.xml.namespace.QName; + import com.sun.xml.bind.DatatypeConverterImpl; + import com.sun.xml.bind.v2.WellKnownNamespace; + import com.sun.xml.bind.v2.runtime.JaxBeanInfo; +-import com.sun.istack.Nullable; + + import java.util.Collection; + import java.util.Collections; +@@ -50,7 +49,7 @@ public class XsiTypeLoader extends Loader { + loader.startElement(state,ea); + } + +- /*pacakge*/ static JaxBeanInfo parseXsiType(UnmarshallingContext.State state, TagName ea, @Nullable JaxBeanInfo defaultBeanInfo) throws SAXException { ++ /*pacakge*/ static JaxBeanInfo parseXsiType(UnmarshallingContext.State state, TagName ea, JaxBeanInfo defaultBeanInfo) throws SAXException { + UnmarshallingContext context = state.getContext(); + JaxBeanInfo beanInfo = null; + +diff --git a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/schemagen/XmlSchemaGenerator.java b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/schemagen/XmlSchemaGenerator.java +index 3428aa5..3bd61f7 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/schemagen/XmlSchemaGenerator.java ++++ b/jaxb-ri/runtime/impl/src/main/java/com/sun/xml/bind/v2/schemagen/XmlSchemaGenerator.java +@@ -33,8 +33,6 @@ import javax.xml.namespace.QName; + import javax.xml.transform.Result; + import javax.xml.transform.stream.StreamResult; + +-import com.sun.istack.Nullable; +-import com.sun.istack.NotNull; + import com.sun.xml.bind.Utils; + import com.sun.xml.bind.api.CompositeStructure; + import com.sun.xml.bind.api.ErrorListener; +@@ -477,7 +475,7 @@ public final class XmlSchemaGenerator { + * Schema components are organized per namespace. + */ + private class Namespace { +- final @NotNull String uri; ++ final String uri; + + /** + * Other {@link Namespace}s that this namespace depends on. +@@ -573,7 +571,7 @@ public final class XmlSchemaGenerator { + } + } + +- private void addDependencyTo(@Nullable QName qname) { ++ private void addDependencyTo(QName qname) { + // even though the Element interface says getElementName() returns non-null, + // ClassInfo always implements Element (even if an instance of ClassInfo might not be an Element). + // so this check is still necessary +diff --git a/jaxb-ri/runtime/impl/src/main/java/module-info.java b/jaxb-ri/runtime/impl/src/main/java/module-info.java +index a6a8508..248417b 100644 +--- a/jaxb-ri/runtime/impl/src/main/java/module-info.java ++++ b/jaxb-ri/runtime/impl/src/main/java/module-info.java +@@ -26,7 +26,6 @@ module org.glassfish.jaxb.runtime { + requires transitive com.sun.xml.txw2; + requires static com.sun.xml.fastinfoset; + requires static org.jvnet.staxex; +- requires transitive com.sun.istack.runtime; + + exports com.sun.xml.bind; + exports com.sun.xml.bind.annotation; +diff --git a/jaxb-ri/xjc/pom.xml b/jaxb-ri/xjc/pom.xml +index a8119c6..53a0a48 100644 +--- a/jaxb-ri/xjc/pom.xml ++++ b/jaxb-ri/xjc/pom.xml +@@ -83,6 +83,10 @@ + com.sun.istack + istack-commons-tools + ++ ++ com.sun.istack ++ istack-commons-runtime ++ + + org.apache.ant + ant +-- +2.26.2 + diff --git a/README.md b/README.md new file mode 100644 index 0000000..c3e773f --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# jaxb + +The jaxb package diff --git a/dead.package b/dead.package deleted file mode 100644 index 8114387..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -No longer used diff --git a/jaxb.spec b/jaxb.spec new file mode 100644 index 0000000..16738d0 --- /dev/null +++ b/jaxb.spec @@ -0,0 +1,350 @@ +# Conditionally build with a minimal dependency set +%bcond_with jp_minimal + +Name: jaxb +Version: 2.3.3 +Release: 7%{?dist} +Summary: JAXB Reference Implementation +# EDL-1.0 license is BSD-3-clause +License: BSD +URL: https://github.com/eclipse-ee4j/jaxb-ri +Source0: https://github.com/eclipse-ee4j/jaxb-ri/archive/%{version}-RI.tar.gz + +# Avoid hard runtime dep on istack-commons from the main implementation jar +Patch0: 0001-Avoid-runtime-dependency-on-istack-commons-from-main.patch + +BuildRequires: maven-local +BuildRequires: mvn(com.sun.activation:jakarta.activation) +BuildRequires: mvn(jakarta.activation:jakarta.activation-api) +BuildRequires: mvn(jakarta.xml.bind:jakarta.xml.bind-api) +BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-dependency-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-source-plugin) +BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) +%if %{without jp_minimal} +BuildRequires: mvn(com.sun.istack:istack-commons-runtime) +BuildRequires: mvn(com.sun.istack:istack-commons-tools) +BuildRequires: mvn(com.sun.xml.dtd-parser:dtd-parser) +BuildRequires: mvn(com.sun.xml.fastinfoset:FastInfoset) +BuildRequires: mvn(junit:junit) +BuildRequires: mvn(org.apache.ant:ant) +BuildRequires: mvn(org.apache.maven.plugins:maven-failsafe-plugin) +BuildRequires: mvn(org.jvnet.staxex:stax-ex) +BuildRequires: mvn(xml-resolver:xml-resolver) +BuildRequires: mvn(xmlunit:xmlunit) +%endif + +%global obs_vr 2.3.3-1 + +BuildArch: noarch + +%description +GlassFish JAXB Reference Implementation. + +%package runtime +Summary: JAXB Runtime +# Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 +Provides: glassfish-jaxb = %{version}-%{release} +Obsoletes: glassfish-jaxb < %{obs_vr} +Provides: glassfish-jaxb-runtime = %{version}-%{release} +Obsoletes: glassfish-jaxb-runtime < %{obs_vr} +# -core subpackage was merged into -runtime during F33 +Provides: glassfish-jaxb-core = %{version}-%{release} +Obsoletes: glassfish-jaxb-core < %{obs_vr} +# Obsolete module gone away for good +Obsoletes: glassfish-jaxb1-impl < %{obs_vr} +# Unable to ship any longer due to missing dep: org.checkerframework:compiler +Obsoletes: glassfish-jaxb-jxc < %{obs_vr} +# Disable javadocs for now, due to https://github.com/fedora-java/xmvn/issues/58 +Obsoletes: glassfish-jaxb-javadoc < %{obs_vr} +# No longer shipping parent pom packages +Obsoletes: glassfish-jaxb-codemodel-parent < %{obs_vr} +Obsoletes: glassfish-jaxb-external-parent < %{obs_vr} +Obsoletes: glassfish-jaxb-parent < %{obs_vr} +Obsoletes: glassfish-jaxb-runtime-parent < %{obs_vr} +Obsoletes: glassfish-jaxb-txw-parent < %{obs_vr} + +%if %{with jp_minimal} +# Obsolete packages that are not shipped in the minimal build +Obsoletes: glassfish-jaxb-bom < %{obs_vr} +Obsoletes: glassfish-jaxb-bom-ext < %{obs_vr} +Obsoletes: glassfish-jaxb-codemodel < %{obs_vr} +Obsoletes: glassfish-jaxb-codemodel-annotation-compiler < %{obs_vr} +Obsoletes: glassfish-jaxb-rngom < %{obs_vr} +Obsoletes: glassfish-jaxb-txwc2 < %{obs_vr} +Obsoletes: glassfish-jaxb-xjc < %{obs_vr} +Obsoletes: %{name}-bom < %{obs_vr} +Obsoletes: %{name}-bom-ext < %{obs_vr} +Obsoletes: %{name}-codemodel < %{obs_vr} +Obsoletes: %{name}-codemodel-annotation-compiler < %{obs_vr} +Obsoletes: %{name}-rngom < %{obs_vr} +Obsoletes: %{name}-txwc2 < %{obs_vr} +Obsoletes: %{name}-xjc < %{obs_vr} +Obsoletes: %{name}-xsom < %{obs_vr} +Obsoletes: %{name}-relaxng-datatype < %{obs_vr} +%endif + +%description runtime +JAXB (JSR 222) Reference Implementation + +%package txw2 +Summary: TXW2 Runtime +# Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 +Provides: glassfish-jaxb-txw2 = %{version}-%{release} +Obsoletes: glassfish-jaxb-txw2 < %{obs_vr} + +%description txw2 +TXW is a library that allows you to write XML documents. + +%package impl +Summary: Old JAXB Runtime + +%description impl +Old JAXB Runtime module. Contains sources required for runtime processing. +Standalone bundle suitable for use in OSGi runtimes. + +%if %{without jp_minimal} +%package codemodel +Summary: Codemodel Core +# Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 +Provides: glassfish-jaxb-codemodel = %{version}-%{release} +Obsoletes: glassfish-jaxb-codemodel < %{obs_vr} + +%description codemodel +The core functionality of the CodeModel java source code generation +library. + +%package codemodel-annotation-compiler +Summary: Codemodel Annotation Compiler +# Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 +Provides: glassfish-jaxb-codemodel-annotation-compiler = %{version}-%{release} +Obsoletes: glassfish-jaxb-codemodel-annotation-compiler < %{obs_vr} + +%description codemodel-annotation-compiler +The annotation compiler ant task for the CodeModel java source code +generation library. + +%package bom +Summary: JAXB BOM +# Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 +Provides: glassfish-jaxb-bom = %{version}-%{release} +Obsoletes: glassfish-jaxb-bom < %{obs_vr} + +%description bom +JAXB Bill of Materials (BOM) + +%package bom-ext +Summary: JAXB BOM with all dependencies +# Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 +Provides: glassfish-jaxb-bom-ext = %{version}-%{release} +Obsoletes: glassfish-jaxb-bom-ext < %{obs_vr} + +%description bom-ext +JAXB Bill of Materials (BOM) with all dependencies. + +%package xjc +Summary: JAXB XJC +# Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 +Provides: glassfish-jaxb-xjc = %{version}-%{release} +Obsoletes: glassfish-jaxb-xjc < %{obs_vr} + +%description xjc +JAXB Binding Compiler. Contains source code needed for binding +customization files into java sources. In other words: the tool to +generate java classes for the given xml representation. + +%package rngom +Summary: RELAX NG Object Model/Parser +# Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 +Provides: glassfish-jaxb-rngom = %{version}-%{release} +Obsoletes: glassfish-jaxb-rngom < %{obs_vr} + +%description rngom +This package contains RELAX NG Object Model/Parser. + +%package txwc2 +Summary: TXW2 Compiler +# Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 +Provides: glassfish-jaxb-txwc2 = %{version}-%{release} +Obsoletes: glassfish-jaxb-txwc2 < %{obs_vr} + +%description txwc2 +JAXB schema generator. The tool to generate XML schema based on java +classes. + +%package xsom +Summary: XML Schema Object Model +# Xsom package was merged upstream into jaxb +Provides: xsom = %{version}-%{release} +Obsoletes: xsom < 20140514-7 +Provides: xsom-javadoc = %{version}-%{release} +Obsoletes: xsom-javadoc < 20140514-7 + +%description xsom +XML Schema Object Model (XSOM) is a Java library that allows applications to +easily parse XML Schema documents and inspect information in them. It is +expected to be useful for applications that need to take XML Schema as an +input. + +%package relaxng-datatype +Summary: RelaxNG Datatype +# RelaxNG was subsumed into jaxb upstream +Provides: relaxngDatatype = 1:%{version}-%{release} +Obsoletes: relaxngDatatype < 2011.1-16 +Provides: relaxngDatatype-javadoc = 1:%{version}-%{release} +Obsoletes: relaxngDatatype-javadoc < 2011.1-16 + +%description relaxng-datatype +RelaxNG Datatype library. +%endif + +%prep +%setup -q -n jaxb-ri-%{version}-RI + +# Avoid unnecessary runtime dependency on istack commons +%patch0 -p1 + +pushd jaxb-ri + +# Remove unnecessary dep on ee4j parent pom (it adds nothing to our downstream builds) +%pom_remove_parent boms/bom codemodel external xsom + +# Fix dep on xml resolver +%pom_change_dep -r com.sun.org.apache.xml.internal:resolver xml-resolver:xml-resolver:1.2 +sed -i -e 's/com\.sun\.org\.apache\.xml\.internal\.resolver/org.apache.xml.resolver/' xjc/src/main/java/com/sun/tools/xjc/CatalogUtil.java + +# Plug-ins not useful for RPM builds +%pom_remove_plugin -r :buildnumber-maven-plugin +%pom_remove_plugin -r :maven-enforcer-plugin + +# Disable unneeded extra OSGi bundles +%pom_disable_module xjc bundles +%pom_disable_module jxc bundles +%pom_disable_module ri bundles +%pom_disable_module osgi bundles + +# Missing dep in Fedora: org.checkerframework:compiler +%pom_disable_module jxc + +%if %{with jp_minimal} +# For minimal build disable all modules with extra deps +%pom_disable_module external +%pom_disable_module compiler txw +%pom_disable_module xjc +%pom_disable_module xsom +%pom_disable_module codemodel +# Don't run tests for minimal build +%pom_remove_plugin -r :maven-failsafe-plugin +# Remove optional extra marshaller implementations for minimal build +%pom_remove_dep org.jvnet.staxex:stax-ex runtime/impl bundles/runtime +%pom_remove_dep com.sun.xml.fastinfoset:FastInfoset runtime/impl bundles/runtime +rm runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/{FastInfoset,StAXEx}Connector.java +rm runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/output/{FastInfoset,StAXEx}StreamWriterOutput.java +sed -i -e '/org.jvnet.staxex/d' -e '/com.sun.xml.fastinfoset/d' runtime/impl/src/main/java/module-info.java bundles/runtime/src/main/java/module-info.java +%endif + +# Fastinfoset and Staxex are optional deps, reflect that in OSGi metadata +sed -i -e '//aorg.jvnet.staxex;resolution:=optional,org.jvnet.fastinfoset.stax;resolution:=optional,com.sun.xml.fastinfoset.stax;resolution:=optional,' bundles/runtime/pom.xml + +# Ignore tests that require Internet connections +sed -i -e 's/void testParse/void ignoreTestParse/' xsom/src/test/java/XSOMParserTest.java +# Ignore tests that require an ancient version of javaparser (version in Fedora is too new) +%pom_remove_dep com.google.code.javaparser:javaparser codemodel/codemodel +rm codemodel/codemodel/src/test/java/com/sun/codemodel/tests/JDefinedClassInstanceInitTest.java +# Ignore tests requiring org.jmockit:jmockit which is not in Fedora +%pom_remove_dep -r org.jmockit:jmockit +rm xjc/src/test/java/com/sun/tools/xjc/addon/code_injector/PluginImplTest.java +# Missing test dep for OSGi tests +%pom_remove_plugin org.apache.felix:maven-junit4osgi-plugin bundles/runtime + +# Compatibility aliases +%mvn_alias org.glassfish.jaxb:jaxb-xjc "com.sun.xml.bind:jaxb-xjc" +%mvn_alias org.glassfish.jaxb:jaxb-runtime org.glassfish.jaxb:jaxb-core +%mvn_alias org.glassfish.jaxb:xsom com.sun.xsom:xsom +%mvn_alias com.sun.xml.bind.external:relaxng-datatype com.github.relaxng:relaxngDatatype relaxngDatatype:relaxngDatatype + +# Don't install aggregator and parent poms +%mvn_package com.sun.xml.bind.mvn: __noinstall +%mvn_package :::sources __noinstall + +%if %{with jp_minimal} +# Don't install aggregator poms or boms for minimal build +%mvn_package :jaxb-bom* __noinstall +%endif +popd + +%build +pushd jaxb-ri +%if %{with jp_minimal} +# Don't run tests for minimal build +%mvn_build -j -s -f -- -Ddev -DbuildNumber=unknown -Drelaxng.version=%{version} +%else +%mvn_build -j -s -- -Ddev -DbuildNumber=unknown -Drelaxng.version=%{version} +%endif +popd + +%install +pushd jaxb-ri +%mvn_install +popd + +%files runtime -f jaxb-ri/.mfiles-jaxb-runtime +%license LICENSE.md NOTICE.md + +%files txw2 -f jaxb-ri/.mfiles-txw2 +%license LICENSE.md NOTICE.md + +%files impl -f jaxb-ri/.mfiles-jaxb-impl +%license LICENSE.md NOTICE.md + +%if %{without jp_minimal} +%files codemodel -f jaxb-ri/.mfiles-codemodel +%license LICENSE.md NOTICE.md + +%files codemodel-annotation-compiler -f jaxb-ri/.mfiles-codemodel-annotation-compiler + +%files bom -f jaxb-ri/.mfiles-jaxb-bom +%license LICENSE.md NOTICE.md + +%files bom-ext -f jaxb-ri/.mfiles-jaxb-bom-ext + +%files xjc -f jaxb-ri/.mfiles-jaxb-xjc + +%files rngom -f jaxb-ri/.mfiles-rngom +%license LICENSE.md NOTICE.md + +%files txwc2 -f jaxb-ri/.mfiles-txwc2 +%license LICENSE.md NOTICE.md + +%files xsom -f jaxb-ri/.mfiles-xsom + +%files relaxng-datatype -f jaxb-ri/.mfiles-relaxng-datatype +%endif + +%changelog +* Thu Jul 22 2021 Fedora Release Engineering - 2.3.3-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Feb 5 2021 Mat Booth - 2.3.3-6 +- Add obsoletes/provides and compat aliases for old relaxngDatatype package + +* Tue Jan 26 2021 Fedora Release Engineering - 2.3.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Aug 18 2020 Mat Booth - 2.3.3-4 +- Restore deps on fi and stax-ex for full build mode + +* Mon Aug 17 2020 Mat Booth - 2.3.3-3 +- Add obsoletes/provides and compat aliases for old xsom package + +* Tue Aug 11 2020 Mat Booth - 2.3.3-2 +- Fastinfoset and Staxex are optional deps, this should be reflected in the OSGi + metadata + +* Tue Aug 04 2020 Mat Booth - 2.3.3-1 +- Update to latest upstream release +- Disable javadocs for now, due to https://github.com/fedora-java/xmvn/issues/58 +- Upstream moved to eclipse-ee4j and implementation license changed to BSD (EDL) +- Enable tests, don't unnecessarily ship parent poms +- Rename package from glassfish-jaxb + diff --git a/sources b/sources new file mode 100644 index 0000000..3f0dbeb --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (2.3.3-RI.tar.gz) = 32d9e5fe93aa60113c467a1561da47815510ff276d5a6aa793f247520026ce9ffb944b5f7c1e1e1ea55f8743dbe5ee8da9cc1eea4f490522621a85ef2400036c