This is an automated email from the ASF dual-hosted git repository.
tilman pushed a commit to branch branch_3x
in repository https://gitbox.apache.org/repos/asf/tika.git
The following commit(s) were added to refs/heads/branch_3x by this push:
new 5ba9045c7 TIKA-4436: Fix some potential resource leak (#2250)
5ba9045c7 is described below
commit 5ba9045c76781360bf02b7ccd569dd09435e9d94
Author: Xu Chengxin <[email protected]>
AuthorDate: Tue Jun 10 15:07:57 2025 +0800
TIKA-4436: Fix some potential resource leak (#2250)
Co-authored-by: xcx <[email protected]>
---
.../src/main/java/org/apache/tika/cli/TikaCLI.java | 18 +++++++++---------
.../org/apache/tika/fuzzing/pdf/EvilCOSWriter.java | 10 +++++-----
.../org/apache/tika/parser/journal/JournalParser.java | 6 ++++--
.../tika/language/translate/impl/MarianTranslator.java | 16 ++++++++--------
4 files changed, 26 insertions(+), 24 deletions(-)
diff --git a/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
b/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
index 028c9c729..02b3987aa 100644
--- a/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
+++ b/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
@@ -863,17 +863,17 @@ public class TikaCLI {
Set<String> fileMimes = new HashSet<>();
for (File mf : dir.listFiles()) {
if (mf.isFile()) {
- BufferedReader r = new BufferedReader(new
InputStreamReader(new FileInputStream(mf), UTF_8));
- String line;
- while ((line = r.readLine()) != null) {
- if (line.startsWith("!:mime") ||
line.startsWith("#!:mime")) {
- String mime = line
- .substring(7)
- .trim();
- fileMimes.add(mime);
+ try (BufferedReader r = new BufferedReader(new
InputStreamReader(new FileInputStream(mf), UTF_8))) {
+ String line;
+ while ((line = r.readLine()) != null) {
+ if (line.startsWith("!:mime") ||
line.startsWith("#!:mime")) {
+ String mime = line
+ .substring(7)
+ .trim();
+ fileMimes.add(mime);
+ }
}
}
- r.close();
}
}
diff --git
a/tika-fuzzing/src/main/java/org/apache/tika/fuzzing/pdf/EvilCOSWriter.java
b/tika-fuzzing/src/main/java/org/apache/tika/fuzzing/pdf/EvilCOSWriter.java
index c85bb8455..4e88f14a0 100644
--- a/tika-fuzzing/src/main/java/org/apache/tika/fuzzing/pdf/EvilCOSWriter.java
+++ b/tika-fuzzing/src/main/java/org/apache/tika/fuzzing/pdf/EvilCOSWriter.java
@@ -924,11 +924,11 @@ public class EvilCOSWriter implements ICOSVisitor,
Closeable {
if (signatureInterface != null) {
// data to be signed
- final InputStream dataToSign = getDataToSign();
-
- // sign the bytes
- byte[] signatureBytes = signatureInterface.sign(dataToSign);
- writeExternalSignature(signatureBytes);
+ try (InputStream dataToSign = getDataToSign()) {
+ // sign the bytes
+ byte[] signatureBytes = signatureInterface.sign(dataToSign);
+ writeExternalSignature(signatureBytes);
+ }
}
// else signature should created externally and set via
writeSignature()
}
diff --git
a/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/journal/JournalParser.java
b/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/journal/JournalParser.java
index 467bbb2af..92f3fffae 100644
---
a/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/journal/JournalParser.java
+++
b/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/journal/JournalParser.java
@@ -59,7 +59,9 @@ public class JournalParser implements Parser {
GrobidRESTParser grobidParser = new GrobidRESTParser();
grobidParser.parse(tmpFile.getAbsolutePath(), handler, metadata,
context);
- PDFParser parser = new PDFParser();
- parser.parse(new FileInputStream(tmpFile), handler, metadata, context);
+ try (InputStream pdfStream = new FileInputStream(tmpFile)) {
+ PDFParser parser = new PDFParser();
+ parser.parse(pdfStream, handler, metadata, context);
+ }
}
}
diff --git
a/tika-translate/src/main/java/org/apache/tika/language/translate/impl/MarianTranslator.java
b/tika-translate/src/main/java/org/apache/tika/language/translate/impl/MarianTranslator.java
index 38b8017a4..c8c84bd7e 100644
---
a/tika-translate/src/main/java/org/apache/tika/language/translate/impl/MarianTranslator.java
+++
b/tika-translate/src/main/java/org/apache/tika/language/translate/impl/MarianTranslator.java
@@ -152,11 +152,11 @@ public class MarianTranslator extends AbstractTranslator {
String postProcessScript =
config.getProperty("translator.marian.postprocess");
executeScript(postProcessScript, tmpTranslatedFile);
- BufferedReader fileReader = new BufferedReader(
+ try (BufferedReader fileReader = new BufferedReader(
new InputStreamReader(new
FileInputStream(tmpTranslatedFile),
- Charset.defaultCharset()));
- fileReader.lines().forEach(translation::append);
- fileReader.close();
+ Charset.defaultCharset()))) {
+ fileReader.lines().forEach(translation::append);
+ }
} catch (InterruptedException e) {
throw new TikaException("Failed perform translation", e);
@@ -188,10 +188,10 @@ public class MarianTranslator extends AbstractTranslator {
builder.redirectErrorStream(true);
Process process = builder.start();
- BufferedReader stdOutReader = new BufferedReader(
- new InputStreamReader(process.getInputStream(),
Charset.defaultCharset()));
- stdOutReader.lines().forEach(LOG::debug);
- stdOutReader.close();
+ try (BufferedReader stdOutReader = new BufferedReader(
+ new InputStreamReader(process.getInputStream(),
Charset.defaultCharset()))) {
+ stdOutReader.lines().forEach(LOG::debug);
+ }
process.waitFor();
}