From 94af3fdd9818d9fb6c2f0fe3a308c6871d4716cf Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 24 Feb 2023 12:51:27 +0100 Subject: [PATCH] [jOOQ/jOOQ#14701] Let DataAccessException::sqlStateClass be based on SQL Server error codes for SQLStateClass 22 or 23 --- .../jooq/exception/DataAccessException.java | 18 +++++++ .../org/jooq/exception/SQLStateClass.java | 50 +++++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/jOOQ/src/main/java/org/jooq/exception/DataAccessException.java b/jOOQ/src/main/java/org/jooq/exception/DataAccessException.java index 3ffcbc3139..81663a1ae3 100644 --- a/jOOQ/src/main/java/org/jooq/exception/DataAccessException.java +++ b/jOOQ/src/main/java/org/jooq/exception/DataAccessException.java @@ -45,6 +45,8 @@ import java.sql.SQLIntegrityConstraintViolationException; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +// ... + import io.r2dbc.spi.R2dbcException; /** @@ -139,6 +141,22 @@ public class DataAccessException extends RuntimeException { */ @NotNull public static SQLStateClass sqlStateClass(SQLException e) { + + + + + + + + + + + + + + + + if (e.getSQLState() != null) return SQLStateClass.fromCode(e.getSQLState()); else if (e.getSQLState() == null && "org.sqlite.SQLiteException".equals(e.getClass().getName())) diff --git a/jOOQ/src/main/java/org/jooq/exception/SQLStateClass.java b/jOOQ/src/main/java/org/jooq/exception/SQLStateClass.java index 9f73b66d03..0e10f7d3af 100644 --- a/jOOQ/src/main/java/org/jooq/exception/SQLStateClass.java +++ b/jOOQ/src/main/java/org/jooq/exception/SQLStateClass.java @@ -40,6 +40,8 @@ package org.jooq.exception; import java.util.HashMap; import java.util.Map; +// ... + import org.jetbrains.annotations.NotNull; /** @@ -198,4 +200,52 @@ public enum SQLStateClass { return SQLStateClass.OTHER; } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + }