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 2012/01/08 12:47:46 UTC
svn commit: r1228830 - in
/lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict:
CharacterDefinition.java ConnectionCosts.java TokenInfoDictionary.java
UnknownDictionary.java
Author: uschindler
Date: Sun Jan 8 11:47:45 2012
New Revision: 1228830
URL: http://svn.apache.org/viewvc?rev=1228830&view=rev
Log:
LUCENE-3305: Implement lazy loading singleton with Holder pattern instead synchronization
Modified:
lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/CharacterDefinition.java
lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/ConnectionCosts.java
lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/TokenInfoDictionary.java
lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/UnknownDictionary.java
Modified: lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/CharacterDefinition.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/CharacterDefinition.java?rev=1228830&r1=1228829&r2=1228830&view=diff
==============================================================================
--- lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/CharacterDefinition.java (original)
+++ lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/CharacterDefinition.java Sun Jan 8 11:47:45 2012
@@ -103,15 +103,18 @@ public final class CharacterDefinition {
return (byte) CharacterClass.valueOf(characterClassName).ordinal();
}
- public synchronized static CharacterDefinition getInstance() {
- if (singleton == null) try {
- singleton = new CharacterDefinition();
- } catch (IOException ioe) {
- throw new RuntimeException("Cannot load CharacterDefinition.", ioe);
- }
- return singleton;
+ public static CharacterDefinition getInstance() {
+ return SingletonHolder.INSTANCE;
}
- private static CharacterDefinition singleton;
-
+ private static class SingletonHolder {
+ static final CharacterDefinition INSTANCE;
+ static {
+ try {
+ INSTANCE = new CharacterDefinition();
+ } catch (IOException ioe) {
+ throw new RuntimeException("Cannot load CharacterDefinition.", ioe);
+ }
+ }
+ }
}
Modified: lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/ConnectionCosts.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/ConnectionCosts.java?rev=1228830&r1=1228829&r2=1228830&view=diff
==============================================================================
--- lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/ConnectionCosts.java (original)
+++ lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/ConnectionCosts.java Sun Jan 8 11:47:45 2012
@@ -75,15 +75,19 @@ public final class ConnectionCosts {
}
}
- public synchronized static ConnectionCosts getInstance() {
- if (singleton == null) try {
- singleton = new ConnectionCosts();
- } catch (IOException ioe) {
- throw new RuntimeException("Cannot load ConnectionCosts.", ioe);
- }
- return singleton;
+ public static ConnectionCosts getInstance() {
+ return SingletonHolder.INSTANCE;
}
- private static ConnectionCosts singleton;
+ private static class SingletonHolder {
+ static final ConnectionCosts INSTANCE;
+ static {
+ try {
+ INSTANCE = new ConnectionCosts();
+ } catch (IOException ioe) {
+ throw new RuntimeException("Cannot load ConnectionCosts.", ioe);
+ }
+ }
+ }
}
Modified: lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/TokenInfoDictionary.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/TokenInfoDictionary.java?rev=1228830&r1=1228829&r2=1228830&view=diff
==============================================================================
--- lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/TokenInfoDictionary.java (original)
+++ lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/TokenInfoDictionary.java Sun Jan 8 11:47:45 2012
@@ -55,15 +55,19 @@ public final class TokenInfoDictionary e
return fst;
}
- public synchronized static TokenInfoDictionary getInstance() {
- if (singleton == null) try {
- singleton = new TokenInfoDictionary();
- } catch (IOException ioe) {
- throw new RuntimeException("Cannot load TokenInfoDictionary.", ioe);
- }
- return singleton;
+ public static TokenInfoDictionary getInstance() {
+ return SingletonHolder.INSTANCE;
}
- private static TokenInfoDictionary singleton;
+ private static class SingletonHolder {
+ static final TokenInfoDictionary INSTANCE;
+ static {
+ try {
+ INSTANCE = new TokenInfoDictionary();
+ } catch (IOException ioe) {
+ throw new RuntimeException("Cannot load TokenInfoDictionary.", ioe);
+ }
+ }
+ }
}
Modified: lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/UnknownDictionary.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/UnknownDictionary.java?rev=1228830&r1=1228829&r2=1228830&view=diff
==============================================================================
--- lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/UnknownDictionary.java (original)
+++ lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/dict/UnknownDictionary.java Sun Jan 8 11:47:45 2012
@@ -55,15 +55,19 @@ public final class UnknownDictionary ext
return null;
}
- public synchronized static UnknownDictionary getInstance() {
- if (singleton == null) try {
- singleton = new UnknownDictionary();
- } catch (IOException ioe) {
- throw new RuntimeException("Cannot load UnknownDictionary.", ioe);
- }
- return singleton;
+ public static UnknownDictionary getInstance() {
+ return SingletonHolder.INSTANCE;
}
- private static UnknownDictionary singleton;
+ private static class SingletonHolder {
+ static final UnknownDictionary INSTANCE;
+ static {
+ try {
+ INSTANCE = new UnknownDictionary();
+ } catch (IOException ioe) {
+ throw new RuntimeException("Cannot load UnknownDictionary.", ioe);
+ }
+ }
+ }
}