You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2020/08/05 11:02:33 UTC
[shardingsphere] branch master updated: fix sqlException.getCause
isNull (#6584)
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 <42...@gmail.com>
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));