You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2015/06/25 22:03:48 UTC
svn commit: r1687626 - in /lucene/dev/branches/branch_5x: ./ lucene/
lucene/CHANGES.txt
lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/hhmm/BigramDictionary.java
Author: uschindler
Date: Thu Jun 25 20:03:48 2015
New Revision: 1687626
URL: http://svn.apache.org/r1687626
Log:
Merged revision(s) 1687624 from lucene/dev/trunk:
LUCENE-6608: Fix potential resource leak in BigramDictionary
Modified:
lucene/dev/branches/branch_5x/ (props changed)
lucene/dev/branches/branch_5x/lucene/ (props changed)
lucene/dev/branches/branch_5x/lucene/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_5x/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/hhmm/BigramDictionary.java
Modified: lucene/dev/branches/branch_5x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/CHANGES.txt?rev=1687626&r1=1687625&r2=1687626&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/lucene/CHANGES.txt Thu Jun 25 20:03:48 2015
@@ -140,6 +140,9 @@ Bug fixes
* LUCENE-6597: Geo3D's GeoCircle now supports a world-globe diameter.
(Karl Wright via David Smiley)
+* LUCENE-6608: Fix potential resource leak in BigramDictionary.
+ (Rishabh Patel via Uwe Schindler)
+
Changes in Runtime Behavior
* LUCENE-6501: The subreader structure in ParallelCompositeReader
Modified: lucene/dev/branches/branch_5x/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/hhmm/BigramDictionary.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/hhmm/BigramDictionary.java?rev=1687626&r1=1687625&r2=1687626&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/hhmm/BigramDictionary.java (original)
+++ lucene/dev/branches/branch_5x/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/hhmm/BigramDictionary.java Thu Jun 25 20:03:48 2015
@@ -65,7 +65,11 @@ class BigramDictionary extends AbstractD
singleInstance.load();
} catch (IOException e) {
String dictRoot = AnalyzerProfile.ANALYSIS_DATA_DIR;
- singleInstance.load(dictRoot);
+ try {
+ singleInstance.load(dictRoot);
+ } catch (IOException ioe) {
+ throw new RuntimeException(ioe);
+ }
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
@@ -84,23 +88,19 @@ class BigramDictionary extends AbstractD
private void loadFromInputStream(InputStream serialObjectInputStream)
throws IOException, ClassNotFoundException {
- ObjectInputStream input = new ObjectInputStream(serialObjectInputStream);
- bigramHashTable = (long[]) input.readObject();
- frequencyTable = (int[]) input.readObject();
- // log.info("load bigram dict from serialization.");
- input.close();
+ try (ObjectInputStream input = new ObjectInputStream(serialObjectInputStream)) {
+ bigramHashTable = (long[]) input.readObject();
+ frequencyTable = (int[]) input.readObject();
+ // log.info("load bigram dict from serialization.");
+ }
}
- private void saveToObj(Path serialObj) {
- try {
- ObjectOutputStream output = new ObjectOutputStream(Files.newOutputStream(
- serialObj));
+ private void saveToObj(Path serialObj) throws IOException {
+ try (ObjectOutputStream output = new ObjectOutputStream(Files.newOutputStream(
+ serialObj))) {
output.writeObject(bigramHashTable);
output.writeObject(frequencyTable);
- output.close();
// log.info("serialize bigram dict.");
- } catch (Exception e) {
- // log.warn(e.getMessage());
}
}
@@ -109,7 +109,7 @@ class BigramDictionary extends AbstractD
loadFromInputStream(input);
}
- private void load(String dictRoot) {
+ private void load(String dictRoot) throws IOException {
String bigramDictPath = dictRoot + "/bigramdict.dct";
Path serialObj = Paths.get(dictRoot + "/bigramdict.mem");