diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java index 6d3bcb0781..3dbc242a17 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java @@ -319,7 +319,7 @@ public class ApiUtils { } } for (JsonNode node : jsonArray) { - handleStr(apiDefinition, node.toString(), childrenField, rootPath + "." + fieldName + "[*]"); + handleStr(apiDefinition, node.toString(), childrenField, rootPath + "." + String.format(path, fieldName) + "[*]"); } o.put("children", childrenField); o.put("childrenDataType", "LIST"); diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java index 070e3c0e6c..a6a421b4a3 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java @@ -47,7 +47,6 @@ import java.util.stream.Collectors; @Component("calciteProvider") public class CalciteProvider { - //TODO mongo impala es hive @Resource protected CoreDatasourceMapper coreDatasourceMapper; @Resource @@ -93,7 +92,7 @@ public class CalciteProvider { schemas.add(resultSet.getString(1)); } } catch (Exception e) { - DEException.throwException(e); + DEException.throwException(e.getMessage()); } return schemas; } @@ -107,7 +106,7 @@ public class CalciteProvider { tables.add(getTableDesc(datasourceRequest, resultSet)); } } catch (Exception e) { - DEException.throwException(e); + DEException.throwException(e.getMessage()); } } return tables; @@ -145,15 +144,11 @@ public class CalciteProvider { String querySql = getTablesSql(datasourceRequest).get(0); try (Connection con = getConnection(datasourceRequest.getDatasource()); Statement statement = getStatement(con, 30); ResultSet resultSet = statement.executeQuery(querySql)) { } catch (Exception e) { - DEException.throwException(e); + DEException.throwException(e.getMessage()); } return "Success"; } - public List getTableFields(DatasourceRequest datasourceRequest) throws Exception { - return null; - } - public Map fetchResultField(DatasourceRequest datasourceRequest) throws DEException { List datasetTableFields = new ArrayList<>(); List list = new LinkedList<>(); @@ -242,7 +237,7 @@ public class CalciteProvider { Class.forName("org.apache.calcite.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:calcite:", info); } catch (Exception e) { - DEException.throwException(e); + DEException.throwException(e.getMessage()); } return connection; } @@ -433,7 +428,7 @@ public class CalciteProvider { list.add(row); } } catch (Exception e) { - DEException.throwException(e); + DEException.throwException(e.getMessage()); } return list; } @@ -573,7 +568,7 @@ public class CalciteProvider { Driver driverClass = (Driver) jdbcClassLoader.loadClass(driverClassName).newInstance(); conn = driverClass.connect(configuration.getJdbc(), props); } catch (Exception e) { - DEException.throwException(e); + DEException.throwException(e.getMessage()); } return conn; } @@ -587,7 +582,7 @@ public class CalciteProvider { stat = connection.createStatement(); stat.setQueryTimeout(queryTimeout); } catch (Exception e) { - DEException.throwException(e); + DEException.throwException(e.getMessage()); } return stat; } @@ -640,7 +635,7 @@ public class CalciteProvider { customJdbcClassLoaders.put(coreDriver.getId(), customJdbcClassLoader); return customJdbcClassLoader; } catch (Exception e) { - DEException.throwException(e); + DEException.throwException(e.getMessage()); } return null; } @@ -691,7 +686,7 @@ public class CalciteProvider { SchemaPlus rootSchema = buildSchema(datasourceRequest, calciteConnection); addCustomFunctions(rootSchema); } catch (Exception e) { - DEException.throwException(e); + DEException.throwException(e.getMessage()); } } @@ -709,7 +704,7 @@ public class CalciteProvider { rootSchema.removeSubSchema(datasourceSchemaDTO.getSchemaAlias()); } } catch (Exception e) { - DEException.throwException(e); + DEException.throwException(e.getMessage()); } } diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java index b66e6e2ae8..91a8a00ab3 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java @@ -125,10 +125,12 @@ public class DatasourceServer implements DatasourceApi { if (Objects.equals(dataSourceDTO.getId(), dataSourceDTO.getPid())) { DEException.throwException(Translator.get("i18n_pid_not_eq_id")); } - List ids = new ArrayList<>(); - getParents(dataSourceDTO.getPid(), ids); - if (ids.contains(dataSourceDTO.getId())) { - DEException.throwException(Translator.get("i18n_pid_not_eq_id")); + if (dataSourceDTO.getPid() != 0) { + List ids = new ArrayList<>(); + getParents(dataSourceDTO.getPid(), ids); + if (ids.contains(dataSourceDTO.getId())) { + DEException.throwException(Translator.get("i18n_pid_not_eq_id")); + } } dataSourceManage.move(dataSourceDTO); } diff --git a/core/core-backend/src/main/java/io/dataease/datasource/type/Mysql.java b/core/core-backend/src/main/java/io/dataease/datasource/type/Mysql.java index aa4290a444..fad120d167 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/type/Mysql.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/type/Mysql.java @@ -1,6 +1,7 @@ package io.dataease.datasource.type; import io.dataease.api.ds.vo.DatasourceConfiguration; +import io.dataease.exception.DEException; import lombok.Data; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; @@ -25,7 +26,7 @@ public class Mysql extends DatasourceConfiguration { } else { for (String illegalParameter : illegalParameters) { if (getExtraParams().toLowerCase().contains(illegalParameter.toLowerCase())) { - throw new RuntimeException("Illegal parameter: " + illegalParameter); + DEException.throwException("Illegal parameter: " + illegalParameter); } } diff --git a/sdk/common/src/main/java/io/dataease/utils/HttpClientUtil.java b/sdk/common/src/main/java/io/dataease/utils/HttpClientUtil.java index 9cb38b703a..ee0f649c01 100755 --- a/sdk/common/src/main/java/io/dataease/utils/HttpClientUtil.java +++ b/sdk/common/src/main/java/io/dataease/utils/HttpClientUtil.java @@ -78,13 +78,14 @@ public class HttpClientUtil { * @return 响应结果字符串 */ public static String get(String url, HttpClientConfig config) { - CloseableHttpClient httpClient = buildHttpClient(url); - HttpGet httpGet = new HttpGet(url); - - if (config == null) { - config = new HttpClientConfig(); - } + CloseableHttpClient httpClient = null; try { + httpClient = buildHttpClient(url); + HttpGet httpGet = new HttpGet(url); + + if (config == null) { + config = new HttpClientConfig(); + } httpGet.setConfig(config.buildRequestConfig()); Map header = config.getHeader(); @@ -98,7 +99,9 @@ public class HttpClientUtil { throw new DEException(SYSTEM_INNER_ERROR.code(), "HttpClient查询失败: " + e.getMessage()); } finally { try { - httpClient.close(); + if(httpClient != null){ + httpClient.close(); + } } catch (Exception e) { logger.error("HttpClient关闭连接失败", e); } @@ -143,14 +146,14 @@ public class HttpClientUtil { * @return 响应结果字符串 */ public static String post(String url, String json, HttpClientConfig config) { - CloseableHttpClient httpClient = buildHttpClient(url); - HttpPost httpPost = new HttpPost(url); - if (config == null) { - config = new HttpClientConfig(); - } + CloseableHttpClient httpClient = null; try { + buildHttpClient(url); + HttpPost httpPost = new HttpPost(url); + if (config == null) { + config = new HttpClientConfig(); + } httpPost.setConfig(config.buildRequestConfig()); - Map header = config.getHeader(); for (String key : header.keySet()) { httpPost.addHeader(key, header.get(key)); @@ -168,7 +171,9 @@ public class HttpClientUtil { throw new DEException(SYSTEM_INNER_ERROR.code(), "HttpClient查询失败: " + e.getMessage()); } finally { try { - httpClient.close(); + if(httpClient != null){ + httpClient.close(); + } } catch (Exception e) { logger.error("HttpClient关闭连接失败", e); } @@ -195,14 +200,15 @@ public class HttpClientUtil { * @return 响应结果字符串 */ public static String post(String url, Map body, HttpClientConfig config) { - CloseableHttpClient httpClient = buildHttpClient(url); - HttpPost httpPost = new HttpPost(url); - if (config == null) { - config = new HttpClientConfig(); - } - try { - httpPost.setConfig(config.buildRequestConfig()); + CloseableHttpClient httpClient = null; + try { + buildHttpClient(url); + HttpPost httpPost = new HttpPost(url); + if (config == null) { + config = new HttpClientConfig(); + } + httpPost.setConfig(config.buildRequestConfig()); Map header = config.getHeader(); for (String key : header.keySet()) { httpPost.addHeader(key, header.get(key)); @@ -227,7 +233,9 @@ public class HttpClientUtil { throw new DEException(SYSTEM_INNER_ERROR.code(), "HttpClient查询失败: " + e.getMessage()); } finally { try { - httpClient.close(); + if(httpClient != null){ + httpClient.close(); + } } catch (Exception e) { logger.error("HttpClient关闭连接失败", e); }