You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ti...@apache.org on 2024/08/07 04:03:45 UTC

(tika) branch branch_2x updated: TIKA-4290 Used try-with-resources for some Closeables. (#1888)

This is an automated email from the ASF dual-hosted git repository.

tilman pushed a commit to branch branch_2x
in repository https://gitbox.apache.org/repos/asf/tika.git


The following commit(s) were added to refs/heads/branch_2x by this push:
     new 2c7b7e9f4 TIKA-4290 Used try-with-resources for some Closeables.  (#1888)
2c7b7e9f4 is described below

commit 2c7b7e9f40374cc017ac3b8c025669067a5d8d7a
Author: Dmitry Kryukov <dk...@users.noreply.github.com>
AuthorDate: Tue Aug 6 22:10:54 2024 +0300

    TIKA-4290 Used try-with-resources for some Closeables.  (#1888)
    
    * TIKA-4290 Used try-with-resources for some Closeables. It prevents resource leak
---
 .../geoinfo/GeographicInformationParser.java       |  10 +-
 .../tika/dl/imagerec/DL4JInceptionV3Net.java       |  15 +--
 .../tika/parser/ner/grobid/GrobidNERecogniser.java | 137 +++++++++++----------
 3 files changed, 80 insertions(+), 82 deletions(-)

diff --git a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/geoinfo/GeographicInformationParser.java b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/geoinfo/GeographicInformationParser.java
index e5732eb75..c7269485c 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/geoinfo/GeographicInformationParser.java
+++ b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/geoinfo/GeographicInformationParser.java
@@ -90,18 +90,14 @@ public class GeographicInformationParser extends AbstractParser {
     public void parse(InputStream inputStream, ContentHandler contentHandler, Metadata metadata,
                       ParseContext parseContext) throws IOException, SAXException, TikaException {
         metadata.set(Metadata.CONTENT_TYPE, geoInfoType);
-        DataStore dataStore = null;
-        DefaultMetadata defaultMetadata = null;
         XHTMLContentHandler xhtmlContentHandler = new XHTMLContentHandler(contentHandler, metadata);
 
         TemporaryResources tmp =
                 TikaInputStream.isTikaInputStream(inputStream) ? null : new TemporaryResources();
-        try {
-            TikaInputStream tikaInputStream = TikaInputStream.get(inputStream, tmp, metadata);
+        try (TikaInputStream tikaInputStream = TikaInputStream.get(inputStream, tmp, metadata)) {
             File file = tikaInputStream.getFile();
-            dataStore = DataStores.open(file);
-            defaultMetadata = new DefaultMetadata(dataStore.getMetadata());
-            if (defaultMetadata != null) {
+            try (DataStore dataStore = DataStores.open(file)) {
+                DefaultMetadata defaultMetadata = new DefaultMetadata(dataStore.getMetadata());
                 extract(xhtmlContentHandler, metadata, defaultMetadata);
             }
 
diff --git a/tika-parsers/tika-parsers-ml/tika-dl/src/main/java/org/apache/tika/dl/imagerec/DL4JInceptionV3Net.java b/tika-parsers/tika-parsers-ml/tika-dl/src/main/java/org/apache/tika/dl/imagerec/DL4JInceptionV3Net.java
index 7f1c4fab7..125e4e8d5 100644
--- a/tika-parsers/tika-parsers-ml/tika-dl/src/main/java/org/apache/tika/dl/imagerec/DL4JInceptionV3Net.java
+++ b/tika-parsers/tika-parsers-ml/tika-dl/src/main/java/org/apache/tika/dl/imagerec/DL4JInceptionV3Net.java
@@ -261,15 +261,16 @@ public class DL4JInceptionV3Net implements ObjectRecogniser {
             LOG.info("Going to load Inception network...");
             long st = System.currentTimeMillis();
 
-            KerasModelBuilder builder =
+            try (KerasModelBuilder builder =
                     new KerasModel().modelBuilder().modelHdf5Filename(modelWeightsPath)
-                            .enforceTrainingConfig(false);
+                            .enforceTrainingConfig(false)) {
 
-            builder.inputShape(new int[]{imgHeight, imgWidth, 3});
-            KerasModel model = builder.buildModel();
-            this.graph = model.getComputationGraph();
-            long time = System.currentTimeMillis() - st;
-            LOG.info("Loaded the Inception model. Time taken={}ms", time);
+                builder.inputShape(new int[]{imgHeight, imgWidth, 3});
+                KerasModel model = builder.buildModel();
+                this.graph = model.getComputationGraph();
+                long time = System.currentTimeMillis() - st;
+                LOG.info("Loaded the Inception model. Time taken={}ms", time);
+            }
         } catch (IOException | InvalidKerasConfigurationException |
                 UnsupportedKerasConfigurationException e) {
             throw new TikaConfigException(e.getMessage(), e);
diff --git a/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/grobid/GrobidNERecogniser.java b/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/grobid/GrobidNERecogniser.java
index 1812b4b82..231aaf72d 100644
--- a/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/grobid/GrobidNERecogniser.java
+++ b/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/grobid/GrobidNERecogniser.java
@@ -184,80 +184,81 @@ public class GrobidNERecogniser implements NERecogniser {
 
         try {
             String url = restHostUrlStr + readRestEndpoint();
-            Response response =
+            try (Response response =
                     WebClient.create(url).accept(MediaType.APPLICATION_JSON)
-                            .post("text=" + text);
-            int responseCode = response.getStatus();
-
-            if (responseCode == 200) {
-                String result = response.readEntity(String.class);
-                JSONObject jsonObject = convertToJSONObject(result);
-                JSONArray measurements = convertToJSONArray(jsonObject, "measurements");
-                for (Object measurement : measurements) {
-
-                    StringBuffer measurementString = new StringBuffer();
-                    StringBuffer normalizedMeasurementString = new StringBuffer();
-
-                    JSONObject quantity = (JSONObject) convertToJSONObject(measurement.toString())
-                            .get("quantity");
-                    if (quantity != null) {
-                        if (quantity.containsKey("rawValue")) {
-                            String measurementNumber =
-                                    (String) convertToJSONObject(quantity.toString())
-                                            .get("rawValue");
-                            measurementString.append(measurementNumber);
-                            measurementString.append(" ");
-                            measurementNumberSet.add(measurementNumber);
-                        }
-
-                        if (quantity.containsKey("normalizedQuantity")) {
-                            String normalizedMeasurementNumber =
-                                    convertToJSONObject(quantity.toString())
-                                            .get("normalizedQuantity").toString();
-                            normalizedMeasurementString.append(normalizedMeasurementNumber);
-                            normalizedMeasurementString.append(" ");
-                        }
-
-                        if (quantity.containsKey("type")) {
-                            String measurementType =
-                                    (String) convertToJSONObject(quantity.toString()).get("type");
-                            measurementTypeSet.add(measurementType);
-                        }
-
-                        JSONObject jsonObj = (JSONObject) convertToJSONObject(quantity.toString());
-                        if (jsonObj.containsKey("rawUnit")) {
-                            JSONObject rawUnit = (JSONObject) jsonObj.get("rawUnit");
-                            String unitName =
-                                    (String) convertToJSONObject(rawUnit.toString()).get("name");
-                            unitSet.add(unitName);
-                            measurementString.append(unitName);
-                        }
-
-                        if (jsonObj.containsKey("normalizedUnit")) {
-                            JSONObject normalizedUnit = (JSONObject) jsonObj.get("normalizedUnit");
-                            String normalizedUnitName =
-                                    (String) convertToJSONObject(normalizedUnit.toString())
-                                            .get("name");
-                            normalizedMeasurementString.append(normalizedUnitName);
-                        }
-
-                        if (!measurementString.toString().equals("")) {
-                            measurementSet.add(measurementString.toString());
+                            .post("text=" + text)) {
+                int responseCode = response.getStatus();
+
+                if (responseCode == 200) {
+                    String result = response.readEntity(String.class);
+                    JSONObject jsonObject = convertToJSONObject(result);
+                    JSONArray measurements = convertToJSONArray(jsonObject, "measurements");
+                    for (Object measurement : measurements) {
+
+                        StringBuffer measurementString = new StringBuffer();
+                        StringBuffer normalizedMeasurementString = new StringBuffer();
+
+                        JSONObject quantity = (JSONObject) convertToJSONObject(measurement.toString())
+                                .get("quantity");
+                        if (quantity != null) {
+                            if (quantity.containsKey("rawValue")) {
+                                String measurementNumber =
+                                        (String) convertToJSONObject(quantity.toString())
+                                                .get("rawValue");
+                                measurementString.append(measurementNumber);
+                                measurementString.append(" ");
+                                measurementNumberSet.add(measurementNumber);
+                            }
+
+                            if (quantity.containsKey("normalizedQuantity")) {
+                                String normalizedMeasurementNumber =
+                                        convertToJSONObject(quantity.toString())
+                                                .get("normalizedQuantity").toString();
+                                normalizedMeasurementString.append(normalizedMeasurementNumber);
+                                normalizedMeasurementString.append(" ");
+                            }
+
+                            if (quantity.containsKey("type")) {
+                                String measurementType =
+                                        (String) convertToJSONObject(quantity.toString()).get("type");
+                                measurementTypeSet.add(measurementType);
+                            }
+
+                            JSONObject jsonObj = (JSONObject) convertToJSONObject(quantity.toString());
+                            if (jsonObj.containsKey("rawUnit")) {
+                                JSONObject rawUnit = (JSONObject) jsonObj.get("rawUnit");
+                                String unitName =
+                                        (String) convertToJSONObject(rawUnit.toString()).get("name");
+                                unitSet.add(unitName);
+                                measurementString.append(unitName);
+                            }
+
+                            if (jsonObj.containsKey("normalizedUnit")) {
+                                JSONObject normalizedUnit = (JSONObject) jsonObj.get("normalizedUnit");
+                                String normalizedUnitName =
+                                        (String) convertToJSONObject(normalizedUnit.toString())
+                                                .get("name");
+                                normalizedMeasurementString.append(normalizedUnitName);
+                            }
+
+                            if (!measurementString.toString().equals("")) {
+                                measurementSet.add(measurementString.toString());
+                            }
+
+                            if (!normalizedMeasurementString.toString().equals("")) {
+                                normalizedMeasurementSet.add(normalizedMeasurementString.toString());
+                            }
                         }
 
-                        if (!normalizedMeasurementString.toString().equals("")) {
-                            normalizedMeasurementSet.add(normalizedMeasurementString.toString());
-                        }
                     }
 
-                }
-
-                entities.put("MEASUREMENT_NUMBERS", measurementNumberSet);
-                entities.put("MEASUREMENT_UNITS", unitSet);
-                entities.put("MEASUREMENTS", measurementSet);
-                entities.put("NORMALIZED_MEASUREMENTS", normalizedMeasurementSet);
-                entities.put("MEASUREMENT_TYPES", measurementTypeSet);
+                    entities.put("MEASUREMENT_NUMBERS", measurementNumberSet);
+                    entities.put("MEASUREMENT_UNITS", unitSet);
+                    entities.put("MEASUREMENTS", measurementSet);
+                    entities.put("NORMALIZED_MEASUREMENTS", normalizedMeasurementSet);
+                    entities.put("MEASUREMENT_TYPES", measurementTypeSet);
 
+                }
             }
         } catch (Exception e) {
             LOG.info(e.getMessage(), e);