From 94d3ba89e04a66d286e96092b9e9ed8247b397c9 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Fri, 15 Feb 2019 12:38:55 -0500 Subject: [PATCH] SimpleSQLChecker tighten up exception handling --- .../com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java | 4 +++- .../com/moparisthebest/jdbc/codegen/SimpleSQLChecker.java | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java index 4665c9b..5d2a9b7 100644 --- a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java +++ b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java @@ -187,7 +187,7 @@ public class JdbcMapperProcessor extends AbstractProcessor { (mapper.databaseType() == defaultDatabaseType ? defaultArrayStringTypeName : mapper.databaseType().arrayStringTypeName); } final ArrayInList arrayInList; - if(sqlChecker != null) { + if(sqlCheckerClass != null) { switch(databaseType) { case ORACLE: arrayInList = new OracleArrayInList(arrayNumberTypeName, arrayStringTypeName); @@ -1230,6 +1230,8 @@ public class JdbcMapperProcessor extends AbstractProcessor { } public static String toString(final Throwable e) { + if (e == null) + return "exception object was null"; StringWriter sw = null; PrintWriter pw = null; try { diff --git a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/SimpleSQLChecker.java b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/SimpleSQLChecker.java index 58f4c6e..ac2776b 100644 --- a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/SimpleSQLChecker.java +++ b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/SimpleSQLChecker.java @@ -83,9 +83,9 @@ public class SimpleSQLChecker implements SQLChecker { } public void handleException(final Messager messager, final Exception e, final TypeElement classElement, final ExecutableElement method) { - if (e.getMessage().startsWith("ORA-02291: integrity constraint")) + if (e != null && e.getMessage() != null && e.getMessage().startsWith("ORA-02291: integrity constraint")) return; // since we make up values and rollback we can ignore this, it means SQL is correct at least - getMessager().printMessage(Diagnostic.Kind.ERROR, e.getMessage(), method); + messager.printMessage(Diagnostic.Kind.ERROR, e == null || e.getMessage() == null ? JdbcMapperProcessor.toString(e) : e.getMessage(), method); } public Collection getFakeBindParams(final List bindParams, final Connection conn, final ArrayInList arrayInList) throws SQLException {