Skip to content

Commit 9bbf15f

Browse files
committed
fix(config): close resource streams
1 parent c2e1eea commit 9bbf15f

7 files changed

Lines changed: 54 additions & 55 deletions

File tree

common/src/main/java/org/tron/core/config/Configuration.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ private static void resolveConfigFile(String fileName, File confFile) {
5050
if (confFile.exists()) {
5151
config = ConfigFactory.parseFile(confFile)
5252
.withFallback(ConfigFactory.defaultReference());
53-
} else if (Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName)
53+
} else if (Thread.currentThread().getContextClassLoader().getResource(fileName)
5454
!= null) {
5555
config = ConfigFactory.load(fileName);
5656
} else {
@@ -59,4 +59,3 @@ private static void resolveConfigFile(String fileName, File confFile) {
5959
}
6060
}
6161
}
62-

framework/src/main/java/org/tron/core/config/args/Args.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1186,9 +1186,8 @@ public String getOutputDirectory() {
11861186
private static void printVersion() {
11871187
Properties properties = new Properties();
11881188
boolean noGitProperties = true;
1189-
try {
1190-
InputStream in = Thread.currentThread()
1191-
.getContextClassLoader().getResourceAsStream("git.properties");
1189+
try (InputStream in = Thread.currentThread()
1190+
.getContextClassLoader().getResourceAsStream("git.properties")) {
11921191
if (in != null) {
11931192
noGitProperties = false;
11941193
properties.load(in);
@@ -1276,9 +1275,8 @@ public static String upperFirst(String name) {
12761275

12771276
private static String getCommitIdAbbrev() {
12781277
Properties properties = new Properties();
1279-
try {
1280-
InputStream in = Thread.currentThread()
1281-
.getContextClassLoader().getResourceAsStream("git.properties");
1278+
try (InputStream in = Thread.currentThread()
1279+
.getContextClassLoader().getResourceAsStream("git.properties")) {
12821280
if (in == null) {
12831281
logger.warn("git.properties not found on classpath");
12841282
return "";
@@ -1315,4 +1313,3 @@ private static Map<String, String[]> getOptionGroup() {
13151313
return optionGroupMap;
13161314
}
13171315
}
1318-

framework/src/main/java/org/tron/core/zen/ZksnarkInitService.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,14 @@ public static void librustzcashInitZksnarkParams() {
5757
}
5858

5959
private static String getParamsFile(String fileName) {
60-
InputStream in = Thread.currentThread().getContextClassLoader()
61-
.getResourceAsStream("params" + File.separator + fileName);
60+
String resourcePath = "params" + File.separator + fileName;
6261
File fileOut = new File(System.getProperty("java.io.tmpdir")
6362
+ File.separator + fileName + "." + System.currentTimeMillis());
64-
try {
63+
try (InputStream in = Thread.currentThread().getContextClassLoader()
64+
.getResourceAsStream(resourcePath)) {
65+
if (in == null) {
66+
throw new IllegalStateException("Resource not found: " + resourcePath);
67+
}
6568
FileUtils.copyToFile(in, fileOut);
6669
} catch (IOException e) {
6770
logger.error(e.getMessage(), e);

framework/src/test/java/org/tron/common/utils/FileUtilTest.java

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,13 @@
88
import java.io.File;
99
import java.io.FileWriter;
1010
import java.io.IOException;
11-
import java.nio.file.FileVisitResult;
12-
import java.nio.file.FileVisitor;
1311
import java.nio.file.Files;
1412
import java.nio.file.Path;
15-
import java.nio.file.Paths;
16-
import java.nio.file.attribute.BasicFileAttributes;
17-
import java.util.ArrayList;
1813
import java.util.Arrays;
1914
import java.util.Comparator;
2015
import java.util.List;
16+
import java.util.stream.Stream;
2117
import org.junit.After;
22-
import org.junit.Assert;
2318
import org.junit.Before;
2419
import org.junit.Test;
2520

@@ -39,15 +34,16 @@ public void setUp() throws IOException {
3934

4035
@After
4136
public void tearDown() throws IOException {
42-
Files.walk(tempDir)
43-
.sorted(Comparator.reverseOrder())
44-
.forEach(path -> {
45-
try {
46-
Files.delete(path);
47-
} catch (IOException e) {
48-
e.printStackTrace();
49-
}
50-
});
37+
try (Stream<Path> paths = Files.walk(tempDir)) {
38+
paths.sorted(Comparator.reverseOrder())
39+
.forEach(path -> {
40+
try {
41+
Files.delete(path);
42+
} catch (IOException e) {
43+
e.printStackTrace();
44+
}
45+
});
46+
}
5147
}
5248

5349
@Test
@@ -126,4 +122,4 @@ public void testCreateDirIfNotExists() {
126122
}
127123

128124

129-
}
125+
}

framework/src/test/java/org/tron/core/services/http/BroadcastServletTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -146,17 +146,17 @@ public void doPostTest() throws IOException {
146146
}
147147
Assert.assertNotNull(result);
148148
in.close();
149-
writer.flush();
150-
FileInputStream fileInputStream = new FileInputStream("temp.txt");
151-
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
152-
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
149+
writer.close();
153150

154151
StringBuilder sb = new StringBuilder();
155-
String text;
156-
while ((text = bufferedReader.readLine()) != null) {
157-
sb.append(text);
152+
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(
153+
new FileInputStream("temp.txt"), StandardCharsets.UTF_8))) {
154+
String text;
155+
while ((text = bufferedReader.readLine()) != null) {
156+
sb.append(text);
157+
}
158158
}
159159
Assert.assertTrue(sb.toString().contains("null"));
160160
httpUrlConnection.disconnect();
161161
}
162-
}
162+
}

framework/src/test/java/org/tron/core/services/http/solidity/GetTransactionByIdSolidityServletTest.java

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,15 @@ public void doPostTest() throws IOException {
129129
}
130130
Assert.assertNotNull(result);
131131
in.close();
132-
writer.flush();
133-
FileInputStream fileInputStream = new FileInputStream("temp.txt");
134-
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
135-
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
132+
writer.close();
136133

137134
StringBuilder sb = new StringBuilder();
138-
String text;
139-
while ((text = bufferedReader.readLine()) != null) {
140-
sb.append(text);
135+
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(
136+
new FileInputStream("temp.txt"), StandardCharsets.UTF_8))) {
137+
String text;
138+
while ((text = bufferedReader.readLine()) != null) {
139+
sb.append(text);
140+
}
141141
}
142142
Assert.assertTrue(sb.toString().contains("null"));
143143
httpUrlConnection.disconnect();
@@ -185,18 +185,17 @@ public void doGetTest() throws IOException {
185185
}
186186
Assert.assertNotNull(result);
187187
in.close();
188-
writer.flush();
189-
FileInputStream fileInputStream = new FileInputStream("temp.txt");
190-
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
191-
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
188+
writer.close();
192189

193190
StringBuilder sb = new StringBuilder();
194-
String text;
195-
while ((text = bufferedReader.readLine()) != null) {
196-
sb.append(text);
191+
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(
192+
new FileInputStream("temp.txt"), StandardCharsets.UTF_8))) {
193+
String text;
194+
while ((text = bufferedReader.readLine()) != null) {
195+
sb.append(text);
196+
}
197197
}
198198
Assert.assertTrue(sb.toString().contains("null"));
199199
httpUrlConnection.disconnect();
200200
}
201201
}
202-

plugins/src/main/java/common/org/tron/plugins/utils/FileUtils.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.nio.file.StandardCopyOption;
2121
import java.util.List;
2222
import java.util.Properties;
23+
import java.util.stream.Stream;
2324
import lombok.extern.slf4j.Slf4j;
2425

2526
@Slf4j
@@ -141,8 +142,10 @@ public static void copyDatabases(Path src, Path dest, List<String> subDirs)
141142
subDirs.forEach(dir -> {
142143
if (isExists(Paths.get(src.toString(), dir).toString())) {
143144
try {
144-
Files.walk(Paths.get(src.toString(), dir), FileVisitOption.FOLLOW_LINKS)
145-
.forEach(source -> copy(source, dest.resolve(src.relativize(source))));
145+
try (Stream<Path> paths = Files.walk(
146+
Paths.get(src.toString(), dir), FileVisitOption.FOLLOW_LINKS)) {
147+
paths.forEach(source -> copy(source, dest.resolve(src.relativize(source))));
148+
}
146149
} catch (IOException e) {
147150
logger.error("copy database failed, src: {}, dest: {}, error: {}",
148151
Paths.get(src.toString(), dir), Paths.get(dest.toString(), dir), e.getMessage());
@@ -156,8 +159,10 @@ public static void copyDir(Path src, Path dest, String dir) {
156159
if (isExists(Paths.get(src.toString(), dir).toString())) {
157160
try {
158161
if (createDirIfNotExists(Paths.get(dest.toString(), dir).toString())) {
159-
Files.walk(Paths.get(src.toString(), dir), FileVisitOption.FOLLOW_LINKS)
160-
.forEach(source -> copy(source, dest.resolve(src.relativize(source))));
162+
try (Stream<Path> paths = Files.walk(
163+
Paths.get(src.toString(), dir), FileVisitOption.FOLLOW_LINKS)) {
164+
paths.forEach(source -> copy(source, dest.resolve(src.relativize(source))));
165+
}
161166
} else {
162167
throw new IOException(String.format("dest %s create fail ",
163168
Paths.get(dest.toString(), dir)));

0 commit comments

Comments
 (0)