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 27ff2d6..e8b86e9 100644
--- a/jaxb-ri/runtime/impl/src/main/java/module-info.java
+++ b/jaxb-ri/runtime/impl/src/main/java/module-info.java
@@ -35,6 +35,8 @@
     exports org.glassfish.jaxb.runtime.v2.model.runtime;
     exports org.glassfish.jaxb.runtime.v2.runtime;
     exports org.glassfish.jaxb.runtime.v2.runtime.reflect;
+    exports org.glassfish.jaxb.runtime.v2.runtime.output;
+    exports org.glassfish.jaxb.runtime.v2.runtime.property;
     exports org.glassfish.jaxb.runtime.v2.runtime.unmarshaller;
     exports org.glassfish.jaxb.runtime.v2.schemagen;
     exports org.glassfish.jaxb.runtime.v2.schemagen.xmlschema;
diff --git a/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/model/impl/ClassInfoImpl.java b/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/model/impl/ClassInfoImpl.java
index d95f2c2..0c8a90d 100644
--- a/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/model/impl/ClassInfoImpl.java
+++ b/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/model/impl/ClassInfoImpl.java
@@ -148,6 +148,7 @@
     }        
 
     @Override
+    @SuppressWarnings({"unchecked"})
     public ClassInfoImpl<T,C,F,M> getBaseClass() {
         if (!baseClassComputed) {
             // compute the base class
@@ -554,13 +555,14 @@
     /**
      * Represents 6 groups of secondary annotations
      */
+    @SuppressWarnings({"unchecked", "rawtypes"})
     private enum SecondaryAnnotation {
-        JAVA_TYPE       (0x01, XmlJavaTypeAdapter.class),
-        ID_IDREF        (0x02, XmlID.class, XmlIDREF.class),
-        BINARY          (0x04, XmlInlineBinaryData.class, XmlMimeType.class, XmlAttachmentRef.class),
-        ELEMENT_WRAPPER (0x08, XmlElementWrapper.class),
-        LIST            (0x10, XmlList.class),
-        SCHEMA_TYPE     (0x20, XmlSchemaType.class);
+        JAVA_TYPE       (0x01, new Class[] {XmlJavaTypeAdapter.class}),
+        ID_IDREF        (0x02, new Class[] {XmlID.class, XmlIDREF.class}),
+        BINARY          (0x04, new Class[] {XmlInlineBinaryData.class, XmlMimeType.class, XmlAttachmentRef.class}),
+        ELEMENT_WRAPPER (0x08, new Class[] {XmlElementWrapper.class}),
+        LIST            (0x10, new Class[] {XmlList.class}),
+        SCHEMA_TYPE     (0x20, new Class[] {XmlSchemaType.class});
 
         /**
          * Each constant gets an unique bit mask so that the presence/absence
@@ -572,8 +574,7 @@
          */
         final Class<? extends Annotation>[] members;
 
-        @SafeVarargs
-        SecondaryAnnotation(int bitMask, Class<? extends Annotation>... members) {
+        SecondaryAnnotation(int bitMask, Class<? extends Annotation>[] members) {
             this.bitMask = bitMask;
             this.members = members;
         }
diff --git a/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/runtime/output/FastInfosetStreamWriterOutput.java b/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/runtime/output/FastInfosetStreamWriterOutput.java
index 475a355..6d7436d 100644
--- a/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/runtime/output/FastInfosetStreamWriterOutput.java
+++ b/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/runtime/output/FastInfosetStreamWriterOutput.java
@@ -85,7 +85,7 @@
         
         /**
          * Create a new set of tables for a JAXB context.
-         * <p>
+         *
          * @param context the JAXB context.
          * @param initialIndexOffset the initial index offset to calculate
          *                           the maximum possible index
@@ -110,7 +110,7 @@
         
         /**
          * Clear or reset the tables.
-         * <p>
+         *
          * @param intialIndexOffset the initial index offset to calculate
          *                           the maximum possible index
          */
diff --git a/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/runtime/output/XmlOutputAbstractImpl.java b/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/runtime/output/XmlOutputAbstractImpl.java
index 35f6c59..51749ac 100644
--- a/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/runtime/output/XmlOutputAbstractImpl.java
+++ b/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/runtime/output/XmlOutputAbstractImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2022 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
@@ -26,6 +26,12 @@
  * @author Kohsuke Kawaguchi
  */
 public abstract class XmlOutputAbstractImpl implements XmlOutput {
+
+    /**
+     * Default constructor.
+     */
+    protected XmlOutputAbstractImpl() {}
+
 //
 //
 // Contracts
diff --git a/jaxb-ri/xjc/src/main/java/module-info.java b/jaxb-ri/xjc/src/main/java/module-info.java
index 040118a..e30b695 100644
--- a/jaxb-ri/xjc/src/main/java/module-info.java
+++ b/jaxb-ri/xjc/src/main/java/module-info.java
@@ -26,7 +26,7 @@
     requires transitive jakarta.xml.bind;
     requires transitive org.glassfish.jaxb.core;
     requires com.sun.istack.runtime;
-    requires com.sun.istack.tools;
+    requires transitive com.sun.istack.tools;
     requires transitive com.sun.xml.xsom;
     requires transitive com.sun.tools.rngom;
     requires com.sun.xml.dtdparser;
