You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2018/03/01 01:03:53 UTC
lucene-solr:master: LUCENE-8188: Fixed bugs in OpenNLPOpsFactory that
were causing InputStreams fetched from the ResourceLoader to be leaked
Repository: lucene-solr
Updated Branches:
refs/heads/master 60984536b -> 1bf718948
LUCENE-8188: Fixed bugs in OpenNLPOpsFactory that were causing InputStreams fetched from the ResourceLoader to be leaked
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/1bf71894
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/1bf71894
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/1bf71894
Branch: refs/heads/master
Commit: 1bf718948696e69053bd5b7177b9ed32b5f57015
Parents: 6098453
Author: Chris Hostetter <ho...@apache.org>
Authored: Wed Feb 28 18:03:46 2018 -0700
Committer: Chris Hostetter <ho...@apache.org>
Committed: Wed Feb 28 18:03:46 2018 -0700
----------------------------------------------------------------------
lucene/CHANGES.txt | 4 ++
.../opennlp/tools/OpenNLPOpsFactory.java | 49 +++++++++++++-------
2 files changed, 35 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1bf71894/lucene/CHANGES.txt
----------------------------------------------------------------------
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 345357a..1cf399b 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -184,6 +184,10 @@ Bug Fixes
* LUCENE-8174: Fixed {Float,Double,Int,Long}Range.toString(). (Oliver Kaleske
via Adrien Grand)
+* LUCENE-8188: Fixed bugs in OpenNLPOpsFactory that were causing InputStreams fetched from the
+ ResourceLoader to be leaked (hossman)
+
+
Other
* LUCENE-8111: IndexOrDocValuesQuery Javadoc references outdated method name.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1bf71894/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/tools/OpenNLPOpsFactory.java
----------------------------------------------------------------------
diff --git a/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/tools/OpenNLPOpsFactory.java b/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/tools/OpenNLPOpsFactory.java
index 5348857..84080af 100644
--- a/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/tools/OpenNLPOpsFactory.java
+++ b/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/tools/OpenNLPOpsFactory.java
@@ -59,7 +59,9 @@ public class OpenNLPOpsFactory {
public static SentenceModel getSentenceModel(String modelName, ResourceLoader loader) throws IOException {
SentenceModel model = sentenceModels.get(modelName);
if (model == null) {
- model = new SentenceModel(loader.openResource(modelName));
+ try (InputStream resource = loader.openResource(modelName)) {
+ model = new SentenceModel(resource);
+ }
sentenceModels.put(modelName, model);
}
return model;
@@ -77,7 +79,9 @@ public class OpenNLPOpsFactory {
public static TokenizerModel getTokenizerModel(String modelName, ResourceLoader loader) throws IOException {
TokenizerModel model = tokenizerModels.get(modelName);
if (model == null) {
- model = new TokenizerModel(loader.openResource(modelName));
+ try (InputStream resource = loader.openResource(modelName)) {
+ model = new TokenizerModel(resource);
+ }
tokenizerModels.put(modelName, model);
}
return model;
@@ -91,7 +95,9 @@ public class OpenNLPOpsFactory {
public static POSModel getPOSTaggerModel(String modelName, ResourceLoader loader) throws IOException {
POSModel model = posTaggerModels.get(modelName);
if (model == null) {
- model = new POSModel(loader.openResource(modelName));
+ try (InputStream resource = loader.openResource(modelName)) {
+ model = new POSModel(resource);
+ }
posTaggerModels.put(modelName, model);
}
return model;
@@ -105,7 +111,9 @@ public class OpenNLPOpsFactory {
public static ChunkerModel getChunkerModel(String modelName, ResourceLoader loader) throws IOException {
ChunkerModel model = chunkerModels.get(modelName);
if (model == null) {
- model = new ChunkerModel(loader.openResource(modelName));
+ try (InputStream resource = loader.openResource(modelName)) {
+ model = new ChunkerModel(resource);
+ }
chunkerModels.put(modelName, model);
}
return model;
@@ -119,7 +127,9 @@ public class OpenNLPOpsFactory {
public static TokenNameFinderModel getNERTaggerModel(String modelName, ResourceLoader loader) throws IOException {
TokenNameFinderModel model = nerModels.get(modelName);
if (model == null) {
- model = new TokenNameFinderModel(loader.openResource(modelName));
+ try (InputStream resource = loader.openResource(modelName)) {
+ model = new TokenNameFinderModel(resource);
+ }
nerModels.put(modelName, model);
}
return model;
@@ -139,18 +149,19 @@ public class OpenNLPOpsFactory {
public static String getLemmatizerDictionary(String dictionaryFile, ResourceLoader loader) throws IOException {
String dictionary = lemmaDictionaries.get(dictionaryFile);
if (dictionary == null) {
- Reader reader = new InputStreamReader(loader.openResource(dictionaryFile), StandardCharsets.UTF_8);
- StringBuilder builder = new StringBuilder();
- char[] chars = new char[8092];
- int numRead = 0;
- do {
- numRead = reader.read(chars, 0, chars.length);
- if (numRead > 0) {
- builder.append(chars, 0, numRead);
- }
- } while (numRead > 0);
- dictionary = builder.toString();
- lemmaDictionaries.put(dictionaryFile, dictionary);
+ try (Reader reader = new InputStreamReader(loader.openResource(dictionaryFile), StandardCharsets.UTF_8)) {
+ StringBuilder builder = new StringBuilder();
+ char[] chars = new char[8092];
+ int numRead = 0;
+ do {
+ numRead = reader.read(chars, 0, chars.length);
+ if (numRead > 0) {
+ builder.append(chars, 0, numRead);
+ }
+ } while (numRead > 0);
+ dictionary = builder.toString();
+ lemmaDictionaries.put(dictionaryFile, dictionary);
+ }
}
return dictionary;
}
@@ -158,7 +169,9 @@ public class OpenNLPOpsFactory {
public static LemmatizerModel getLemmatizerModel(String modelName, ResourceLoader loader) throws IOException {
LemmatizerModel model = lemmatizerModels.get(modelName);
if (model == null) {
- model = new LemmatizerModel(loader.openResource(modelName));
+ try (InputStream resource = loader.openResource(modelName)) {
+ model = new LemmatizerModel(resource);
+ }
lemmatizerModels.put(modelName, model);
}
return model;