You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tn...@apache.org on 2012/03/18 19:13:49 UTC

svn commit: r1302191 - /commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java

Author: tn
Date: Sun Mar 18 18:13:49 2012
New Revision: 1302191

URL: http://svn.apache.org/viewvc?rev=1302191&view=rev
Log:
[CODEC-132] Make phoneme order deterministic by using a LinkedHashSet, detected as part of the test case in lucene.

Modified:
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java?rev=1302191&r1=1302190&r2=1302191&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java Sun Mar 18 18:13:49 2012
@@ -23,6 +23,7 @@ import java.util.Collections;
 import java.util.EnumMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -82,10 +83,10 @@ public class PhoneticEngine {
          * Creates a new phoneme builder containing all phonemes in this one extended by <code>str</code>.
          *
          * @param str   the characters to append to the phonemes
-         * @return  a new phoneme builder lenghened by <code>str</code>
+         * @return  a new phoneme builder lenghtened by <code>str</code>
          */
         public PhonemeBuilder append(CharSequence str) {
-            Set<Rule.Phoneme> newPhonemes = new HashSet<Rule.Phoneme>();
+            Set<Rule.Phoneme> newPhonemes = new LinkedHashSet<Rule.Phoneme>();
 
             for (Rule.Phoneme ph : this.phonemes) {
                 newPhonemes.add(ph.append(str));
@@ -106,7 +107,7 @@ public class PhoneticEngine {
          *      in turn
          */
         public PhonemeBuilder apply(Rule.PhonemeExpr phonemeExpr, int maxPhonemes) {
-            Set<Rule.Phoneme> newPhonemes = new HashSet<Rule.Phoneme>();
+            Set<Rule.Phoneme> newPhonemes = new LinkedHashSet<Rule.Phoneme>();
 
             EXPR: for (Rule.Phoneme left : this.phonemes) {
                 for (Rule.Phoneme right : phonemeExpr.getPhonemes()) {