Index: maven-i18n-plugin/src/java/org/codelutin/i18n/plugin/util/SortedProperties.java diff -u maven-i18n-plugin/src/java/org/codelutin/i18n/plugin/util/SortedProperties.java:1.3 maven-i18n-plugin/src/java/org/codelutin/i18n/plugin/util/SortedProperties.java:1.4 --- maven-i18n-plugin/src/java/org/codelutin/i18n/plugin/util/SortedProperties.java:1.3 Fri Nov 2 16:06:37 2007 +++ maven-i18n-plugin/src/java/org/codelutin/i18n/plugin/util/SortedProperties.java Thu Feb 7 12:56:04 2008 @@ -19,6 +19,8 @@ package org.codelutin.i18n.plugin.util; +import org.codelutin.util.CollectionUtil; + import java.util.Collections; import java.util.Enumeration; import java.util.List; @@ -27,14 +29,13 @@ /** * Permet d'avoir les fichiers de propriétés triés. - * - * @author julien * + * @author julien */ public class SortedProperties extends Properties { private static final long serialVersionUID = 1L; - + public SortedProperties() { super(); } @@ -43,12 +44,19 @@ super(defaults); } + @Override public synchronized Enumeration keys() { - Enumeration enumeration = super.keys(); - - List list = Collections.list(enumeration); - Collections.sort(list); - - return new Vector(list).elements(); + List objects = Collections.list(super.keys()); + Vector result; + try { + List list = CollectionUtil.toGenericList(objects, Comparable.class); + Collections.sort(list); + result = new Vector(list); + } catch (IllegalArgumentException e) { + // keys are not comparable !!! + // can not sort keys + result = new Vector(objects); + } + return result.elements(); } }