diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
index a0ad2ba..8e77c29 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
@@ -4214,7 +4214,8 @@
 
     /**
      * Reflect on the schema to find tables matching the given name pattern.
-     * @deprecated
+     * @deprecated not used by openjpa internally anymore
+     * @see #getTables(DatabaseMetaData, DBIdentifier, DBIdentifier, DBIdentifier, Connection)
      */
     @Deprecated
     public Table[] getTables(DatabaseMetaData meta, String catalog,
@@ -4248,16 +4249,19 @@
         try {
             tables = meta.getTables(getCatalogNameForMetadata(sqlCatalog),
                 schemaName, getTableNameForMetadata(sqlTableName), types);
-            List tableList = new ArrayList();
-            while (tables != null && tables.next())
+            List<Table> tableList = new ArrayList<>();
+            while (tables != null && tables.next()) {
                 tableList.add(newTable(tables));
-            return (Table[]) tableList.toArray(new Table[tableList.size()]);
+            }
+            return tableList.toArray(new Table[tableList.size()]);
         } finally {
-            if (tables != null)
+            if (tables != null) {
                 try {
                     tables.close();
-                } catch (Exception e) {
                 }
+                catch (Exception e) {
+                }
+            }
         }
     }
 
