From e0e851ac92d7789f68f3827bdb8d04b7557fa230 Mon Sep 17 00:00:00 2001 From: wenshao Date: Sun, 7 Dec 2014 19:17:28 +0800 Subject: [PATCH] improved mysql exception sorter --- .../com/alibaba/druid/pool/vendor/MySqlExceptionSorter.java | 3 ++- .../druid/bvt/pool/vendor/MySqlExceptionSorterTest.java | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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 aca249b3dd..a925a598d9 100644 --- a/src/main/java/com/alibaba/druid/pool/vendor/MySqlExceptionSorter.java +++ b/src/main/java/com/alibaba/druid/pool/vendor/MySqlExceptionSorter.java @@ -24,12 +24,13 @@ public class MySqlExceptionSorter implements ExceptionSorter { @Override public boolean isExceptionFatal(SQLException e) { - String sqlState = e.getSQLState(); + final String sqlState = e.getSQLState(); final int errorCode = e.getErrorCode(); if (sqlState != null && sqlState.startsWith("08")) { return true; } + switch (errorCode) { // Communications Errors case 1040: // ER_CON_COUNT_ERROR diff --git a/src/test/java/com/alibaba/druid/bvt/pool/vendor/MySqlExceptionSorterTest.java b/src/test/java/com/alibaba/druid/bvt/pool/vendor/MySqlExceptionSorterTest.java index 222c3c6ffc..84f5397a40 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/vendor/MySqlExceptionSorterTest.java +++ b/src/test/java/com/alibaba/druid/bvt/pool/vendor/MySqlExceptionSorterTest.java @@ -39,4 +39,9 @@ public class MySqlExceptionSorterTest extends TestCase { MySqlExceptionSorter sorter = new MySqlExceptionSorter(); Assert.assertFalse(sorter.isExceptionFatal(new SQLException("", "", -8000))); } + + public void test_true_3() throws Exception { + MySqlExceptionSorter sorter = new MySqlExceptionSorter(); + Assert.assertTrue(sorter.isExceptionFatal(new com.mysql.jdbc.CommunicationsException(null, 0, 0, null))); + } }