clean up db platforms

Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabasePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabasePlatform.java
index 1a3ddb7..3232def 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabasePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabasePlatform.java
@@ -123,7 +123,7 @@
 public class DatabasePlatform extends DatasourcePlatform {
 
     /** Holds a map of values used to map JAVA types to database types for table creation */
-    protected transient Map<Class, FieldTypeDefinition> fieldTypes;
+    protected transient Map<Class<?>, FieldTypeDefinition> fieldTypes;
 
     /** Indicates that native SQL should be used for literal values instead of ODBC escape format
     Only used with Oracle, Sybase &amp; DB2 */
@@ -199,7 +199,7 @@
     protected boolean shouldOptimizeDataConversion;
 
     /** Stores mapping of class types to database types for schema creation. */
-    protected transient Map<String, Class> classTypes;
+    protected transient Map<String, Class<?>> classTypes;
 
     /** Allow for case in field names to be ignored as some databases are not case sensitive and when using custom this can be an issue. */
     public static boolean shouldIgnoreCaseOnFieldComparisons = false;
@@ -678,8 +678,8 @@
     /**
      * Return the mapping of class types to database types for the schema framework.
      */
-    protected Map<String, Class> buildClassTypes() {
-        Map<String, Class> classTypeMapping = new HashMap<>();
+    protected Map<String, Class<?>> buildClassTypes() {
+        Map<String, Class<?>> classTypeMapping = new HashMap<>();
         // Key the Map the other way for table creation.
         classTypeMapping.put("NUMBER", java.math.BigInteger.class);
         classTypeMapping.put("DECIMAL", java.math.BigDecimal.class);
@@ -730,10 +730,8 @@
     /**
      * Return the mapping of class types to database types for the schema framework.
      */
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-
-        fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("NUMBER", 1));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("NUMBER", 10));
@@ -1154,7 +1152,7 @@
     /**
      * Return the class type to database type mapping for the schema framework.
      */
-    public Map<String, Class> getClassTypes() {
+    public Map<String, Class<?>> getClassTypes() {
         if (classTypes == null) {
             classTypes = buildClassTypes();
         }
@@ -1229,14 +1227,14 @@
      * Return the field type object describing this databases platform specific representation
      * of the Java primitive class name.
      */
-    public FieldTypeDefinition getFieldTypeDefinition(Class javaClass) {
+    public FieldTypeDefinition getFieldTypeDefinition(Class<?> javaClass) {
         return getFieldTypes().get(javaClass);
     }
 
     /**
      * Return the class type to database type mappings for the schema framework.
      */
-    public Map<Class, FieldTypeDefinition> getFieldTypes() {
+    public Map<Class<?>, FieldTypeDefinition> getFieldTypes() {
         if (this.fieldTypes == null) {
             this.fieldTypes = buildFieldTypes();
         }
@@ -1677,8 +1675,8 @@
      * might also be useful to end users attempting to sanitize values.
      * <p><b>NOTE</b>: BigInteger &amp; BigDecimal maximums are dependent upon their precision &amp; Scale
      */
-    public Hashtable maximumNumericValues() {
-        Hashtable values = new Hashtable();
+    public Hashtable<Class<? extends Number>, ? super Number> maximumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
 
         values.put(Integer.class, Integer.MAX_VALUE);
         values.put(Long.class, Long.MAX_VALUE);
@@ -1696,8 +1694,8 @@
      * might also be useful to end users attempting to sanitize values.
      * <p><b>NOTE</b>: BigInteger &amp; BigDecimal minimums are dependent upon their precision &amp; Scale
      */
-    public Hashtable minimumNumericValues() {
-        Hashtable values = new Hashtable();
+    public Hashtable<Class<? extends Number>, ? super Number> minimumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
 
         values.put(Integer.class, Integer.MIN_VALUE);
         values.put(Long.class, Long.MIN_VALUE);
@@ -1904,7 +1902,7 @@
         castSizeForVarcharParameter = maxLength;
     }
 
-    protected void setClassTypes(Hashtable classTypes) {
+    protected void setClassTypes(Map<String, Class<?>> classTypes) {
         this.classTypes = classTypes;
     }
 
@@ -1924,7 +1922,7 @@
         this.driverName = driverName;
     }
 
-    protected void setFieldTypes(Hashtable theFieldTypes) {
+    protected void setFieldTypes(Map<Class<?>, FieldTypeDefinition> theFieldTypes) {
         fieldTypes = theFieldTypes;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatasourcePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatasourcePlatform.java
index 6e40c5e..f39e44f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatasourcePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatasourcePlatform.java
@@ -29,7 +29,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.Vector;
 
 import org.eclipse.persistence.descriptors.DescriptorQueryManager;
 import org.eclipse.persistence.exceptions.ConversionException;
@@ -72,13 +71,13 @@
     protected ValueReadQuery timestampQuery;
 
     /** Operators specific to this platform */
-    protected transient Map platformOperators;
+    protected transient Map<Integer, ExpressionOperator> platformOperators;
 
     /** Store the list of Classes that can be converted to from the key. */
-    protected Hashtable dataTypesConvertedFromAClass;
+    protected Hashtable<Class<?>, List<Class<?>>> dataTypesConvertedFromAClass;
 
     /** Store the list of Classes that can be converted from to the key. */
-    protected Hashtable dataTypesConvertedToAClass;
+    protected Hashtable<Class<?>, List<Class<?>>> dataTypesConvertedToAClass;
 
     /** Store default sequence */
     protected Sequence defaultSequence;
@@ -195,11 +194,11 @@
             setDefaultSequence(defaultSequenceClone);
         }
         if (getSequences() != null) {
-            HashMap sequencesCopy = new HashMap(getSequences());
-            HashMap sequencesDeepClone = new HashMap(getSequences().size());
-            Iterator it = sequencesCopy.values().iterator();
+            Map<String, Sequence> sequencesCopy = new HashMap<>(getSequences());
+            Map<String, Sequence> sequencesDeepClone = new HashMap<>(getSequences().size());
+            Iterator<Sequence> it = sequencesCopy.values().iterator();
             while (it.hasNext()) {
-                Sequence sequence = (Sequence)it.next();
+                Sequence sequence = it.next();
                 if ((defaultSequenceClone != null) && (sequence == getDefaultSequence())) {
                     sequencesDeepClone.put(defaultSequenceClone.getName(), defaultSequenceClone);
                 } else {
@@ -402,7 +401,7 @@
      * Initialize any platform-specific operators
      */
     protected void initializePlatformOperators() {
-        this.platformOperators = new HashMap();
+        this.platformOperators = new HashMap<>();
 
         // Outer join
         addOperator(ExpressionOperator.equalOuterJoin());
@@ -717,7 +716,7 @@
      * @param javaClass - the class that is converted from
      * @return - a vector of classes
      */
-    public List getDataTypesConvertedFrom(Class javaClass) {
+    public List<Class<?>> getDataTypesConvertedFrom(Class<?> javaClass) {
         return getConversionManager().getDataTypesConvertedFrom(javaClass);
     }
 
@@ -727,7 +726,7 @@
      * @param javaClass - the class that is converted to
      * @return - a vector of classes
      */
-    public List getDataTypesConvertedTo(Class javaClass) {
+    public List<Class<?>> getDataTypesConvertedTo(Class<?> javaClass) {
         return getConversionManager().getDataTypesConvertedTo(javaClass);
     }
 
@@ -789,18 +788,19 @@
         synchronized(sequencesLock) {
             if (isSessionConnected) {
                 if (this.sequences == null) {
-                    this.sequences = new HashMap();
+                    this.sequences = new HashMap<>();
                     this.sequences.put(sequence.getName(), sequence);
                 } else {
                     if (!this.sequences.containsKey(sequence.getName())) {
-                        Map newSequences = (Map)((HashMap)this.sequences).clone();
+                        @SuppressWarnings({"unchecked"})
+                        Map<String, Sequence> newSequences = (Map<String, Sequence>)((HashMap<String, Sequence>)this.sequences).clone();
                         newSequences.put(sequence.getName(), sequence);
                         this.sequences = newSequences;
                     }
                 }
             } else {
                 if (this.sequences == null) {
-                    this.sequences = new HashMap();
+                    this.sequences = new HashMap<>();
                 }
                 this.sequences.put(sequence.getName(), sequence);
             }
@@ -872,11 +872,11 @@
         if ((getSequences() == null) || getSequences().isEmpty()) {
             return null;
         }
-        Map sequencesCopy = new HashMap(getSequences());
-        Map sequencesToWrite = new HashMap();
-        Iterator it = sequencesCopy.values().iterator();
+        Map<String, Sequence> sequencesCopy = new HashMap<>(getSequences());
+        Map<String, Sequence> sequencesToWrite = new HashMap<>();
+        Iterator<Sequence> it = sequencesCopy.values().iterator();
         while (it.hasNext()) {
-            Sequence sequence = (Sequence)it.next();
+            Sequence sequence = it.next();
             if (!(sequence instanceof DefaultSequence) || ((DefaultSequence)sequence).hasPreallocationSize()) {
                 sequencesToWrite.put(sequence.getName(), sequence);
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractTransformationMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractTransformationMapping.java
index 2c18686..a96f78d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractTransformationMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractTransformationMapping.java
@@ -850,9 +850,9 @@
                 } else if (field.getColumnDefinition() != null) {
                     // Search for the type for this field definition.
                     if (session.getDatasourcePlatform() instanceof DatabasePlatform) {
-                        Iterator<Map.Entry<Class, FieldTypeDefinition>> iterator = session.getPlatform().getFieldTypes().entrySet().iterator();
+                        Iterator<Map.Entry<Class<?>, FieldTypeDefinition>> iterator = session.getPlatform().getFieldTypes().entrySet().iterator();
                         while (iterator.hasNext()) {
-                            Map.Entry<Class, FieldTypeDefinition> entry = iterator.next();
+                            Map.Entry<Class<?>, FieldTypeDefinition> entry = iterator.next();
                             if (entry.getValue().getName().equals(field.getColumnDefinition())) {
                                 field.setType(entry.getKey());
                                 break;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/AccessPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/AccessPlatform.java
index 3c33402..938c8c1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/AccessPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/AccessPlatform.java
@@ -30,9 +30,17 @@
  * @since TOPLink/Java 1.0
  */
 public class AccessPlatform extends org.eclipse.persistence.platform.database.DatabasePlatform {
+
+    /**
+     * Default constructor.
+     */
+    public AccessPlatform() {
+        super();
+    }
+
     @Override
-    protected Map<String, Class> buildClassTypes() {
-        Map<String, Class> classTypeMapping = super.buildClassTypes();
+    protected Map<String, Class<?>> buildClassTypes() {
+        Map<String, Class<?>> classTypeMapping = super.buildClassTypes();
 
         // In access LONG means numeric not CLOB like in Oracle
         classTypeMapping.put("LONG", Long.class);
@@ -42,10 +50,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-
-        fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("BIT", false));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("LONG", false));
@@ -121,8 +127,8 @@
      * <p><b>NOTE</b>: BigInteger {@literal &} BigDecimal maximums are dependent upon their precision {@literal &} Scale
      */
     @Override
-    public Hashtable maximumNumericValues() {
-        Hashtable values = new Hashtable();
+    public Hashtable<Class<? extends Number>, ? super Number> maximumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
 
         values.put(Integer.class, Integer.MAX_VALUE);
         values.put(Long.class, Long.MAX_VALUE);
@@ -141,8 +147,8 @@
      * <p><b>NOTE</b>: BigInteger {@literal &} BigDecimal minimums are dependent upon their precision {@literal &} Scale
      */
     @Override
-    public Hashtable minimumNumericValues() {
-        Hashtable values = new Hashtable();
+    public Hashtable<Class<? extends Number>, ? super Number> minimumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
 
         values.put(Integer.class, Integer.MIN_VALUE);
         values.put(Long.class, Long.MIN_VALUE);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/AttunityPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/AttunityPlatform.java
index 35e1de9..154e342 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/AttunityPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/AttunityPlatform.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -35,10 +35,8 @@
      *  @return java.util.Hashtable
      */
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-
-        fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("TINYINT", false));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("NUMERIC", 10));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/CloudscapePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/CloudscapePlatform.java
index 64b9811..f3b705e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/CloudscapePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/CloudscapePlatform.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -26,13 +26,18 @@
 public class CloudscapePlatform extends org.eclipse.persistence.platform.database.DatabasePlatform {
 
     /**
+     * Default constructor.
+     */
+    public CloudscapePlatform() {
+        super();
+    }
+
+    /**
      * seems compatible with informix
      */
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-
-        fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("SMALLINT default 0", false));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("INTEGER", false));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2MainframePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2MainframePlatform.java
index de5bce1..1368448 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2MainframePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2MainframePlatform.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -71,8 +71,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable<Class<?>, Object> res = super.buildFieldTypes();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> res = super.buildFieldTypes();
         if (getUseNationalCharacterVaryingTypeForString()) {
             res.put(String.class, new FieldTypeDefinition("VARCHAR", DEFAULT_VARCHAR_SIZE));
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2Platform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2Platform.java
index 0c2ac95..1f256d2 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2Platform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2Platform.java
@@ -287,8 +287,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
 
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("SMALLINT DEFAULT 0", false));
 
@@ -496,8 +496,8 @@
      * precision {@literal &} Scale
      */
     @Override
-    public Hashtable maximumNumericValues() {
-        Hashtable values = new Hashtable();
+    public Hashtable<Class<? extends Number>, ? super Number> maximumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
 
         values.put(Integer.class, Integer.MAX_VALUE);
         values.put(Long.class, (long) Integer.MAX_VALUE);
@@ -520,8 +520,8 @@
      * precision {@literal &} Scale
      */
     @Override
-    public Hashtable minimumNumericValues() {
-        Hashtable values = new Hashtable();
+    public Hashtable<Class<? extends Number>, ? super Number> minimumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
 
         values.put(Integer.class, Integer.MIN_VALUE);
         values.put(Long.class, (long) Integer.MIN_VALUE);
@@ -566,7 +566,7 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Concat);
-        Vector v = new Vector(5);
+        Vector<String> v = new Vector<>(5);
         v.add("VARCHAR(");
         v.add(" || ");
         v.add(")");
@@ -584,7 +584,7 @@
         ExpressionOperator operator = new ExpressionOperator();
         operator.setType(ExpressionOperator.FunctionOperator);
         operator.setSelector(ExpressionOperator.LeftTrim2);
-        Vector v = new Vector(5);
+        Vector<String> v = new Vector<>(5);
         v.add("TRIM(LEADING ");
         v.add(" FROM ");
         v.add(")");
@@ -606,7 +606,7 @@
         ExpressionOperator operator = new ExpressionOperator();
         operator.setType(ExpressionOperator.FunctionOperator);
         operator.setSelector(ExpressionOperator.RightTrim2);
-        Vector v = new Vector(5);
+        Vector<String> v = new Vector<>(5);
         v.add("TRIM(TRAILING ");
         v.add(" FROM ");
         v.add(")");
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2ZPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2ZPlatform.java
index b6e2b5c..a09f8dd 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2ZPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2ZPlatform.java
@@ -68,8 +68,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable<Class<?>, Object> res = super.buildFieldTypes();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> res = super.buildFieldTypes();
         if (getUseNationalCharacterVaryingTypeForString()) {
             res.put(String.class, new FieldTypeDefinition("VARCHAR", DEFAULT_VARCHAR_SIZE));
         }
@@ -200,6 +200,7 @@
             Class<?> clazz = null;
             Method method = null;
             String methodName = "registerJccOutParameterAtName";
+            @SuppressWarnings({"rawtypes"})
             Class<?>[] methodArgs = (Class<?>[]) new Class[] {String.class, int.class, String.class};
             Object[] parameters = new Object[] {name, jdbcType, typeName};
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
@@ -230,6 +231,7 @@
     }
 
     @Override
+    @SuppressWarnings({"rawtypes"})
     public void setParameterValueInDatabaseCall(Object parameter,
             CallableStatement statement, String name, AbstractSession session)
             throws SQLException {
@@ -430,6 +432,7 @@
     }
 
     @Override
+    @SuppressWarnings({"rawtypes"})
     protected void setNullFromDatabaseField(DatabaseField databaseField, CallableStatement statement, String name) throws SQLException {
         String methodName = null;
         Class<?>[] methodArgs = null;
@@ -477,6 +480,7 @@
     }
 
     @Override
+    @SuppressWarnings({"rawtypes"})
     public Object getParameterValueFromDatabaseCall(CallableStatement statement, String name, AbstractSession session)
                 throws SQLException {
         String methodName = null;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DBasePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DBasePlatform.java
index b8f8a82..b0bd1c0 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DBasePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DBasePlatform.java
@@ -33,11 +33,17 @@
  * @since TOPLink/Java 1.0
  */
 public class DBasePlatform extends org.eclipse.persistence.platform.database.DatabasePlatform {
-    @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
 
-        fieldTypeMapping = new Hashtable();
+    /**
+     * Default constructor.
+     */
+    public DBasePlatform() {
+        super();
+    }
+
+    @Override
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("NUMBER", 1));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("NUMBER", 11));
@@ -134,8 +140,8 @@
      * <p><b>NOTE</b>: BigInteger {@literal &} BigDecimal minimums are dependent upon their precision {@literal &} Scale
      */
     @Override
-    public Hashtable maximumNumericValues() {
-        Hashtable values = new Hashtable();
+    public Hashtable<Class<? extends Number>, ? super Number> maximumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
 
         values.put(Integer.class, Integer.MAX_VALUE);
         values.put(Long.class, Long.valueOf("922337203685478000"));
@@ -154,8 +160,8 @@
      * <p><b>NOTE</b>: BigInteger {@literal &} BigDecimal minimums are dependent upon their precision {@literal &} Scale
      */
     @Override
-    public Hashtable minimumNumericValues() {
-        Hashtable values = new Hashtable();
+    public Hashtable<Class<? extends Number>, ? super Number> minimumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
 
         values.put(Integer.class, Integer.MIN_VALUE);
         values.put(Long.class, Long.valueOf("-922337203685478000"));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DerbyPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DerbyPlatform.java
index d4c7c04..db2e86e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DerbyPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DerbyPlatform.java
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2005, 2020 Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2005, 2020 IBM Corporation. All rights reserved.
+ * Copyright (c) 2005, 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2021 IBM Corporation. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -28,11 +28,12 @@
 import org.eclipse.persistence.internal.helper.ClassConstants;
 import org.eclipse.persistence.internal.helper.DatabaseTable;
 import org.eclipse.persistence.internal.helper.Helper;
-import org.eclipse.persistence.internal.helper.NonSynchronizedVector;
 import org.eclipse.persistence.exceptions.ValidationException;
 import org.eclipse.persistence.expressions.ExpressionOperator;
 import org.eclipse.persistence.queries.ValueReadQuery;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Vector;
 import java.io.Writer;
 import java.io.IOException;
@@ -282,8 +283,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
 
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("SMALLINT DEFAULT 0", false));
 
@@ -350,7 +351,7 @@
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Extract);
         exOperator.setName("EXTRACT");
-        Vector v = NonSynchronizedVector.newInstance(5);
+        List<String> v = new ArrayList<>(5);
         v.add("");
         v.add("(");
         v.add(")");
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/FirebirdPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/FirebirdPlatform.java
index 835800a..5ba2a9c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/FirebirdPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/FirebirdPlatform.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -35,8 +35,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping = super.buildFieldTypes();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = super.buildFieldTypes();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("SMALLINT", false));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("INTEGER", false));
@@ -170,10 +170,10 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.SubstringSingleArg);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(5);
-        v.addElement("SUBSTRING(");
-        v.addElement(" FROM ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(5);
+        v.add("SUBSTRING(");
+        v.add(" FROM ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = {0, 1};
@@ -191,11 +191,11 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Substring);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(5);
-        v.addElement("SUBSTRING(");
-        v.addElement(" FROM ");
-        v.addElement(" FOR ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(5);
+        v.add("SUBSTRING(");
+        v.add(" FROM ");
+        v.add(" FOR ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = {0, 1, 2};
@@ -213,12 +213,12 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Greatest);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(5);
-        v.addElement("(CASE WHEN ");
-        v.addElement(" >= ");
-        v.addElement(" THEN ");
-        v.addElement(" ELSE ");
-        v.addElement(" END)");
+        List<String> v = new ArrayList<>(5);
+        v.add("(CASE WHEN ");
+        v.add(" >= ");
+        v.add(" THEN ");
+        v.add(" ELSE ");
+        v.add(" END)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = {0, 1, 0, 1};
@@ -236,9 +236,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.LeftTrim);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(5);
-        v.addElement("TRIM(LEADING FROM ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(5);
+        v.add("TRIM(LEADING FROM ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = {0};
@@ -256,9 +256,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.RightTrim);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(5);
-        v.addElement("TRIM(TRAILING FROM ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(5);
+        v.add("TRIM(TRAILING FROM ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = {0};
@@ -276,10 +276,10 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.RightTrim2);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(5);
-        v.addElement("TRIM(TRAILING ");
-        v.addElement(" FROM ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(5);
+        v.add("TRIM(TRAILING ");
+        v.add(" FROM ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = {1, 0};
@@ -296,9 +296,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.ToNumber);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("CAST(");
-        v.addElement(" AS NUMERIC)");
+        List<String> v = new ArrayList<>(2);
+        v.add("CAST(");
+        v.add(" AS NUMERIC)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -313,10 +313,10 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.MonthsBetween);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("(MONTH(");
-        v.addElement(") - MONTH(");
-        v.addElement("))");
+        List<String> v = new ArrayList<>(2);
+        v.add("(MONTH(");
+        v.add(") - MONTH(");
+        v.add("))");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/H2Platform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/H2Platform.java
index a18ee06..d8eb4c2 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/H2Platform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/H2Platform.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -81,8 +81,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping = super.buildFieldTypes();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = super.buildFieldTypes();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("BOOLEAN", false));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("INTEGER", false));
@@ -235,9 +235,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.ToNumber);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("CONVERT(");
-        v.addElement(",DECIMAL)");
+        List<String> v = new ArrayList<>(2);
+        v.add("CONVERT(");
+        v.add(",DECIMAL)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -252,10 +252,10 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.MonthsBetween);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("(MONTH(");
-        v.addElement(") - MONTH(");
-        v.addElement("))");
+        List<String> v = new ArrayList<>(2);
+        v.add("(MONTH(");
+        v.add(") - MONTH(");
+        v.add("))");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/HANAPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/HANAPlatform.java
index 75cd931..f17ee83 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/HANAPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/HANAPlatform.java
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2019 IBM Corporation. All rights reserved.
- * Copyright (c) 2012, 2019 SAP. All rights reserved.
+ * Copyright (c) 2012, 2021 SAP. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -32,9 +32,10 @@
 import java.sql.Statement;
 import java.sql.Time;
 import java.sql.Timestamp;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Hashtable;
-import java.util.Vector;
+import java.util.List;
 
 import org.eclipse.persistence.expressions.ExpressionOperator;
 import org.eclipse.persistence.internal.databaseaccess.DatabaseCall;
@@ -45,7 +46,6 @@
 import org.eclipse.persistence.internal.helper.ClassConstants;
 import org.eclipse.persistence.internal.helper.DatabaseTable;
 import org.eclipse.persistence.internal.helper.Helper;
-import org.eclipse.persistence.internal.helper.NonSynchronizedVector;
 import org.eclipse.persistence.internal.sessions.AbstractSession;
 import org.eclipse.persistence.queries.ReadQuery;
 import org.eclipse.persistence.queries.ValueReadQuery;
@@ -134,8 +134,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        final Hashtable<Class, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        final Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("SMALLINT", false)); // TODO
                                                                                          // boolean
         fieldTypeMapping.put(Number.class, new FieldTypeDefinition("DOUBLE", false));
@@ -262,9 +262,9 @@
     private static ExpressionOperator createLogOperator() {
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.Log);
-        Vector v = NonSynchronizedVector.newInstance(2);
-        v.addElement("LOG(10,");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(2);
+        v.add("LOG(10,");
+        v.add(")");
         result.printsAs(v);
         result.bePrefix();
         result.setNodeClass(FunctionExpression.class);
@@ -305,11 +305,11 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.NullIf);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(4);
-        v.addElement(" (CASE WHEN ");
-        v.addElement(" = ");
-        v.addElement(" THEN NULL ELSE ");
-        v.addElement(" END) ");
+        List<String> v = new ArrayList<>(4);
+        v.add(" (CASE WHEN ");
+        v.add(" = ");
+        v.add(" THEN NULL ELSE ");
+        v.add(" END) ");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = { 0, 1, 0 };
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/HSQLPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/HSQLPlatform.java
index 087fa00..18fd1e8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/HSQLPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/HSQLPlatform.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -57,10 +57,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-
-        fieldTypeMapping = super.buildFieldTypes();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = super.buildFieldTypes();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("BOOLEAN", false));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("INTEGER", false));
@@ -111,9 +109,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.ToNumber);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("CONVERT(");
-        v.addElement(",DECIMAL)");
+        List<String> v = new ArrayList<>(2);
+        v.add("CONVERT(");
+        v.add(",DECIMAL)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -128,9 +126,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Trim);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("TRIM(FROM ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(2);
+        v.add("TRIM(FROM ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -146,10 +144,10 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.RightTrim2);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(5);
-        v.addElement("TRIM(TRAILING ");
-        v.addElement(" FROM ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(5);
+        v.add("TRIM(TRAILING ");
+        v.add(" FROM ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = {1, 0};
@@ -167,12 +165,12 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Greatest);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(5);
-        v.addElement("CASEWHEN(");
-        v.addElement(" >= ");
-        v.addElement(", ");
-        v.addElement(", ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(5);
+        v.add("CASEWHEN(");
+        v.add(" >= ");
+        v.add(", ");
+        v.add(", ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = {0, 1, 0, 1};
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/InformixPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/InformixPlatform.java
index 9952e59..85731f6 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/InformixPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/InformixPlatform.java
@@ -45,6 +45,13 @@
 public class InformixPlatform extends org.eclipse.persistence.platform.database.DatabasePlatform {
 
 
+    /**
+     * Default constructor.
+     */
+    public InformixPlatform() {
+        super();
+    }
+
     @Override
     public void initializeConnectionData(Connection connection) throws SQLException {
 
@@ -141,10 +148,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-
-        fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("SMALLINT default 0", false));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("INTEGER", false));
@@ -239,9 +244,8 @@
      * <p><b>NOTE</b>: BigInteger {@literal &} BigDecimal maximums are dependent upon their precision {@literal &} Scale
      */
     @Override
-    public Hashtable maximumNumericValues() {
-        Hashtable values = new Hashtable();
-
+    public Hashtable<Class<? extends Number>, ? super Number> maximumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
         values.put(Integer.class, Integer.MAX_VALUE);
         values.put(Long.class, Long.MAX_VALUE);
         values.put(Double.class, (double) Float.MAX_VALUE);
@@ -259,9 +263,8 @@
      * <p><b>NOTE</b>: BigInteger {@literal &} BigDecimal minimums are dependent upon their precision {@literal &} Scale
      */
     @Override
-    public Hashtable minimumNumericValues() {
-        Hashtable values = new Hashtable();
-
+    public Hashtable<Class<? extends Number>, ? super Number> minimumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
         values.put(Integer.class, Integer.MIN_VALUE);
         values.put(Long.class, Long.MIN_VALUE);
         values.put(Double.class, 1.4012984643247149E-44);// The double values are weird. They lose precision at E-45
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/JavaDBPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/JavaDBPlatform.java
index 6282369..72908bf 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/JavaDBPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/JavaDBPlatform.java
@@ -25,4 +25,11 @@
     // The only purpose of this class is to allow use of JavaDBPlatform as a
     // synonym for DerbyPlatform
     // All the Derby specific code should be added to DerbyPlatform
+
+    /**
+     * Default constructor.
+     */
+    public JavaDBPlatform() {
+        super();
+    }
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MaxDBPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MaxDBPlatform.java
index 3b6e9e4..787fcd9 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MaxDBPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MaxDBPlatform.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2021 Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2009, 2018 Markus Karg, SAP. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -25,8 +25,9 @@
 import java.sql.Date;
 import java.sql.Time;
 import java.sql.Timestamp;
+import java.util.ArrayList;
 import java.util.Hashtable;
-import java.util.Vector;
+import java.util.List;
 
 import org.eclipse.persistence.expressions.ExpressionOperator;
 import org.eclipse.persistence.expressions.ListExpressionOperator;
@@ -113,8 +114,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        final Hashtable<Class, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        final Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("SMALLINT", false)); // TODO boolean
         fieldTypeMapping.put(Number.class, new FieldTypeDefinition("DOUBLE PRECISION", false));
         fieldTypeMapping.put(Short.class, new FieldTypeDefinition("SMALLINT", false));
@@ -239,11 +240,11 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.NullIf);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(4);
-        v.addElement(" (CASE WHEN ");
-        v.addElement(" = ");
-        v.addElement(" THEN NULL ELSE ");
-        v.addElement(" END) ");
+        List<String> v = new ArrayList<>(4);
+        v.add(" (CASE WHEN ");
+        v.add(" = ");
+        v.add(" THEN NULL ELSE ");
+        v.add(" END) ");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = {0, 1, 0};
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MySQLPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MySQLPlatform.java
index 4b64e49..eac34dc 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MySQLPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MySQLPlatform.java
@@ -33,9 +33,11 @@
 import java.sql.DatabaseMetaData;
 import java.sql.SQLException;
 import java.sql.Types;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Collection;
 import java.util.Hashtable;
+import java.util.List;
 import java.util.Vector;
 
 import org.eclipse.persistence.exceptions.ValidationException;
@@ -166,10 +168,8 @@
      * Return the mapping of class types to database types for the schema framework.
      */
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-
-        fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("TINYINT(1) default 0", false));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("INTEGER", false));
@@ -403,9 +403,9 @@
     protected ExpressionOperator logOperator() {
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.Log);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("LOG(10, ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(2);
+        v.add("LOG(10, ");
+        v.add(")");
         result.printsAs(v);
         result.bePrefix();
         result.setNodeClass(FunctionExpression.class);
@@ -421,9 +421,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.ToNumber);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("CONVERT(");
-        v.addElement(", SIGNED)");
+        List<String> v = new ArrayList<>(2);
+        v.add("CONVERT(");
+        v.add(", SIGNED)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -438,9 +438,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.ToDate);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("CONVERT(");
-        v.addElement(", DATETIME)");
+        List<String> v = new ArrayList<>(2);
+        v.add("CONVERT(");
+        v.add(", DATETIME)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -455,9 +455,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.ToChar);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("CONVERT(");
-        v.addElement(", CHAR)");
+        List<String> v = new ArrayList<>(2);
+        v.add("CONVERT(");
+        v.add(", CHAR)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -472,9 +472,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.DateToString);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("CONVERT(");
-        v.addElement(", CHAR)");
+        List<String> v = new ArrayList<>(2);
+        v.add("CONVERT(");
+        v.add(", CHAR)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -490,10 +490,10 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.LeftTrim2);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(5);
-        v.addElement("TRIM(LEADING ");
-        v.addElement(" FROM ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(5);
+        v.add("TRIM(LEADING ");
+        v.add(" FROM ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = {1, 0};
@@ -511,10 +511,10 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.RightTrim2);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(5);
-        v.addElement("TRIM(TRAILING ");
-        v.addElement(" FROM ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(5);
+        v.add("TRIM(TRAILING ");
+        v.add(" FROM ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = {1, 0};
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/Oracle8Platform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/Oracle8Platform.java
index a5b3809..5b66b59 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/Oracle8Platform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/Oracle8Platform.java
@@ -50,11 +50,18 @@
     protected int lobValueLimits = 0;
 
     /**
+     * Default constructor.
+     */
+    public Oracle8Platform() {
+        super();
+    }
+
+    /**
      * INTERNAL:
      */
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping = super.buildFieldTypes();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = super.buildFieldTypes();
 
         fieldTypeMapping.put(Byte[].class, new FieldTypeDefinition("BLOB", false));
         fieldTypeMapping.put(Character[].class, new FieldTypeDefinition("CLOB", false));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/OraclePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/OraclePlatform.java
index 7b9dcbc..e0e81d8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/OraclePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/OraclePlatform.java
@@ -41,6 +41,7 @@
 import java.util.Calendar;
 import java.util.Hashtable;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Vector;
 import java.util.regex.Pattern;
 
@@ -59,7 +60,6 @@
 import org.eclipse.persistence.internal.helper.DatabaseField;
 import org.eclipse.persistence.internal.helper.DatabaseTable;
 import org.eclipse.persistence.internal.helper.Helper;
-import org.eclipse.persistence.internal.helper.NonSynchronizedVector;
 import org.eclipse.persistence.internal.localization.ExceptionLocalization;
 import org.eclipse.persistence.internal.sessions.AbstractSession;
 import org.eclipse.persistence.internal.sessions.DatabaseSessionImpl;
@@ -214,10 +214,8 @@
      * INTERNAL:
      */
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-
-        fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("NUMBER(1) default 0", false));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("NUMBER", 10));
@@ -621,14 +619,14 @@
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.Regexp);
         result.setType(ExpressionOperator.FunctionOperator);
-        Vector v = NonSynchronizedVector.newInstance(3);
+        List<String> v = new ArrayList<>(3);
         v.add("REGEXP_LIKE(");
         v.add(", ");
         v.add(")");
         result.printsAs(v);
         result.bePrefix();
         result.setNodeClass(ClassConstants.FunctionExpression_Class);
-        v = NonSynchronizedVector.newInstance(2);
+        v = new ArrayList<>(2);
         v.add(".regexp(");
         v.add(")");
         result.printsJavaAs(v);
@@ -656,9 +654,9 @@
     protected ExpressionOperator logOperator() {
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.Log);
-        Vector v = NonSynchronizedVector.newInstance(2);
-        v.addElement("LOG(10,");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(2);
+        v.add("LOG(10,");
+        v.add(")");
         result.printsAs(v);
         result.bePrefix();
         result.setNodeClass(FunctionExpression.class);
@@ -672,9 +670,8 @@
      * <p><b>NOTE</b>: BigInteger {@literal &} BigDecimal maximums are dependent upon their precision {@literal &} Scale
      */
     @Override
-    public Hashtable maximumNumericValues() {
-        Hashtable values = new Hashtable();
-
+    public Hashtable<Class<? extends Number>, ? super Number> maximumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
         values.put(Integer.class, Integer.MAX_VALUE);
         values.put(Long.class, Long.MAX_VALUE);
         values.put(Double.class, 9.9999E125);
@@ -692,9 +689,8 @@
      * <p><b>NOTE</b>: BigInteger {@literal &} BigDecimal minimums are dependent upon their precision {@literal &} Scale
      */
     @Override
-    public Hashtable minimumNumericValues() {
-        Hashtable values = new Hashtable();
-
+    public Hashtable<Class<? extends Number>, ? super Number> minimumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
         values.put(Integer.class, Integer.MIN_VALUE);
         values.put(Long.class, Long.MIN_VALUE);
         values.put(Double.class, -1E-129);
@@ -734,8 +730,8 @@
     protected ExpressionOperator operatorOuterJoin() {
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.EqualOuterJoin);
-        Vector v = NonSynchronizedVector.newInstance(2);
-        v.addElement(" (+) = ");
+        List<String> v = new ArrayList<>(2);
+        v.add(" (+) = ");
         result.printsAs(v);
         result.bePostfix();
         result.setNodeClass(RelationExpression.class);
@@ -750,10 +746,10 @@
     protected ExpressionOperator operatorLocate() {
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.Locate);
-        Vector v = NonSynchronizedVector.newInstance(2);
-        v.addElement("INSTR(");
-        v.addElement(", ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(2);
+        v.add("INSTR(");
+        v.add(", ");
+        v.add(")");
         result.printsAs(v);
         result.bePrefix();
         result.setNodeClass(RelationExpression.class);
@@ -767,11 +763,11 @@
     protected ExpressionOperator operatorLocate2() {
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.Locate2);
-        Vector v = NonSynchronizedVector.newInstance(2);
-        v.addElement("INSTR(");
-        v.addElement(", ");
-        v.addElement(", ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(2);
+        v.add("INSTR(");
+        v.add(", ");
+        v.add(", ");
+        v.add(")");
         result.printsAs(v);
         result.bePrefix();
         result.setNodeClass(RelationExpression.class);
@@ -1062,10 +1058,10 @@
     @SuppressWarnings("unchecked")
     // Bug #453208 - Duplicate call parameters since the query is performed twice
     private void duplicateCallParameters(DatabaseCall call) {
-        ArrayList newParameterList = new ArrayList(call.getParameters());
+        List newParameterList = new ArrayList(call.getParameters());
         newParameterList.addAll(call.getParameters());
         call.setParameters(newParameterList);
-        ArrayList<Integer> newParameterTypesList = new ArrayList(call.getParameterTypes());
+        List<Integer> newParameterTypesList = new ArrayList<>(call.getParameterTypes());
         newParameterTypesList.addAll(call.getParameterTypes());
         call.setParameterTypes(newParameterTypesList);
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PervasivePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PervasivePlatform.java
index 1f5b7eb..2c0d86c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PervasivePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PervasivePlatform.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2020 Oracle and/or its affiliates. All Rights Reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All Rights Reserved.
  * Copyright (c) 2012, 2018 Pervasive Software Inc. All Rights Reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -27,9 +27,10 @@
 
 import java.io.IOException;
 import java.io.Writer;
+import java.util.ArrayList;
 import java.util.Hashtable;
+import java.util.List;
 import java.util.Map;
-import java.util.Vector;
 
 import org.eclipse.persistence.exceptions.ValidationException;
 import org.eclipse.persistence.expressions.ExpressionOperator;
@@ -73,12 +74,19 @@
 
     public static final int DEFAULT_CHAR_SIZE = 80;
 
+    /**
+     * Default constructor.
+     */
+    public PervasivePlatform() {
+        super();
+    }
+
     //
     // Cloned from AccessPlatform.java
     //
     @Override
-    protected Map<String, Class> buildClassTypes() {
-        Map<String, Class> classTypeMapping = super.buildClassTypes();
+    protected Map<String, Class<?>> buildClassTypes() {
+        Map<String, Class<?>> classTypeMapping = super.buildClassTypes();
 
         // Causes BLOB to translate to LONGVARBINARY(via java.sql.Blob) instead of BINARY (via Byte[])
         classTypeMapping.put("BLOB", java.sql.Blob.class);
@@ -86,12 +94,9 @@
         return classTypeMapping;
     }
 
-
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-
-        fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(String.class, new FieldTypeDefinition("VARCHAR", DEFAULT_CHAR_SIZE));
         // fieldTypeMapping.put(java.math.BigDecimal.class, new FieldTypeDefinition("BIGINT", false));
         fieldTypeMapping.put(java.math.BigInteger.class, new FieldTypeDefinition("BIGINT", false));
@@ -236,9 +241,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.ToNumber);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("CONVERT(");
-        v.addElement(", SQL_NUMERIC)");
+        List<String> v = new ArrayList<>(2);
+        v.add("CONVERT(");
+        v.add(", SQL_NUMERIC)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -252,9 +257,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.ToDate);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("CONVERT(");
-        v.addElement(", DATETIME)");
+        List<String> v = new ArrayList<>(2);
+        v.add("CONVERT(");
+        v.add(", DATETIME)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -268,9 +273,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.ToChar);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("CONVERT(");
-        v.addElement(", SQL_CHAR)");
+        List<String> v = new ArrayList<>(2);
+        v.add("CONVERT(");
+        v.add(", SQL_CHAR)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -285,9 +290,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.DateToString);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("CONVERT(");
-        v.addElement(", SQL_CHAR)");
+        List<String> v = new ArrayList<>(2);
+        v.add("CONVERT(");
+        v.add(", SQL_CHAR)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -336,11 +341,11 @@
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.SubstringSingleArg);
         result.setType(ExpressionOperator.FunctionOperator);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
-        v.addElement("SUBSTRING(");
-        v.addElement(",");
-        v.addElement(", CHAR_LENGTH(");
-        v.addElement("))");
+        List<String> v = new ArrayList<>();
+        v.add("SUBSTRING(");
+        v.add(",");
+        v.add(", CHAR_LENGTH(");
+        v.add("))");
         result.printsAs(v);
         int[] indices = new int[3];
         indices[0] = 0;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PointBasePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PointBasePlatform.java
index beee41e..ae5ed96 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PointBasePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PointBasePlatform.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -26,6 +26,13 @@
 public class PointBasePlatform extends org.eclipse.persistence.platform.database.DatabasePlatform {
 
     /**
+     * Default constructor.
+     */
+    public PointBasePlatform() {
+        super();
+    }
+
+    /**
      * Appends a Boolean value as true/false instead of 0/1
      */
     @Override
@@ -58,8 +65,8 @@
     }
 
     @Override
-    protected Map<String, Class> buildClassTypes() {
-        Map<String, Class> classTypeMapping = super.buildClassTypes();
+    protected Map<String, Class<?>> buildClassTypes() {
+        Map<String, Class<?>> classTypeMapping = super.buildClassTypes();
 
         classTypeMapping.put("FLOAT", Double.class);
         classTypeMapping.put("DOUBLE PRECISION", Double.class);
@@ -72,10 +79,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-
-        fieldTypeMapping = super.buildFieldTypes();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = super.buildFieldTypes();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("BOOLEAN"));
 
         fieldTypeMapping.put(Long.class, new FieldTypeDefinition("NUMERIC", 19));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PostgreSQLPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PostgreSQLPlatform.java
index 8e6885a..29ffa90 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PostgreSQLPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PostgreSQLPlatform.java
@@ -141,14 +141,14 @@
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.Regexp);
         result.setType(ExpressionOperator.FunctionOperator);
-        Vector v = NonSynchronizedVector.newInstance(3);
+        List<String> v = new ArrayList<>(3);
         v.add("");
         v.add(" ~ ");
         v.add("");
         result.printsAs(v);
         result.bePrefix();
         result.setNodeClass(ClassConstants.FunctionExpression_Class);
-        v = NonSynchronizedVector.newInstance(2);
+        v = new ArrayList<>(2);
         v.add(".regexp(");
         v.add(")");
         result.printsJavaAs(v);
@@ -162,9 +162,9 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.ToNumber);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement("TO_NUMBER(");
-        v.addElement(", '999999999.9999')");
+        List<String> v = new ArrayList<>(2);
+        v.add("TO_NUMBER(");
+        v.add(", '999999999.9999')");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -305,8 +305,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
 
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("BOOLEAN", false));
 
@@ -349,7 +349,7 @@
     protected ExpressionOperator operatorLocate() {
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.Locate);
-        Vector v = new Vector(3);
+        Vector<String> v = new Vector<>(3);
         v.addElement("STRPOS(");
         v.addElement(", ");
         v.addElement(")");
@@ -365,7 +365,7 @@
     protected ExpressionOperator operatorLocate2() {
         ExpressionOperator operator = new ExpressionOperator();
         operator.setSelector(ExpressionOperator.Locate2);
-        Vector v = NonSynchronizedVector.newInstance(2);
+        List<String> v = new ArrayList<>(2);
         v.add("COALESCE(NULLIF(STRPOS(SUBSTRING(");
         v.add(" FROM ");
         v.add("), ");
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SQLAnywherePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SQLAnywherePlatform.java
index 8917a2d..e1c7384 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SQLAnywherePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SQLAnywherePlatform.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2008 Markus KARG(markus-karg@users.sourceforge.net).
  *
  * This program and the accompanying materials are made available under the
@@ -72,8 +72,8 @@
         return fieldTypeMapping;
     }*/
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping = super.buildFieldTypes();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = super.buildFieldTypes();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("BIT", false));
         return fieldTypeMapping;
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SQLServerPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SQLServerPlatform.java
index f363638..4608b89 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SQLServerPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SQLServerPlatform.java
@@ -196,10 +196,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-
-        fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("BIT default 0", false));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("INTEGER", false));
@@ -489,7 +487,7 @@
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Extract);
         exOperator.setName("EXTRACT");
-        Vector v = NonSynchronizedVector.newInstance(5);
+        List<String> v = new ArrayList<>(5);
         v.add("DATEPART(");
         v.add(",");
         v.add(")");
@@ -511,7 +509,7 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Trim);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
+        List<String> v = new ArrayList<>(2);
         v.add("RTRIM(LTRIM(");
         v.add("))");
         exOperator.printsAs(v);
@@ -528,7 +526,7 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Trim2);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(5);
+        List<String> v = new ArrayList<>(5);
         v.add("RTRIM(");
         v.add(" FROM LTRIM(");
         v.add(" FROM ");
@@ -563,9 +561,8 @@
      * <p><b>NOTE</b>: BigInteger {@literal &} BigDecimal maximums are dependent upon their precision {@literal &} Scale
      */
     @Override
-    public Hashtable maximumNumericValues() {
-        Hashtable values = new Hashtable();
-
+    public Hashtable<Class<? extends Number>, ? super Number> maximumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
         values.put(Integer.class, Integer.MAX_VALUE);
         values.put(Long.class, Long.MAX_VALUE);
         values.put(Double.class, (double) 0);
@@ -583,9 +580,8 @@
      * <p><b>NOTE</b>: BigInteger {@literal &} BigDecimal minimums are dependent upon their precision {@literal &} Scale
      */
     @Override
-    public Hashtable minimumNumericValues() {
-        Hashtable values = new Hashtable();
-
+    public Hashtable<Class<? extends Number>, ? super Number> minimumNumericValues() {
+        Hashtable<Class<? extends Number>, ? super Number> values = new Hashtable<>();
         values.put(Integer.class, Integer.MIN_VALUE);
         values.put(Long.class, Long.MIN_VALUE);
         values.put(Double.class, (double) -9);
@@ -603,8 +599,8 @@
     public ExpressionOperator modOperator() {
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.Mod);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
-        v.addElement(" % ");
+        List<String> v = new ArrayList<>();
+        v.add(" % ");
         result.printsAs(v);
         result.bePostfix();
         result.setNodeClass(org.eclipse.persistence.internal.expressions.FunctionExpression.class);
@@ -618,11 +614,11 @@
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.SubstringSingleArg);
         result.setType(ExpressionOperator.FunctionOperator);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
-        v.addElement("SUBSTRING(");
-        v.addElement(",");
-        v.addElement(", LEN(");
-        v.addElement("))");
+        List<String> v = new ArrayList<>();
+        v.add("SUBSTRING(");
+        v.add(",");
+        v.add(", LEN(");
+        v.add("))");
         result.printsAs(v);
         int[] indices = new int[3];
         indices[0] = 0;
@@ -641,8 +637,8 @@
     protected ExpressionOperator operatorOuterJoin() {
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.EqualOuterJoin);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
-        v.addElement(" =* ");
+        List<String> v = new ArrayList<>();
+        v.add(" =* ");
         result.printsAs(v);
         result.bePostfix();
         result.setNodeClass(RelationExpression.class);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SybasePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SybasePlatform.java
index 91b7ab1..be72280 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SybasePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SybasePlatform.java
@@ -33,10 +33,12 @@
 import java.sql.DatabaseMetaData;
 import java.sql.SQLException;
 import java.sql.Types;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Hashtable;
+import java.util.List;
 import java.util.Map;
 import java.util.Vector;
 import java.util.regex.Pattern;
@@ -48,7 +50,6 @@
 import org.eclipse.persistence.internal.helper.ClassConstants;
 import org.eclipse.persistence.internal.helper.DatabaseTable;
 import org.eclipse.persistence.internal.helper.Helper;
-import org.eclipse.persistence.internal.helper.NonSynchronizedVector;
 import org.eclipse.persistence.internal.sessions.AbstractSession;
 import org.eclipse.persistence.queries.ValueReadQuery;
 
@@ -66,7 +67,7 @@
     // assigned negative values, making them unusable as indexes without guessing at modifying them.
     // this attribute is used for registering output params in stored procedure calls.  JConnect 5.5 requires
     // that the API that accepts a string is called so we have a collection of strings to use.
-    protected Map typeStrings;
+    protected Map<Integer, String> typeStrings;
 
     public SybasePlatform(){
         super();
@@ -245,10 +246,8 @@
     }
 
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-
-        fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("BIT default 0", false, false));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("INTEGER", false));
@@ -505,7 +504,7 @@
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Extract);
         exOperator.setName("EXTRACT");
-        Vector v = NonSynchronizedVector.newInstance(5);
+        List<String> v = new ArrayList<>(5);
         v.add("DATEPART(");
         v.add(",");
         v.add(")");
@@ -527,7 +526,7 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Trim);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
+        List<String> v = new ArrayList<>(2);
         v.add("RTRIM(LTRIM(");
         v.add("))");
         exOperator.printsAs(v);
@@ -544,7 +543,7 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Trim2);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(5);
+        List<String> v = new ArrayList<>(5);
         v.add("STR_REPLACE(");
         v.add(", ");
         v.add(", NULL)");
@@ -573,7 +572,7 @@
      * <p><b>NOTE</b>: BigInteger {@literal &} BigDecimal maximums are dependent upon their precision {@literal &} Scale
      */
     @Override
-    public Hashtable<Class<? extends Number>, Number> maximumNumericValues() {
+    public Hashtable<Class<? extends Number>, ? super Number> maximumNumericValues() {
         Hashtable<Class<? extends Number>, Number> values = new Hashtable<>();
 
         values.put(Integer.class, Integer.MAX_VALUE);
@@ -593,7 +592,7 @@
      * <p><b>NOTE</b>: BigInteger {@literal &} BigDecimal minimums are dependent upon their precision {@literal &} Scale
      */
     @Override
-    public Hashtable<Class<? extends Number>, Number> minimumNumericValues() {
+    public Hashtable<Class<? extends Number>, ? super Number> minimumNumericValues() {
         Hashtable<Class<? extends Number>, Number> values = new Hashtable<>();
 
         values.put(Integer.class, Integer.MIN_VALUE);
@@ -613,8 +612,8 @@
     public ExpressionOperator modOperator() {
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.Mod);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
-        v.addElement(" % ");
+        List<String> v = new ArrayList<>();
+        v.add(" % ");
         result.printsAs(v);
         result.bePostfix();
         result.setNodeClass(org.eclipse.persistence.internal.expressions.FunctionExpression.class);
@@ -627,8 +626,8 @@
     protected ExpressionOperator operatorOuterJoin() {
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.EqualOuterJoin);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
-        v.addElement(" =* ");
+        List<String> v = new ArrayList<>();
+        v.add(" =* ");
         result.printsAs(v);
         result.bePostfix();
         result.setNodeClass(RelationExpression.class);
@@ -727,11 +726,11 @@
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.SubstringSingleArg);
         result.setType(ExpressionOperator.FunctionOperator);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
-        v.addElement("SUBSTRING(");
-        v.addElement(",");
-        v.addElement(", CHAR_LENGTH(");
-        v.addElement("))");
+        List<String> v = new ArrayList<>();
+        v.add("SUBSTRING(");
+        v.add(",");
+        v.add(", CHAR_LENGTH(");
+        v.add("))");
         result.printsAs(v);
         int[] indices = new int[3];
         indices[0] = 0;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SymfowarePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SymfowarePlatform.java
index c620bc4..ae5e81c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SymfowarePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SymfowarePlatform.java
@@ -23,10 +23,11 @@
 import java.io.Writer;
 import java.sql.Connection;
 import java.sql.SQLException;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Hashtable;
+import java.util.List;
 import java.util.Map;
-import java.util.Vector;
 
 import org.eclipse.persistence.expressions.ExpressionOperator;
 import org.eclipse.persistence.internal.databaseaccess.DatabaseCall;
@@ -36,7 +37,6 @@
 import org.eclipse.persistence.internal.expressions.SQLSelectStatement;
 import org.eclipse.persistence.internal.helper.ClassConstants;
 import org.eclipse.persistence.internal.helper.Helper;
-import org.eclipse.persistence.internal.helper.NonSynchronizedVector;
 import org.eclipse.persistence.internal.sessions.AbstractSession;
 import org.eclipse.persistence.queries.ReportQuery;
 import org.eclipse.persistence.queries.ValueReadQuery;
@@ -238,9 +238,9 @@
      * @return the mappings.
      */
     @Override
-    protected Map<String, Class> buildClassTypes() {
+    protected Map<String, Class<?>> buildClassTypes() {
         // use what is defined in DatabasePlatform and override those entries
-        Map<String, Class> classTypeMapping = super.buildClassTypes();
+        Map<String, Class<?>> classTypeMapping = super.buildClassTypes();
         classTypeMapping.put("SMALLINT", java.lang.Short.class);
         classTypeMapping.put("INTEGER", java.lang.Integer.class);
         classTypeMapping.put("NUMERIC", java.lang.Long.class);
@@ -371,9 +371,9 @@
     protected static ExpressionOperator length() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.Length);
-        Vector<String> v = NonSynchronizedVector.newInstance(2);
-        v.addElement("CHAR_LENGTH(");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(2);
+        v.add("CHAR_LENGTH(");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -391,9 +391,9 @@
     protected static ExpressionOperator charLength() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.CharLength);
-        Vector<String> v = NonSynchronizedVector.newInstance(2);
-        v.addElement("CHAR_LENGTH(");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(2);
+        v.add("CHAR_LENGTH(");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -411,10 +411,10 @@
     protected static ExpressionOperator locate() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.Locate);
-        Vector<String> v = NonSynchronizedVector.newInstance(3);
-        v.addElement("POSITION(");
-        v.addElement(" IN ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(3);
+        v.add("POSITION(");
+        v.add(" IN ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = { 1, 0 };
@@ -435,11 +435,11 @@
     protected static ExpressionOperator locate2() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.Locate2);
-        Vector<String> v = NonSynchronizedVector.newInstance(4);
-        v.addElement("POSITION(");
-        v.addElement(" IN ");
-        v.addElement(",");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(4);
+        v.add("POSITION(");
+        v.add(" IN ");
+        v.add(",");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = { 1, 0, 2};
@@ -459,9 +459,9 @@
     protected static ExpressionOperator logOperator() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.Log);
-        Vector<String> v = NonSynchronizedVector.newInstance(2);
-        v.addElement("(LN(");
-        v.addElement(")/LN(10))");
+        List<String> v = new ArrayList<>(2);
+        v.add("(LN(");
+        v.add(")/LN(10))");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(FunctionExpression.class);
@@ -479,9 +479,9 @@
     protected static ExpressionOperator leftTrim() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.LeftTrim);
-        Vector<String> v = NonSynchronizedVector.newInstance(2);
-        v.addElement("TRIM(LEADING FROM ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(2);
+        v.add("TRIM(LEADING FROM ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -499,10 +499,10 @@
     protected static ExpressionOperator leftTrim2() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.LeftTrim2);
-        Vector<String> v = NonSynchronizedVector.newInstance(3);
-        v.addElement("TRIM(LEADING ");
-        v.addElement(" FROM ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(3);
+        v.add("TRIM(LEADING ");
+        v.add(" FROM ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = { 1, 0 };
@@ -524,14 +524,14 @@
     protected static ExpressionOperator mod() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.Mod);
-        Vector<String> v = NonSynchronizedVector.newInstance(7);
-        v.addElement("(CASE WHEN ");
-        v.addElement(" = 0 THEN ");
-        v.addElement(" ELSE (");
-        v.addElement(" - ");
-        v.addElement(" * TRUNC( ");
-        v.addElement(" / ");
-        v.addElement(")) END)");
+        List<String> v = new ArrayList<>(7);
+        v.add("(CASE WHEN ");
+        v.add(" = 0 THEN ");
+        v.add(" ELSE (");
+        v.add(" - ");
+        v.add(" * TRUNC( ");
+        v.add(" / ");
+        v.add(")) END)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = { 1, 0, 0, 1, 0, 1};
@@ -551,9 +551,9 @@
     protected static ExpressionOperator rightTrim() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.RightTrim);
-        Vector<String> v = NonSynchronizedVector.newInstance(2);
-        v.addElement("TRIM(TRAILING FROM ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(2);
+        v.add("TRIM(TRAILING FROM ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -571,10 +571,10 @@
     protected static ExpressionOperator rightTrim2() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.RightTrim2);
-        Vector<String> v = NonSynchronizedVector.newInstance(3);
-        v.addElement("TRIM(TRAILING ");
-        v.addElement(" FROM ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(3);
+        v.add("TRIM(TRAILING ");
+        v.add(" FROM ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = { 1, 0 };
@@ -594,11 +594,11 @@
     protected static ExpressionOperator substring() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.Substring);
-        Vector<String> v = NonSynchronizedVector.newInstance(4);
-        v.addElement("SUBSTRING(");
-        v.addElement(" FROM ");
-        v.addElement(" FOR ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(4);
+        v.add("SUBSTRING(");
+        v.add(" FROM ");
+        v.add(" FOR ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -617,10 +617,10 @@
     protected static ExpressionOperator singleArgumentSubstring() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.SubstringSingleArg);
-        Vector<String> v = NonSynchronizedVector.newInstance(3);
-        v.addElement("SUBSTRING(");
-        v.addElement(" FROM ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(3);
+        v.add("SUBSTRING(");
+        v.add(" FROM ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -638,9 +638,9 @@
     protected static ExpressionOperator toNumber() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.ToNumber);
-        Vector<String> v = NonSynchronizedVector.newInstance(2);
-        v.addElement("CAST(");
-        v.addElement(" AS SMALLINT)");
+        List<String> v = new ArrayList<>(2);
+        v.add("CAST(");
+        v.add(" AS SMALLINT)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -658,10 +658,10 @@
     protected static ExpressionOperator instring() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.Instring);
-        Vector<String> v = NonSynchronizedVector.newInstance(3);
-        v.addElement("POSITION(");
-        v.addElement(" IN ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(3);
+        v.add("POSITION(");
+        v.add(" IN ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = { 1, 0 };
@@ -681,10 +681,10 @@
     protected static ExpressionOperator monthsBetween() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.MonthsBetween);
-        Vector<String> v = NonSynchronizedVector.newInstance(3);
-        v.addElement("SPAN_DATE(");
-        v.addElement(" , ");
-        v.addElement(",'MONTH')");
+        List<String> v = new ArrayList<>(3);
+        v.add("SPAN_DATE(");
+        v.add(" , ");
+        v.add(",'MONTH')");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -702,10 +702,10 @@
     protected static ExpressionOperator roundDate() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.RoundDate);
-        Vector<String> v = NonSynchronizedVector.newInstance(3);
-        v.addElement("ROUND_DATE(");
-        v.addElement(" , ");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(3);
+        v.add("ROUND_DATE(");
+        v.add(" , ");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -724,9 +724,9 @@
     protected static ExpressionOperator toDate() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.ToDate);
-        Vector<String> v = NonSynchronizedVector.newInstance(2);
-        v.addElement("CNV_DATE(");
-        v.addElement(", 'YYYY-MM-DD')");
+        List<String> v = new ArrayList<>(2);
+        v.add("CNV_DATE(");
+        v.add(", 'YYYY-MM-DD')");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -745,11 +745,11 @@
     protected static ExpressionOperator addDate() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.AddDate);
-        Vector<String> v = NonSynchronizedVector.newInstance(4);
-        v.addElement("ADD_DATE(");
-        v.addElement(", ");
-        v.addElement(", '");
-        v.addElement("')");
+        List<String> v = new ArrayList<>(4);
+        v.add("ADD_DATE(");
+        v.add(", ");
+        v.add(", '");
+        v.add("')");
         exOperator.printsAs(v);
         exOperator.bePrefix();
 
@@ -772,10 +772,10 @@
     protected static ExpressionOperator truncateDate() {
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setSelector(ExpressionOperator.TruncateDate);
-        Vector<String> v = NonSynchronizedVector.newInstance(3);
-        v.addElement("TRUNC_DATE(");
-        v.addElement(",");
-        v.addElement(")");
+        List<String> v = new ArrayList<>(3);
+        v.add("TRUNC_DATE(");
+        v.add(",");
+        v.add(")");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         exOperator.setNodeClass(ClassConstants.FunctionExpression_Class);
@@ -807,12 +807,12 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Greatest);
-        Vector<String> v = NonSynchronizedVector.newInstance(5);
-        v.addElement("(CASE WHEN ");
-        v.addElement(" >= ");
-        v.addElement(" THEN ");
-        v.addElement(" ELSE ");
-        v.addElement(" END)");
+        List<String> v = new ArrayList<>(5);
+        v.add("(CASE WHEN ");
+        v.add(" >= ");
+        v.add(" THEN ");
+        v.add(" ELSE ");
+        v.add(" END)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = {0, 1, 0, 1};
@@ -833,12 +833,12 @@
         ExpressionOperator exOperator = new ExpressionOperator();
         exOperator.setType(ExpressionOperator.FunctionOperator);
         exOperator.setSelector(ExpressionOperator.Least);
-        Vector<String> v = NonSynchronizedVector.newInstance(5);
-        v.addElement("(CASE WHEN ");
-        v.addElement(" <= ");
-        v.addElement(" THEN ");
-        v.addElement(" ELSE ");
-        v.addElement(" END)");
+        List<String> v = new ArrayList<>(5);
+        v.add("(CASE WHEN ");
+        v.add(" <= ");
+        v.add(" THEN ");
+        v.add(" ELSE ");
+        v.add(" END)");
         exOperator.printsAs(v);
         exOperator.bePrefix();
         int[] indices = {0, 1, 0, 1};
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/TimesTen7Platform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/TimesTen7Platform.java
index b7bf651..e786102 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/TimesTen7Platform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/TimesTen7Platform.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -29,12 +29,18 @@
 public class TimesTen7Platform extends TimesTenPlatform {
 
     /**
+     * Default constructor.
+     */
+    public TimesTen7Platform() {
+        super();
+    }
+
+    /**
      * Return the mapping of class types to database types for the schema framework.
      */
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-        fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("TT_TINYINT", false));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("TT_INTEGER", false));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/TimesTenPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/TimesTenPlatform.java
index 58af625..37b8490 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/TimesTenPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/TimesTenPlatform.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -17,9 +17,11 @@
 package org.eclipse.persistence.platform.database;
 
 import java.io.*;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Hashtable;
-import java.util.Vector;
+import java.util.List;
+
 import org.eclipse.persistence.expressions.ExpressionOperator;
 import org.eclipse.persistence.internal.databaseaccess.DatabaseCall;
 import org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition;
@@ -119,10 +121,8 @@
      * Return the mapping of class types to database types for the schema framework.
      */
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping;
-
-        fieldTypeMapping = new Hashtable();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = new Hashtable<>();
         fieldTypeMapping.put(Boolean.class, new FieldTypeDefinition("TINYINT", false));
 
         fieldTypeMapping.put(Integer.class, new FieldTypeDefinition("INTEGER", false));
@@ -217,8 +217,8 @@
     protected ExpressionOperator operatorOuterJoin() {
         ExpressionOperator result = new ExpressionOperator();
         result.setSelector(ExpressionOperator.EqualOuterJoin);
-        Vector v = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
-        v.addElement(" (+) = ");
+        List<String> v = new ArrayList<>(2);
+        v.add(" (+) = ");
         result.printsAs(v);
         result.bePostfix();
         result.setNodeClass(RelationExpression.class);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/ServerPlatformBase.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/ServerPlatformBase.java
index ef53085..eb9869f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/ServerPlatformBase.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/ServerPlatformBase.java
@@ -302,7 +302,7 @@
             ExternalTransactionController controller = null;
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try {
-                    controller = (ExternalTransactionController)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(this.getExternalTransactionControllerClass()));
+                    controller = AccessController.<ExternalTransactionController>doPrivileged(new PrivilegedNewInstanceFromClass<>(this.getExternalTransactionControllerClass()));
                 } catch (PrivilegedActionException exception) {
                     Exception throwableException = exception.getException();
                     if (throwableException instanceof InstantiationException) {
@@ -312,7 +312,7 @@
                     }
                 }
             } else {
-                controller = (ExternalTransactionController)PrivilegedAccessHelper.newInstanceFromClass(this.getExternalTransactionControllerClass());
+                controller = PrivilegedAccessHelper.<ExternalTransactionController>newInstanceFromClass(this.getExternalTransactionControllerClass());
             }
             getDatabaseSession().setExternalTransactionController(controller);
         } catch (InstantiationException instantiationException) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogic_10_Platform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogic_10_Platform.java
index 1a50444..634bbfb 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogic_10_Platform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogic_10_Platform.java
@@ -317,7 +317,7 @@
                 // weblogic.work.ExecuteThreadRuntime.<getMethodName>
                 Method getMethod = PrivilegedAccessHelper.getPublicMethod(executeThread.getClass(), getMethodName, new Class[] {}, false);
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
-                    classLoaderOrString = AccessController.doPrivileged(new PrivilegedMethodInvoker(getMethod, executeThread, null));
+                    classLoaderOrString = AccessController.doPrivileged(new PrivilegedMethodInvoker<>(getMethod, executeThread, null));
                 } else {
                     classLoaderOrString = PrivilegedAccessHelper.invokeMethod(getMethod, executeThread);
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/DatabaseObjectDefinition.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/DatabaseObjectDefinition.java
index e2b4037..2b5deb4 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/DatabaseObjectDefinition.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/DatabaseObjectDefinition.java
@@ -86,8 +86,8 @@
                 throw ValidationException.javaTypeIsNotAValidDatabaseType(type);
             }
         } else if (name != null) { //translate generic type name
-            final Map<String, Class> fieldTypes = platform.getClassTypes();
-            final Class typeFromName = fieldTypes.get(name);
+            final Map<String, Class<?>> fieldTypes = platform.getClassTypes();
+            final Class<?> typeFromName = fieldTypes.get(name);
             if (typeFromName == null) { // if unknown type name, use as it is
                 fieldType = new FieldTypeDefinition(name);
             } else {
diff --git a/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/platform/database/oracle/Oracle8Platform.java b/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/platform/database/oracle/Oracle8Platform.java
index 1396bb0..02809ed 100644
--- a/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/platform/database/oracle/Oracle8Platform.java
+++ b/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/platform/database/oracle/Oracle8Platform.java
@@ -66,8 +66,8 @@
      * INTERNAL:
      */
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypeMapping = super.buildFieldTypes();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypeMapping = super.buildFieldTypes();
 
         fieldTypeMapping.put(Byte[].class, new FieldTypeDefinition("BLOB", false));
         fieldTypeMapping.put(Character[].class, new FieldTypeDefinition("CLOB", false));
diff --git a/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/platform/database/oracle/Oracle9Platform.java b/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/platform/database/oracle/Oracle9Platform.java
index 2d50185..b120cb5 100644
--- a/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/platform/database/oracle/Oracle9Platform.java
+++ b/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/platform/database/oracle/Oracle9Platform.java
@@ -318,8 +318,8 @@
      * Add TIMESTAMP, TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE
      */
     @Override
-    protected Hashtable buildFieldTypes() {
-        Hashtable fieldTypes = super.buildFieldTypes();
+    protected Hashtable<Class<?>, FieldTypeDefinition> buildFieldTypes() {
+        Hashtable<Class<?>, FieldTypeDefinition> fieldTypes = super.buildFieldTypes();
         fieldTypes.put(org.w3c.dom.Document.class, new FieldTypeDefinition("sys.XMLType"));
         //Bug#3381652 10g database does not accept Time for DATE field
         fieldTypes.put(java.sql.Time.class, new FieldTypeDefinition("TIMESTAMP", false));
@@ -351,8 +351,8 @@
      * Add TIMESTAMP, TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE
      */
     @Override
-    protected Map<String, Class> buildClassTypes() {
-        Map<String, Class> classTypeMapping = super.buildClassTypes();
+    protected Map<String, Class<?>> buildClassTypes() {
+        Map<String, Class<?>> classTypeMapping = super.buildClassTypes();
         classTypeMapping.put("TIMESTAMP", ORACLE_SQL_TIMESTAMP);
         classTypeMapping.put("TIMESTAMP WITH TIME ZONE", ORACLE_SQL_TIMESTAMPTZ);
         classTypeMapping.put("TIMESTAMP WITH LOCAL TIME ZONE", ORACLE_SQL_TIMESTAMPLTZ);
@@ -622,30 +622,30 @@
         return "SYSTIMESTAMP";
     }
 
-    protected Vector buildToTIMESTAMPVec() {
-        Vector vec = new Vector();
-        vec.addElement(java.util.Date.class);
-        vec.addElement(Timestamp.class);
-        vec.addElement(Calendar.class);
-        vec.addElement(String.class);
-        vec.addElement(Long.class);
-        vec.addElement(Date.class);
-        vec.addElement(Time.class);
+    protected List<Class<?>> buildToTIMESTAMPVec() {
+        List<Class<?>> vec = new Vector<>();
+        vec.add(java.util.Date.class);
+        vec.add(Timestamp.class);
+        vec.add(Calendar.class);
+        vec.add(String.class);
+        vec.add(Long.class);
+        vec.add(Date.class);
+        vec.add(Time.class);
         return vec;
     }
 
-    protected Vector buildToNStringCharVec() {
-        Vector vec = new Vector();
-        vec.addElement(String.class);
-        vec.addElement(Character.class);
+    protected List<Class<?>> buildToNStringCharVec() {
+        List<Class<?>> vec = new Vector<>();
+        vec.add(String.class);
+        vec.add(Character.class);
         return vec;
     }
 
-    protected Vector buildToNClobVec() {
-        Vector vec = new Vector();
-        vec.addElement(String.class);
-        vec.addElement(Character[].class);
-        vec.addElement(char[].class);
+    protected List<Class<?>> buildToNClobVec() {
+        List<Class<?>> vec = new Vector<>();
+        vec.add(String.class);
+        vec.add(Character[].class);
+        vec.add(char[].class);
         return vec;
     }
 
@@ -739,11 +739,11 @@
      * @return - a vector of classes
      */
     @Override
-    public List getDataTypesConvertedFrom(Class javaClass) {
+    public List<Class<?>> getDataTypesConvertedFrom(Class<?> javaClass) {
         if (dataTypesConvertedFromAClass == null) {
-            dataTypesConvertedFromAClass = new Hashtable(5);
+            dataTypesConvertedFromAClass = new Hashtable<>(5);
         }
-        List dataTypes = (List) dataTypesConvertedFromAClass.get(javaClass);
+        List<Class<?>> dataTypes = dataTypesConvertedFromAClass.get(javaClass);
         if (dataTypes != null) {
             return dataTypes;
         }
@@ -770,11 +770,11 @@
      * @return - a vector of classes
      */
     @Override
-    public List getDataTypesConvertedTo(Class javaClass) {
+    public List<Class<?>> getDataTypesConvertedTo(Class<?> javaClass) {
         if (dataTypesConvertedToAClass == null) {
-            dataTypesConvertedToAClass = new Hashtable(5);
+            dataTypesConvertedToAClass = new Hashtable<>(5);
         }
-        List dataTypes = (Vector) dataTypesConvertedToAClass.get(javaClass);
+        List<Class<?>> dataTypes = dataTypesConvertedToAClass.get(javaClass);
         if (dataTypes != null) {
             return dataTypes;
         }