Skip to content

Commit

Permalink
fix 数据源创建失败缺少cause(#653) (#657)
Browse files Browse the repository at this point in the history
1. 修复(#653) 为所有的数据源创建时进行初始化的都添加统一的异常包装返回.
  • Loading branch information
alvinkwok1 committed Jul 23, 2024
1 parent 1e4d58f commit f93fff4
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
return (DataSource) buildMethod.invoke(o6);
} catch (Exception e) {
throw new ErrorCreateDataSourceException(
"dynamic-datasource create basic database named " + dataSourceProperty.getPoolName() + " error");
"dynamic-datasource create datasource named [" + dataSourceProperty.getPoolName() + "] error", e);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import com.baomidou.dynamic.datasource.enums.DdConstants;
import com.baomidou.dynamic.datasource.exception.ErrorCreateDataSourceException;
import com.baomidou.dynamic.datasource.toolkit.ConfigMergeCreator;
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
import lombok.AllArgsConstructor;
Expand Down Expand Up @@ -66,7 +67,12 @@ public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
config.setDriverClassName(driverClassName);
}
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
return new BeeDataSource(config);
try {
return new BeeDataSource(config);
} catch (Exception e) {
throw new ErrorCreateDataSourceException(
"dynamic-datasource create datasource named [" + dataSourceProperty.getPoolName() + "] error", e);
}
}
BeeDataSource beeDataSource = new BeeDataSource();
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import com.baomidou.dynamic.datasource.enums.DdConstants;
import com.baomidou.dynamic.datasource.exception.ErrorCreateDataSourceException;
import com.baomidou.dynamic.datasource.toolkit.ConfigMergeCreator;
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
import lombok.AllArgsConstructor;
Expand Down Expand Up @@ -53,7 +54,13 @@ public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
dataSource.setDriverClassName(driverClassName);
}
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
dataSource.start();
try {
dataSource.start();
}catch (Exception e) {

throw new ErrorCreateDataSourceException(
"dynamic-datasource create Dbcp2 database named " + dataSourceProperty.getPoolName() + " error", e);
}
}
return dataSource;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
try {
configMethod.invoke(dataSource, properties);
} catch (Exception ignore) {

// Druid only prints logs when copying property errors
}
//连接参数单独设置
dataSource.setConnectProperties(config.getConnectionProperties());
Expand All @@ -135,8 +135,9 @@ public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
try {
dataSource.init();
} catch (SQLException e) {
throw new ErrorCreateDataSourceException("druid create error", e);
} catch (Exception e) {
throw new ErrorCreateDataSourceException(
"dynamic-datasource create datasource named [" + dataSourceProperty.getPoolName() + "] error", e);
}
}
return dataSource;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import com.baomidou.dynamic.datasource.enums.DdConstants;
import com.baomidou.dynamic.datasource.exception.ErrorCreateDataSourceException;
import com.baomidou.dynamic.datasource.toolkit.ConfigMergeCreator;
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
import com.zaxxer.hikari.HikariConfig;
Expand Down Expand Up @@ -82,14 +83,19 @@ public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
config.setDriverClassName(driverClassName);
}
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
return new HikariDataSource(config);
try {
return new HikariDataSource(config);
}catch (Exception e){
throw new ErrorCreateDataSourceException(
"dynamic-datasource create datasource named [" + dataSourceProperty.getPoolName() + "] error", e);
}
}
config.validate();
HikariDataSource dataSource = new HikariDataSource();
try {
configCopyMethod.invoke(config, dataSource);
} catch (IllegalAccessException | InvocationTargetException e) {
throw new RuntimeException("HikariConfig failed to copy to HikariDataSource", e);
throw new ErrorCreateDataSourceException("HikariConfig failed to copy to HikariDataSource", e);
}
return dataSource;
}
Expand Down

0 comments on commit f93fff4

Please sign in to comment.