You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by le...@apache.org on 2022/08/20 17:19:25 UTC
[dolphinscheduler] branch dev updated: Fix some resource leak (#11576)
This is an automated email from the ASF dual-hosted git repository.
leonbao pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 0b82755796 Fix some resource leak (#11576)
0b82755796 is described below
commit 0b82755796ddabceddb983b07a4dbb1108313c9b
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Sun Aug 21 01:19:16 2022 +0800
Fix some resource leak (#11576)
---
.../dolphinscheduler/api/utils/FileUtils.java | 5 +--
.../dolphinscheduler/dao/upgrade/SchemaUtils.java | 5 +--
.../tools/datasource/dao/UpgradeDao.java | 42 +++++++++++-----------
3 files changed, 28 insertions(+), 24 deletions(-)
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/FileUtils.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/FileUtils.java
index 606dc6c396..3304d0c497 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/FileUtils.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/FileUtils.java
@@ -20,6 +20,7 @@ import org.apache.commons.io.IOUtils;
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
import java.net.MalformedURLException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
@@ -76,8 +77,8 @@ public class FileUtils {
* @return file content string
*/
public static String file2String(MultipartFile file) {
- try {
- return IOUtils.toString(file.getInputStream(), StandardCharsets.UTF_8);
+ try (InputStream inputStream = file.getInputStream()) {
+ return IOUtils.toString(inputStream, StandardCharsets.UTF_8);
} catch (IOException e) {
logger.error("file convert to string failed: {}", file.getName());
}
diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/upgrade/SchemaUtils.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/upgrade/SchemaUtils.java
index 625c3551f1..f0fdeeea56 100644
--- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/upgrade/SchemaUtils.java
+++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/upgrade/SchemaUtils.java
@@ -22,6 +22,7 @@ import org.apache.dolphinscheduler.common.utils.FileUtils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.InputStream;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -106,8 +107,8 @@ public class SchemaUtils {
public static String getSoftVersion() throws IOException {
final ClassPathResource softVersionFile = new ClassPathResource("sql/soft_version");
String softVersion;
- try {
- softVersion = FileUtils.readFile2Str(softVersionFile.getInputStream());
+ try (InputStream inputStream = softVersionFile.getInputStream()) {
+ softVersion = FileUtils.readFile2Str(inputStream);
softVersion = Strings.nullToEmpty(softVersion).replaceAll("\\s+|\r|\n", "");
} catch (FileNotFoundException e) {
logger.error(e.getMessage(), e);
diff --git a/dolphinscheduler-tools/src/main/java/org/apache/dolphinscheduler/tools/datasource/dao/UpgradeDao.java b/dolphinscheduler-tools/src/main/java/org/apache/dolphinscheduler/tools/datasource/dao/UpgradeDao.java
index 49092a6bdc..c3dbbe9bce 100644
--- a/dolphinscheduler-tools/src/main/java/org/apache/dolphinscheduler/tools/datasource/dao/UpgradeDao.java
+++ b/dolphinscheduler-tools/src/main/java/org/apache/dolphinscheduler/tools/datasource/dao/UpgradeDao.java
@@ -107,8 +107,9 @@ public abstract class UpgradeDao {
try (Connection conn = dataSource.getConnection()) {
// Execute the dolphinscheduler_ddl.sql script to create the table structure of dolphinscheduler
ScriptRunner initScriptRunner = new ScriptRunner(conn, true, true);
- Reader initSqlReader = new InputStreamReader(mysqlSQLFilePath.getInputStream());
- initScriptRunner.runScript(initSqlReader);
+ try (Reader initSqlReader = new InputStreamReader(mysqlSQLFilePath.getInputStream())) {
+ initScriptRunner.runScript(initSqlReader);
+ }
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw new RuntimeException(e.getMessage(), e);
@@ -299,22 +300,23 @@ public abstract class UpgradeDao {
conn.setAutoCommit(false);
// Execute the upgraded dolphinscheduler dml
ScriptRunner scriptRunner = new ScriptRunner(conn, false, true);
- Reader sqlReader = new InputStreamReader(sqlFilePath.getInputStream());
- scriptRunner.runScript(sqlReader);
- if (isExistsTable(T_VERSION_NAME)) {
- // Change version in the version table to the new version
- String upgradeSQL = String.format("update %s set version = ?", T_VERSION_NAME);
- pstmt = conn.prepareStatement(upgradeSQL);
- pstmt.setString(1, schemaVersion);
- pstmt.executeUpdate();
- } else if (isExistsTable(T_NEW_VERSION_NAME)) {
- // Change version in the version table to the new version
- String upgradeSQL = String.format("update %s set version = ?", T_NEW_VERSION_NAME);
- pstmt = conn.prepareStatement(upgradeSQL);
- pstmt.setString(1, schemaVersion);
- pstmt.executeUpdate();
+ try (Reader sqlReader = new InputStreamReader(sqlFilePath.getInputStream())) {
+ scriptRunner.runScript(sqlReader);
+ if (isExistsTable(T_VERSION_NAME)) {
+ // Change version in the version table to the new version
+ String upgradeSQL = String.format("update %s set version = ?", T_VERSION_NAME);
+ pstmt = conn.prepareStatement(upgradeSQL);
+ pstmt.setString(1, schemaVersion);
+ pstmt.executeUpdate();
+ } else if (isExistsTable(T_NEW_VERSION_NAME)) {
+ // Change version in the version table to the new version
+ String upgradeSQL = String.format("update %s set version = ?", T_NEW_VERSION_NAME);
+ pstmt = conn.prepareStatement(upgradeSQL);
+ pstmt.setString(1, schemaVersion);
+ pstmt.executeUpdate();
+ }
+ conn.commit();
}
- conn.commit();
} catch (FileNotFoundException e) {
try {
conn.rollback();
@@ -363,9 +365,9 @@ public abstract class UpgradeDao {
conn.setAutoCommit(true);
// Execute the dolphinscheduler ddl.sql for the upgrade
ScriptRunner scriptRunner = new ScriptRunner(conn, true, true);
- Reader sqlReader = new InputStreamReader(sqlFilePath.getInputStream());
- scriptRunner.runScript(sqlReader);
-
+ try (Reader sqlReader = new InputStreamReader(sqlFilePath.getInputStream())) {
+ scriptRunner.runScript(sqlReader);
+ }
} catch (FileNotFoundException e) {
logger.error(e.getMessage(), e);