diff --git a/jOOQ/src/main/java/org/jooq/impl/SQLDataType.java b/jOOQ/src/main/java/org/jooq/impl/SQLDataType.java
index 2f0c1d6f07..86695c56ff 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SQLDataType.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SQLDataType.java
@@ -96,6 +96,7 @@ import org.jooq.util.sqlite.SQLiteDataType;
*
* @author Lukas Eder
*/
+@SuppressWarnings("deprecation")
public final class SQLDataType {
// -------------------------------------------------------------------------
@@ -579,7 +580,7 @@ public final class SQLDataType {
static {
// Load all dialect-specific data types
- // TODO [#650] Make this more reliable using a data type registry
+ // TODO [#5713] Make this more reliable using a data type registry
try {
diff --git a/jOOQ/src/main/java/org/jooq/util/cubrid/CUBRIDDataType.java b/jOOQ/src/main/java/org/jooq/util/cubrid/CUBRIDDataType.java
index e37376776e..b5e5be9024 100644
--- a/jOOQ/src/main/java/org/jooq/util/cubrid/CUBRIDDataType.java
+++ b/jOOQ/src/main/java/org/jooq/util/cubrid/CUBRIDDataType.java
@@ -58,7 +58,14 @@ import org.jooq.types.UShort;
* Supported data types for the {@link SQLDialect#CUBRID} dialect
*
* @author Lukas Eder
+ * @deprecated - 3.11.0 - [#7375] - This type is part of jOOQ's internal API. Do
+ * not reference this type directly from client code. Referencing
+ * this type before the {@link SQLDataType} class has been
+ * initialised may lead to deadlocks! See https://github.com/jOOQ/jOOQ/issues/3777
+ * for details.
*/
+@Deprecated
public class CUBRIDDataType {
// -------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/util/derby/DerbyDataType.java b/jOOQ/src/main/java/org/jooq/util/derby/DerbyDataType.java
index aa0d7ca47a..dc3bbb3196 100644
--- a/jOOQ/src/main/java/org/jooq/util/derby/DerbyDataType.java
+++ b/jOOQ/src/main/java/org/jooq/util/derby/DerbyDataType.java
@@ -59,7 +59,14 @@ import org.jooq.types.UShort;
*
* @author Lukas Eder
* @see http://db.apache.org/derby/docs/10.7/ref/crefsqlj31068.html
+ * @deprecated - 3.11.0 - [#7375] - This type is part of jOOQ's internal API. Do
+ * not reference this type directly from client code. Referencing
+ * this type before the {@link SQLDataType} class has been
+ * initialised may lead to deadlocks! See https://github.com/jOOQ/jOOQ/issues/3777
+ * for details.
*/
+@Deprecated
public class DerbyDataType {
// -------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/util/firebird/FirebirdDataType.java b/jOOQ/src/main/java/org/jooq/util/firebird/FirebirdDataType.java
index 77a2f23faf..7acf8c5ce4 100644
--- a/jOOQ/src/main/java/org/jooq/util/firebird/FirebirdDataType.java
+++ b/jOOQ/src/main/java/org/jooq/util/firebird/FirebirdDataType.java
@@ -60,7 +60,14 @@ import org.jooq.types.YearToMonth;
* Supported data types for the {@link SQLDialect#FIREBIRD} dialect
*
* @author Lukas Eder
+ * @deprecated - 3.11.0 - [#7375] - This type is part of jOOQ's internal API. Do
+ * not reference this type directly from client code. Referencing
+ * this type before the {@link SQLDataType} class has been
+ * initialised may lead to deadlocks! See https://github.com/jOOQ/jOOQ/issues/3777
+ * for details.
*/
+@Deprecated
public class FirebirdDataType {
// -------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/util/h2/H2DataType.java b/jOOQ/src/main/java/org/jooq/util/h2/H2DataType.java
index f2a27d122d..9c17036cf6 100644
--- a/jOOQ/src/main/java/org/jooq/util/h2/H2DataType.java
+++ b/jOOQ/src/main/java/org/jooq/util/h2/H2DataType.java
@@ -61,7 +61,14 @@ import org.jooq.types.UShort;
*
* @author Lukas Eder
* @see http://www.h2database.com/html/datatypes.html
+ * @deprecated - 3.11.0 - [#7375] - This type is part of jOOQ's internal API. Do
+ * not reference this type directly from client code. Referencing
+ * this type before the {@link SQLDataType} class has been
+ * initialised may lead to deadlocks! See https://github.com/jOOQ/jOOQ/issues/3777
+ * for details.
*/
+@Deprecated
public class H2DataType {
// -------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/util/hsqldb/HSQLDBDataType.java b/jOOQ/src/main/java/org/jooq/util/hsqldb/HSQLDBDataType.java
index 3a52fe1d08..cd027b3779 100644
--- a/jOOQ/src/main/java/org/jooq/util/hsqldb/HSQLDBDataType.java
+++ b/jOOQ/src/main/java/org/jooq/util/hsqldb/HSQLDBDataType.java
@@ -64,7 +64,14 @@ import org.jooq.types.YearToMonth;
* @author Lukas Eder
* @see http://hsqldb.org/doc/guide/ch09.html#datatypes-section
* @see http://hsqldb.org/doc/2.0/guide/sqlgeneral-chapt.html#sqlgeneral_types_ops-sect
+ * @deprecated - 3.11.0 - [#7375] - This type is part of jOOQ's internal API. Do
+ * not reference this type directly from client code. Referencing
+ * this type before the {@link SQLDataType} class has been
+ * initialised may lead to deadlocks! See https://github.com/jOOQ/jOOQ/issues/3777
+ * for details.
*/
+@Deprecated
public class HSQLDBDataType {
// -------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/util/mariadb/MariaDBDataType.java b/jOOQ/src/main/java/org/jooq/util/mariadb/MariaDBDataType.java
index 0385e5784c..7e0ca035f6 100644
--- a/jOOQ/src/main/java/org/jooq/util/mariadb/MariaDBDataType.java
+++ b/jOOQ/src/main/java/org/jooq/util/mariadb/MariaDBDataType.java
@@ -60,7 +60,14 @@ import org.jooq.types.UShort;
* @author Lukas Eder
* @see http://dev.mysql.com/doc/refman/5.5/en/data-types.html
* @see http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast
+ * @deprecated - 3.11.0 - [#7375] - This type is part of jOOQ's internal API. Do
+ * not reference this type directly from client code. Referencing
+ * this type before the {@link SQLDataType} class has been
+ * initialised may lead to deadlocks! See https://github.com/jOOQ/jOOQ/issues/3777
+ * for details.
*/
+@Deprecated
public class MariaDBDataType {
// -------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/util/mysql/MySQLDataType.java b/jOOQ/src/main/java/org/jooq/util/mysql/MySQLDataType.java
index 2219f09d33..a92c54c55b 100644
--- a/jOOQ/src/main/java/org/jooq/util/mysql/MySQLDataType.java
+++ b/jOOQ/src/main/java/org/jooq/util/mysql/MySQLDataType.java
@@ -60,7 +60,14 @@ import org.jooq.types.UShort;
* @author Lukas Eder
* @see http://dev.mysql.com/doc/refman/5.5/en/data-types.html
* @see http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast
+ * @deprecated - 3.11.0 - [#7375] - This type is part of jOOQ's internal API. Do
+ * not reference this type directly from client code. Referencing
+ * this type before the {@link SQLDataType} class has been
+ * initialised may lead to deadlocks! See https://github.com/jOOQ/jOOQ/issues/3777
+ * for details.
*/
+@Deprecated
public class MySQLDataType {
// -------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/util/postgres/PostgresDataType.java b/jOOQ/src/main/java/org/jooq/util/postgres/PostgresDataType.java
index c68eef7c75..31656fb8bb 100644
--- a/jOOQ/src/main/java/org/jooq/util/postgres/PostgresDataType.java
+++ b/jOOQ/src/main/java/org/jooq/util/postgres/PostgresDataType.java
@@ -65,7 +65,14 @@ import org.jooq.types.YearToMonth;
*
* @author Lukas Eder
* @see http://www.postgresql.org/docs/9.0/interactive/datatype.html
+ * @deprecated - 3.11.0 - [#7375] - This type is part of jOOQ's internal API. Do
+ * not reference this type directly from client code. Referencing
+ * this type before the {@link SQLDataType} class has been
+ * initialised may lead to deadlocks! See https://github.com/jOOQ/jOOQ/issues/3777
+ * for details.
*/
+@Deprecated
public class PostgresDataType {
// -------------------------------------------------------------------------
diff --git a/jOOQ/src/main/java/org/jooq/util/sqlite/SQLiteDataType.java b/jOOQ/src/main/java/org/jooq/util/sqlite/SQLiteDataType.java
index 844c502755..1321a91da4 100644
--- a/jOOQ/src/main/java/org/jooq/util/sqlite/SQLiteDataType.java
+++ b/jOOQ/src/main/java/org/jooq/util/sqlite/SQLiteDataType.java
@@ -58,7 +58,14 @@ import org.jooq.types.UShort;
*
* @author Lukas Eder
* @see http://www.sqlite.org/datatype3.html
+ * @deprecated - 3.11.0 - [#7375] - This type is part of jOOQ's internal API. Do
+ * not reference this type directly from client code. Referencing
+ * this type before the {@link SQLDataType} class has been
+ * initialised may lead to deadlocks! See https://github.com/jOOQ/jOOQ/issues/3777
+ * for details.
*/
+@Deprecated
public class SQLiteDataType {
// -------------------------------------------------------------------------