r2375 - in trunk/jaxx-compiler/src: main/java/jaxx/compiler/java test/java/jaxx/compiler/java
Author: tchemit Date: 2012-07-03 01:28:37 +0200 (Tue, 03 Jul 2012) New Revision: 2375 Url: http://nuiton.org/repositories/revision/jaxx/2375 Log: refs #2154: Jaxx deos not compile under jdk 7 (field comparator fails) : add test and apply quick fix (but not best...) Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaElement.java trunk/jaxx-compiler/src/test/java/jaxx/compiler/java/JavaFieldTest.java Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaElement.java =================================================================== --- trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaElement.java 2012-07-02 21:52:39 UTC (rev 2374) +++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaElement.java 2012-07-02 23:28:37 UTC (rev 2375) @@ -108,22 +108,23 @@ String n1 = o1.getName(); String n2 = o2.getName(); - Matcher matcher1 = NAME_PATTERN.matcher(n1); - Matcher matcher2 = NAME_PATTERN.matcher(n2); - if (matcher1.matches() && matcher2.matches()) { - // les deux noms finissent par un nombre - String p1 = matcher1.group(1); - String p2 = matcher1.group(2); - int i = p1.compareTo(p2); - if (i != 0) { - // on est sur des noms de prefix différents, donc pas de tri sur les suffixes - return i; - } - // les deux noms doivent être triés sur les suffixes entiers - int i1 = Integer.valueOf(matcher1.group(2)); - int i2 = Integer.valueOf(matcher2.group(2)); - return i1 - i2; - } + //FIXME-tchemit-2012-07-02 (see http://nuiton.org/issues/2154) +// Matcher matcher1 = NAME_PATTERN.matcher(n1); +// Matcher matcher2 = NAME_PATTERN.matcher(n2); +// if (matcher1.matches() && matcher2.matches()) { +// // les deux noms finissent par un nombre +// String p1 = matcher1.group(1); +// String p2 = matcher1.group(2); +// int i = p1.compareTo(p2); +// if (i != 0) { +// // on est sur des noms de prefix différents, donc pas de tri sur les suffixes +// return i; +// } +// // les deux noms doivent être triés sur les suffixes entiers +// int i1 = Integer.valueOf(matcher1.group(2)); +// int i2 = Integer.valueOf(matcher2.group(2)); +// return i1 - i2; +// } // les deux noms sont simplement comparé en alpha return n1.compareTo(n2); Modified: trunk/jaxx-compiler/src/test/java/jaxx/compiler/java/JavaFieldTest.java =================================================================== --- trunk/jaxx-compiler/src/test/java/jaxx/compiler/java/JavaFieldTest.java 2012-07-02 21:52:39 UTC (rev 2374) +++ trunk/jaxx-compiler/src/test/java/jaxx/compiler/java/JavaFieldTest.java 2012-07-02 23:28:37 UTC (rev 2375) @@ -24,13 +24,16 @@ */ package jaxx.compiler.java; +import com.google.common.collect.Lists; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Test; import java.lang.reflect.Modifier; +import java.util.Collections; import java.util.EnumSet; +import java.util.List; /** * Created: 3 déc. 2009 @@ -42,9 +45,7 @@ * $Author$ */ public class JavaFieldTest { - /** - * Logger - */ + /** Logger */ private static final Log log = LogFactory.getLog(JavaFieldTest.class); @Test @@ -91,4 +92,36 @@ Assert.assertTrue(constants.contains(JavaField.FieldOrder.internalFields)); } + + /** + * To test http://nuiton.org/issues/2154. + * + * @since 2.5.1 + */ + @Test + public void testCompare() { + + String[] names = new String[]{ + "cf0", + "cf1", + "cf0O1", + "cf0A1", + "ct0O1", "ct0A1", + "cgett0", + "cgett1", "cgett0O1", + "cgett0A1", "cfile", "cgetfile", "t0", "t1", + "cmt0", "cmt1", "cmt0O1", "cmt0A1", "cmgett0", + "cmgett1", "cmgett0O1", "cmgett0A1", + "cMfile", "cMgetfile", + "Mt0", "Mt1", "cit0", "cit1", "cit0O1", "cit0A1", "cigett0", + "bindings" + }; + List<JavaField> theFileds = Lists.newArrayList(); + for (String name : names) { + JavaField field = new JavaField(Modifier.PROTECTED, "String", name, false); + theFileds.add(field); + } + Collections.sort(theFileds); + + } }
participants (1)
-
tchemit@users.nuiton.org