bug fixed for dbType compare, fix #4005

This commit is contained in:
高铁
2020-11-03 11:29:04 +08:00
parent c7ad372942
commit 10f84b4eda
3 changed files with 11 additions and 5 deletions
@@ -99,4 +99,8 @@ public enum DbType {
return null;
}
}
public final boolean equals(String other) {
return this == of(other);
}
}
@@ -867,7 +867,7 @@ public abstract class DruidAbstractDataSource extends WrapperAdapter implements
}
public void setValidationQueryTimeout(int validationQueryTimeout) {
if (validationQueryTimeout < 0 && JdbcConstants.SQL_SERVER.equals(dbTypeName)) {
if (validationQueryTimeout < 0 && DbType.of(dbTypeName) == DbType.sqlserver) {
LOG.error("validationQueryTimeout should be >= 0");
}
this.validationQueryTimeout = validationQueryTimeout;
@@ -29,6 +29,7 @@ import java.util.concurrent.locks.ReentrantLock;
import javax.sql.ConnectionEventListener;
import javax.sql.StatementEventListener;
import com.alibaba.druid.DbType;
import com.alibaba.druid.pool.DruidAbstractDataSource.PhysicalConnectionInfo;
import com.alibaba.druid.proxy.jdbc.WrapperProxy;
import com.alibaba.druid.support.logging.Log;
@@ -112,10 +113,11 @@ public final class DruidConnectionHolder {
{
boolean initUnderlyHoldability = !holdabilityUnsupported;
if (JdbcConstants.SYBASE.equals(dataSource.dbTypeName) //
|| JdbcConstants.DB2.equals(dataSource.dbTypeName) //
|| JdbcConstants.HIVE.equals(dataSource.dbTypeName) //
|| JdbcConstants.ODPS.equals(dataSource.dbTypeName) //
DbType dbType = DbType.of(dataSource.dbTypeName);
if (dbType == DbType.sybase //
|| dbType == DbType.db2 //
|| dbType == DbType.hive //
|| dbType == DbType.odps //
) {
initUnderlyHoldability = false;
}