From d516b061421a3993e3474b9e9151eaa4adb3b749 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 26 Mar 2024 18:50:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E6=BA=90):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=88=9B=E5=BB=BA=E8=BF=9E=E6=8E=A5=E8=BF=87=E5=A4=9A?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../provider/DefaultJdbcProvider.java | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/sdk/dataease-plugin-datasource/src/main/java/io/dataease/plugins/datasource/provider/DefaultJdbcProvider.java b/sdk/dataease-plugin-datasource/src/main/java/io/dataease/plugins/datasource/provider/DefaultJdbcProvider.java index 3ce1e28613..03066d3569 100644 --- a/sdk/dataease-plugin-datasource/src/main/java/io/dataease/plugins/datasource/provider/DefaultJdbcProvider.java +++ b/sdk/dataease-plugin-datasource/src/main/java/io/dataease/plugins/datasource/provider/DefaultJdbcProvider.java @@ -94,15 +94,15 @@ public abstract class DefaultJdbcProvider extends Provider { return list; } - public Statement getStatement(Connection connection, int queryTimeout) throws Exception{ - if(connection == null){ + public Statement getStatement(Connection connection, int queryTimeout) throws Exception { + if (connection == null) { throw new Exception("Failed to get connection!"); } Statement stat = connection.createStatement(); - try { - stat.setQueryTimeout(queryTimeout); - }catch (Exception e){ - } + try { + stat.setQueryTimeout(queryTimeout); + } catch (Exception e) { + } return stat; } @@ -330,13 +330,15 @@ public abstract class DefaultJdbcProvider extends Provider { || datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.hive.name())) { return getConnection(datasourceRequest); } - DruidDataSource dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId()); - if (dataSource == null) { - handleDatasource(datasourceRequest, "add"); + synchronized (datasourceRequest.getDatasource().getId()) { + DruidDataSource dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId()); + if (dataSource == null) { + handleDatasource(datasourceRequest, "add"); + } + dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId()); + Connection co = dataSource.getConnection(); + return co; } - dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId()); - Connection co = dataSource.getConnection(); - return co; } @Override @@ -522,22 +524,22 @@ public abstract class DefaultJdbcProvider extends Provider { } @Override - public void checkConfiguration(Datasource datasource)throws Exception{ - if (StringUtils.isEmpty(datasource.getConfiguration())){ + public void checkConfiguration(Datasource datasource) throws Exception { + if (StringUtils.isEmpty(datasource.getConfiguration())) { throw new Exception("Datasource configuration is empty"); } try { JdbcConfiguration jdbcConfiguration = new Gson().fromJson(datasource.getConfiguration(), JdbcConfiguration.class); - if(jdbcConfiguration.getQueryTimeout() < 0){ - throw new Exception("Querytimeout cannot be less than zero." ); + if (jdbcConfiguration.getQueryTimeout() < 0) { + throw new Exception("Querytimeout cannot be less than zero."); } - }catch (Exception e){ + } catch (Exception e) { throw new Exception("Invalid configuration: " + e.getMessage()); } } - public String dsVersion(DatasourceRequest datasourceRequest) throws Exception{ + public String dsVersion(DatasourceRequest datasourceRequest) throws Exception { JdbcConfiguration jdbcConfiguration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), JdbcConfiguration.class); try (Connection con = getConnectionFromPool(datasourceRequest)) { return String.valueOf(con.getMetaData().getDatabaseMajorVersion());