This is an automated email from the ASF dual-hosted git repository.
zhonghongsheng 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 6be64dbef63 Refactor ErrorPacketFactory (#28137)
6be64dbef63 is described below
commit 6be64dbef63bb17fe28d8923bb4ddaaf5d405e99
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Aug 17 13:40:45 2023 +0800
Refactor ErrorPacketFactory (#28137)
---
.../proxy/frontend/mysql/err/MySQLErrorPacketFactory.java | 4 +++-
.../frontend/opengauss/err/OpenGaussErrorPacketFactory.java | 8 +++-----
.../frontend/postgresql/err/PostgreSQLErrorPacketFactory.java | 9 ++++-----
3 files changed, 10 insertions(+), 11 deletions(-)
diff --git
a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrorPacketFactory.java
b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrorPacketFactory.java
index ba938d756c9..e7b76b99714 100644
---
a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrorPacketFactory.java
+++
b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrorPacketFactory.java
@@ -34,6 +34,8 @@ import java.sql.SQLException;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class MySQLErrorPacketFactory {
+ private static final DatabaseType DATABASE_TYPE =
TypedSPILoader.getService(DatabaseType.class, "MySQL");
+
/**
* Create new instance of MySQL error packet.
*
@@ -41,7 +43,7 @@ public final class MySQLErrorPacketFactory {
* @return created instance
*/
public static MySQLErrPacket newInstance(final Exception cause) {
- SQLException sqlException =
SQLExceptionTransformEngine.toSQLException(cause,
TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+ SQLException sqlException =
SQLExceptionTransformEngine.toSQLException(cause, DATABASE_TYPE);
return null == sqlException.getSQLState() ? new
MySQLErrPacket(MySQLVendorError.ER_INTERNAL_ERROR,
getErrorMessage(sqlException)) : new MySQLErrPacket(sqlException);
}
diff --git
a/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/err/OpenGaussErrorPacketFactory.java
b/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/err/OpenGaussErrorPacketFactory.java
index 400ed58d9f2..cce64c7e172 100644
---
a/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/err/OpenGaussErrorPacketFactory.java
+++
b/proxy/frontend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/err/OpenGaussErrorPacketFactory.java
@@ -39,6 +39,8 @@ import java.util.Optional;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class OpenGaussErrorPacketFactory {
+ private static final DatabaseType DATABASE_TYPE =
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
+
/**
* Create new instance of openGauss error packet.
*
@@ -47,11 +49,7 @@ public final class OpenGaussErrorPacketFactory {
*/
public static OpenGaussErrorResponsePacket newInstance(final Exception
cause) {
Optional<ServerErrorMessage> serverErrorMessage =
findServerErrorMessage(cause);
- if (serverErrorMessage.isPresent()) {
- return new OpenGaussErrorResponsePacket(serverErrorMessage.get());
- }
- SQLException sqlException =
SQLExceptionTransformEngine.toSQLException(cause,
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"));
- return createErrorResponsePacket(sqlException);
+ return
serverErrorMessage.map(OpenGaussErrorResponsePacket::new).orElseGet(() ->
createErrorResponsePacket(SQLExceptionTransformEngine.toSQLException(cause,
DATABASE_TYPE)));
}
private static Optional<ServerErrorMessage> findServerErrorMessage(final
Exception cause) {
diff --git
a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/err/PostgreSQLErrorPacketFactory.java
b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/err/PostgreSQLErrorPacketFactory.java
index 26605e10b3d..3815e41526e 100644
---
a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/err/PostgreSQLErrorPacketFactory.java
+++
b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/err/PostgreSQLErrorPacketFactory.java
@@ -40,6 +40,8 @@ import java.util.Optional;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class PostgreSQLErrorPacketFactory {
+ private static final DatabaseType DATABASE_TYPE =
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
+
/**
* Create new instance of PostgreSQL error packet.
*
@@ -48,11 +50,8 @@ public final class PostgreSQLErrorPacketFactory {
*/
public static PostgreSQLErrorResponsePacket newInstance(final Exception
cause) {
Optional<ServerErrorMessage> serverErrorMessage =
findServerErrorMessage(cause);
- if (serverErrorMessage.isPresent()) {
- return createErrorResponsePacket(serverErrorMessage.get());
- }
- SQLException sqlException =
SQLExceptionTransformEngine.toSQLException(cause,
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"));
- return createErrorResponsePacket(sqlException);
+ return
serverErrorMessage.map(PostgreSQLErrorPacketFactory::createErrorResponsePacket)
+ .orElseGet(() ->
createErrorResponsePacket(SQLExceptionTransformEngine.toSQLException(cause,
DATABASE_TYPE)));
}
private static Optional<ServerErrorMessage> findServerErrorMessage(final
Exception cause) {