Skip to content

Commit

Permalink
optimize: refactor ColumnUtils and EscapeHandler (#5456)
Browse files Browse the repository at this point in the history
# Conflicts:
#	rm-datasource/src/main/java/io/seata/rm/datasource/exec/BaseTransactionalExecutor.java
#	rm-datasource/src/main/java/io/seata/rm/datasource/exec/UpdateExecutor.java
#	rm-datasource/src/main/java/io/seata/rm/datasource/sql/handler/mariadb/MariadbEscapeHandler.java
#	rm-datasource/src/main/java/io/seata/rm/datasource/sql/handler/mysql/MySQLEscapeHandler.java
#	rm-datasource/src/main/java/io/seata/rm/datasource/sql/handler/oracle/OracleEscapeHandler.java
#	rm-datasource/src/main/java/io/seata/rm/datasource/sql/handler/postgresql/PostgresqlEscapeHandler.java
#	rm-datasource/src/main/resources/META-INF/services/io.seata.sqlparser.EscapeHandler
#	rm-datasource/src/test/java/io/seata/rm/datasource/ColumnUtilsTest.java
#	rm-datasource/src/test/java/io/seata/rm/datasource/sql/handler/EscapeHandlerTest.java
#	sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/EscapeHandler.java
#	sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/EscapeSymbol.java
#	sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/KeywordChecker.java
#	sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/util/ColumnUtils.java
  • Loading branch information
Bughue committed Nov 9, 2023
1 parent 96c3121 commit 2700d05
Show file tree
Hide file tree
Showing 6 changed files with 9 additions and 34 deletions.
10 changes: 0 additions & 10 deletions common/src/main/java/io/seata/common/ConfigurationKeys.java
Original file line number Diff line number Diff line change
Expand Up @@ -982,11 +982,6 @@ public interface ConfigurationKeys {
*/
String ENABLE_PARALLEL_HANDLE_BRANCH_KEY = SERVER_PREFIX + "enableParallelHandleBranch";

/**
* The constant RM_APPLICATION_DATA_PERCENT_WARN
*/
String RM_APPLICATION_DATA_PERCENT_WARN = CLIENT_RM_PREFIX + "applicationDataWarnPercent";

/**
* The constant RM_APPLICATION_DATA_SIZE_ERROR
*/
Expand All @@ -997,11 +992,6 @@ public interface ConfigurationKeys {
*/
String RM_APPLICATION_DATA_SIZE_CHECK = CLIENT_RM_PREFIX + "applicationDataEnable";

/**
* The constant SERVER_APPLICATION_DATA_PERCENT_WARN
*/
String SERVER_APPLICATION_DATA_PERCENT_WARN = SERVER_PREFIX + "applicationDataWarnPercent";

/**
* The constant SERVER_APPLICATION_DATA_SIZE_ERROR
*/
Expand Down
5 changes: 0 additions & 5 deletions common/src/main/java/io/seata/common/DefaultValues.java
Original file line number Diff line number Diff line change
Expand Up @@ -197,11 +197,6 @@ public interface DefaultValues {
*/
long DEFAULT_RPC_TC_REQUEST_TIMEOUT = Duration.ofSeconds(15).toMillis();

/**
* the constant DEFAULT_APPLICATION_DATA_PERENT_WARN
*/
int DEFAULT_APPLICATION_DATA_PERENT_WARN = 50;

/**
* the constant DEFAULT_APPLICATION_DATA_SIZE_ERR
*/
Expand Down
7 changes: 1 addition & 6 deletions common/src/main/java/io/seata/common/util/StringUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -358,11 +358,10 @@ public static String hump2Line(String str) {
*
* @param data the str
* @param dataName the data name
* @param warningPercent log warning if size > errorSize * warningPercent / 100
* @param errorSize throw exception if size > errorSize
* @return boolean
*/
public static boolean checkDataSize(String data, String dataName, int warningPercent, int errorSize, boolean throwIfErr) {
public static boolean checkDataSize(String data, String dataName, int errorSize, boolean throwIfErr) {
try {
if (isBlank(data)) {
return true;
Expand All @@ -375,10 +374,6 @@ public static boolean checkDataSize(String data, String dataName, int warningPer
}
throw new IllegalArgumentException(dataName + " data is too large, size=" + length);
}
if (length > errorSize * warningPercent / 100) {
LOGGER.warn("{} data is large(warningSize), size={}", dataName, length);
return false;
}
} catch (UnsupportedEncodingException e) {
LOGGER.error("decode name error: {}", e.getMessage(), e);
}
Expand Down
10 changes: 5 additions & 5 deletions common/src/test/java/io/seata/common/util/StringUtilsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -383,12 +383,12 @@ public String toString() {

@Test
void checkDataSize() {
assertThat(StringUtils.checkDataSize("","testdata",90,10,true)).isEqualTo(Boolean.TRUE);
assertThat(StringUtils.checkDataSize("1234567","testdata",90,10,true)).isEqualTo(Boolean.TRUE);
assertThat(StringUtils.checkDataSize("1234567","testdata",50,10,true)).isEqualTo(Boolean.FALSE);
assertThat(StringUtils.checkDataSize("","testdata",10,false)).isEqualTo(Boolean.TRUE);
assertThat(StringUtils.checkDataSize("1234567","testdata",17,false)).isEqualTo(Boolean.TRUE);
assertThat(StringUtils.checkDataSize("1234567","testdata",4,false)).isEqualTo(Boolean.FALSE);
Assertions.assertThrows(IllegalArgumentException.class, () ->
StringUtils.checkDataSize("1234567","testdata",50,6,true)
StringUtils.checkDataSize("1234567","testdata",6,true)
);
assertThat( StringUtils.checkDataSize("1234567","testdata",50,6,false)).isEqualTo(Boolean.FALSE);
assertThat( StringUtils.checkDataSize("1234567","testdata",6,false)).isEqualTo(Boolean.FALSE);
}
}
6 changes: 2 additions & 4 deletions rm/src/main/java/io/seata/rm/AbstractResourceManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,6 @@ public abstract class AbstractResourceManager implements ResourceManager {

private static final Configuration CONFIG = ConfigurationFactory.getInstance();

private static int appDataWarnPercent = CONFIG.getInt(ConfigurationKeys.RM_APPLICATION_DATA_PERCENT_WARN,
DefaultValues.DEFAULT_APPLICATION_DATA_PERENT_WARN);
private static int appDataErrSize = CONFIG.getInt(ConfigurationKeys.RM_APPLICATION_DATA_SIZE_ERROR,
DefaultValues.DEFAULT_APPLICATION_DATA_SIZE_ERR);

Expand All @@ -69,7 +67,7 @@ public abstract class AbstractResourceManager implements ResourceManager {
@Override
public Long branchRegister(BranchType branchType, String resourceId, String clientId, String xid, String applicationData, String lockKeys) throws TransactionException {
try {
StringUtils.checkDataSize(applicationData, "applicationData", appDataWarnPercent, appDataErrSize, throwDataSizeExp);
StringUtils.checkDataSize(applicationData, "applicationData", appDataErrSize, throwDataSizeExp);

BranchRegisterRequest request = new BranchRegisterRequest();
request.setXid(xid);
Expand Down Expand Up @@ -108,7 +106,7 @@ public Long branchRegister(BranchType branchType, String resourceId, String clie
@Override
public void branchReport(BranchType branchType, String xid, long branchId, BranchStatus status, String applicationData) throws TransactionException {
try {
StringUtils.checkDataSize(applicationData, "applicationData", appDataWarnPercent, appDataErrSize, throwDataSizeExp);
StringUtils.checkDataSize(applicationData, "applicationData", appDataErrSize, throwDataSizeExp);
BranchReportRequest request = new BranchReportRequest();
request.setXid(xid);
request.setBranchId(branchId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ public abstract class AbstractCore implements Core {
protected LockManager lockManager = LockerManagerFactory.getLockManager();

private static final Configuration CONFIG = ConfigurationFactory.getInstance();
private int appDataWarnPercent;
private int appDataErrSize ;
private boolean throwDataSizeExp ;

Expand All @@ -76,8 +75,6 @@ public AbstractCore(RemotingServer remotingServer) {
throw new IllegalArgumentException("remotingServer must be not null");
}
this.remotingServer = remotingServer;
this.appDataWarnPercent = CONFIG.getInt(ConfigurationKeys.SERVER_APPLICATION_DATA_PERCENT_WARN,
DefaultValues.DEFAULT_APPLICATION_DATA_PERENT_WARN);
this.appDataErrSize = CONFIG.getInt(ConfigurationKeys.SERVER_APPLICATION_DATA_SIZE_ERROR,
DefaultValues.DEFAULT_APPLICATION_DATA_SIZE_ERR);
this.throwDataSizeExp = CONFIG.getBoolean(ConfigurationKeys.SERVER_APPLICATION_DATA_SIZE_CHECK, false);
Expand All @@ -90,7 +87,7 @@ public AbstractCore(RemotingServer remotingServer) {
public Long branchRegister(BranchType branchType, String resourceId, String clientId, String xid,
String applicationData, String lockKeys) throws TransactionException {
GlobalSession globalSession = assertGlobalSessionNotNull(xid, false);
StringUtils.checkDataSize(applicationData, "applicationData", appDataWarnPercent, appDataErrSize, throwDataSizeExp);
StringUtils.checkDataSize(applicationData, "applicationData", appDataErrSize, throwDataSizeExp);

return SessionHolder.lockAndExecute(globalSession, () -> {
globalSessionStatusCheck(globalSession);
Expand Down

0 comments on commit 2700d05

Please sign in to comment.