This is an automated email from the ASF dual-hosted git repository.

panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new bfebcac6 fix sqlException.getCause isNull (#6584)
bfebcac6 is described below

commit bfebcac6482f4211ce1cc706205f0e3653c4d182
Author: cmonkey <[email protected]>
AuthorDate: Wed Aug 5 19:02:24 2020 +0800

    fix sqlException.getCause isNull (#6584)
---
 .../proxy/frontend/mysql/MySQLErrPacketFactory.java       |  2 +-
 .../proxy/frontend/mysql/MySQLErrPacketFactoryTest.java   | 15 +++++++++++++--
 .../binary/execute/MySQLComStmtExecuteExecutorTest.java   |  1 -
 .../query/text/query/MySQLComQueryPacketExecutorTest.java |  1 -
 4 files changed, 14 insertions(+), 5 deletions(-)

diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLErrPacketFactory.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLErrPacketFactory.java
index bd444e4..a6d8c72 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLErrPacketFactory.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLErrPacketFactory.java
@@ -47,7 +47,7 @@ public final class MySQLErrPacketFactory {
         if (cause instanceof SQLException) {
             SQLException sqlException = (SQLException) cause;
             return null != sqlException.getSQLState() ? new 
MySQLErrPacket(sequenceId, sqlException.getErrorCode(), 
sqlException.getSQLState(), sqlException.getMessage())
-                : new MySQLErrPacket(sequenceId, 
MySQLServerErrorCode.ER_INTERNAL_ERROR, sqlException.getCause().getMessage());
+                : new MySQLErrPacket(sequenceId, 
MySQLServerErrorCode.ER_INTERNAL_ERROR, cause.getMessage());
         }
         if (cause instanceof ShardingCTLException) {
             ShardingCTLException shardingCTLException = (ShardingCTLException) 
cause;
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLErrPacketFactoryTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLErrPacketFactoryTest.java
index 0e3305c..e3806fa 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLErrPacketFactoryTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLErrPacketFactoryTest.java
@@ -28,6 +28,8 @@ import org.junit.Test;
 import java.sql.SQLException;
 
 import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.startsWith;
+import static org.hamcrest.CoreMatchers.endsWith;
 import static org.junit.Assert.assertThat;
 
 public final class MySQLErrPacketFactoryTest {
@@ -40,14 +42,23 @@ public final class MySQLErrPacketFactoryTest {
         assertThat(actual.getSqlState(), is("XXX"));
         assertThat(actual.getErrorMessage(), is("No reason"));
     }
-    
+
     @Test
     public void assertNewInstanceWithSQLExceptionOfNullSqlState() {
         MySQLErrPacket actual = MySQLErrPacketFactory.newInstance(1, new 
SQLException(new RuntimeException("No reason")));
         assertThat(actual.getSequenceId(), is(1));
         assertThat(actual.getErrorCode(), is(1815));
         assertThat(actual.getSqlState(), is("HY000"));
-        assertThat(actual.getErrorMessage(), is("Internal error: No reason"));
+        assertThat(actual.getErrorMessage(), endsWith("No reason"));
+    }
+
+    @Test
+    public void assertNewInstanceWithSQLExceptionOfNullParam() {
+        MySQLErrPacket actual = MySQLErrPacketFactory.newInstance(1, new 
SQLException());
+        assertThat(actual.getSequenceId(), is(1));
+        assertThat(actual.getErrorCode(), is(1815));
+        assertThat(actual.getSqlState(), is("HY000"));
+        assertThat(actual.getErrorMessage(), startsWith("Internal error"));
     }
     
     @Test
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
index cdcf0b1..e9abe29 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
@@ -63,7 +63,6 @@ public class MySQLComStmtExecuteExecutorTest {
         when(backendConnection.getSchema()).thenReturn(schema);
         MySQLComStmtExecuteExecutor mysqlComStmtExecuteExecutor = new 
MySQLComStmtExecuteExecutor(mock(MySQLComStmtExecutePacket.class), 
backendConnection);
         FieldSetter.setField(mysqlComStmtExecuteExecutor, 
MySQLComStmtExecuteExecutor.class.getDeclaredField("databaseCommunicationEngine"),
 databaseCommunicationEngine);
-        when(sqlException.getCause()).thenReturn(new Exception());
         when(databaseCommunicationEngine.execute()).thenReturn(new 
ErrorResponse(sqlException));
         mysqlComStmtExecuteExecutor.execute();
         assertThat(mysqlComStmtExecuteExecutor.isErrorResponse(), 
Matchers.is(true));
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
index 738ce76..dfc900d 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
@@ -53,7 +53,6 @@ public class MySQLComQueryPacketExecutorTest {
     @SneakyThrows
     public void assertIsErrorResponse() {
         FieldSetter.setField(mysqlComQueryPacketExecutor, 
MySQLComQueryPacketExecutor.class.getDeclaredField("textProtocolBackendHandler"),
 textProtocolBackendHandler);
-        when(sqlException.getCause()).thenReturn(new Exception());
         when(textProtocolBackendHandler.execute()).thenReturn(new 
ErrorResponse(sqlException));
         mysqlComQueryPacketExecutor.execute();
         assertThat(mysqlComQueryPacketExecutor.isErrorResponse(), 
Matchers.is(true));

Reply via email to