diff --git a/src/main/java/com/alibaba/druid/filter/FilterManager.java b/src/main/java/com/alibaba/druid/filter/FilterManager.java index b201de2b0b..547519e9b8 100644 --- a/src/main/java/com/alibaba/druid/filter/FilterManager.java +++ b/src/main/java/com/alibaba/druid/filter/FilterManager.java @@ -46,7 +46,7 @@ public class FilterManager { aliasMap.put(name, (String) entry.getValue()); } } - } catch (Exception e) { + } catch (Throwable e) { LOG.error("load filter config error", e); } } diff --git a/src/main/java/com/alibaba/druid/pool/vendor/MySqlExceptionSorter.java b/src/main/java/com/alibaba/druid/pool/vendor/MySqlExceptionSorter.java index 9fa8827c11..076bac37da 100644 --- a/src/main/java/com/alibaba/druid/pool/vendor/MySqlExceptionSorter.java +++ b/src/main/java/com/alibaba/druid/pool/vendor/MySqlExceptionSorter.java @@ -77,6 +77,17 @@ public class MySqlExceptionSorter implements ExceptionSorter { return true; } } + + StackTraceElement[] stackTrace = e.getStackTrace(); + for (int i = 0; i < stackTrace.length; ++i) { + StackTraceElement element = stackTrace[i]; + if ("com.mysql.jdbc.RowDataDynamic".equals(element.getClassName()) // + && "close".equals(element.getMethodName()) + ) { + return true; + } + } + return false; }