Fix some resource leak (#11576)
This commit is contained in:
parent
d8d5d392a7
commit
0b82755796
|
|
@ -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());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue