This is an automated email from the ASF dual-hosted git repository.
tilman pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git
The following commit(s) were added to refs/heads/main by this push:
new 05c17f179 TIKA-4531 fix some resource leaks (#2377)
05c17f179 is described below
commit 05c17f17961417a7006d16487fd19328badcd377
Author: AROP <[email protected]>
AuthorDate: Tue Oct 28 19:14:40 2025 +0800
TIKA-4531 fix some resource leaks (#2377)
Co-authored-by: xcx <[email protected]>
---
.../microsoft/ooxml/AbstractOOXMLExtractor.java | 43 +++++++++++-----------
.../server/core/resource/UnpackerResource.java | 18 ++++-----
2 files changed, 29 insertions(+), 32 deletions(-)
diff --git
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java
index 5c9d2f62b..399c8afef 100644
---
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java
+++
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java
@@ -180,29 +180,28 @@ public abstract class AbstractOOXMLExtractor implements
OOXMLExtractor {
if (tPart == null) {
continue;
}
- InputStream tStream = tPart.getInputStream();
- Metadata thumbnailMetadata = new Metadata();
- String thumbName = tPart.getPartName().getName();
- thumbnailMetadata.set(TikaCoreProperties.RESOURCE_NAME_KEY,
thumbName);
-
- AttributesImpl attributes = new AttributesImpl();
- attributes.addAttribute(XHTML, "class", "class", "CDATA",
"embedded");
- attributes.addAttribute(XHTML, "id", "id", "CDATA", thumbName);
- handler.startElement(XHTML, "div", "div", attributes);
- handler.endElement(XHTML, "div", "div");
-
-
thumbnailMetadata.set(TikaCoreProperties.EMBEDDED_RELATIONSHIP_ID, thumbName);
- thumbnailMetadata.set(Metadata.CONTENT_TYPE,
tPart.getContentType());
- thumbnailMetadata.set(TikaCoreProperties.TITLE,
tPart.getPartName().getName());
-
thumbnailMetadata.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE,
-
TikaCoreProperties.EmbeddedResourceType.THUMBNAIL.name());
-
- if (embeddedExtractor.shouldParseEmbedded(thumbnailMetadata)) {
-
embeddedExtractor.parseEmbedded(TikaInputStream.get(tStream),
- new EmbeddedContentHandler(handler),
thumbnailMetadata, false);
+ try (InputStream tStream = tPart.getInputStream()) {
+ Metadata thumbnailMetadata = new Metadata();
+ String thumbName = tPart.getPartName().getName();
+
thumbnailMetadata.set(TikaCoreProperties.RESOURCE_NAME_KEY, thumbName);
+
+ AttributesImpl attributes = new AttributesImpl();
+ attributes.addAttribute(XHTML, "class", "class", "CDATA",
"embedded");
+ attributes.addAttribute(XHTML, "id", "id", "CDATA",
thumbName);
+ handler.startElement(XHTML, "div", "div", attributes);
+ handler.endElement(XHTML, "div", "div");
+
+
thumbnailMetadata.set(TikaCoreProperties.EMBEDDED_RELATIONSHIP_ID, thumbName);
+ thumbnailMetadata.set(Metadata.CONTENT_TYPE,
tPart.getContentType());
+ thumbnailMetadata.set(TikaCoreProperties.TITLE,
tPart.getPartName().getName());
+
thumbnailMetadata.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE,
+
TikaCoreProperties.EmbeddedResourceType.THUMBNAIL.name());
+
+ if
(embeddedExtractor.shouldParseEmbedded(thumbnailMetadata)) {
+
embeddedExtractor.parseEmbedded(TikaInputStream.get(tStream),
+ new EmbeddedContentHandler(handler),
thumbnailMetadata, false);
+ }
}
-
- tStream.close();
}
} catch (SecurityException e) {
throw e;
diff --git
a/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/UnpackerResource.java
b/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/UnpackerResource.java
index df8611d2c..d4ea60cfd 100644
---
a/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/UnpackerResource.java
+++
b/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/UnpackerResource.java
@@ -79,17 +79,15 @@ public class UnpackerResource {
private static final Logger LOG =
LoggerFactory.getLogger(UnpackerResource.class);
public static void metadataToCsv(Metadata metadata, OutputStream
outputStream) throws IOException {
- CSVPrinter writer = new CSVPrinter(new
OutputStreamWriter(outputStream, UTF_8), CSVFormat.EXCEL);
-
- for (String name : metadata.names()) {
- String[] values = metadata.getValues(name);
- ArrayList<String> list = new ArrayList<>(values.length + 1);
- list.add(name);
- list.addAll(Arrays.asList(values));
- writer.printRecord(list);
+ try (CSVPrinter writer = new CSVPrinter(new
OutputStreamWriter(outputStream, UTF_8), CSVFormat.EXCEL)) {
+ for (String name : metadata.names()) {
+ String[] values = metadata.getValues(name);
+ ArrayList<String> list = new ArrayList<>(values.length + 1);
+ list.add(name);
+ list.addAll(Arrays.asList(values));
+ writer.printRecord(list);
+ }
}
-
- writer.close();
}
@Path("/{id:(/.*)?}")