You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2020/03/26 11:29:45 UTC

[tinkerpop] branch master updated (73af6c1 -> 413f0e5)

This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git.


    from 73af6c1  Merge branch '3.4-dev'
     add 6a8db64  TINKERPOP-2351 Fixed bug in Order when enum is a key in Map
     add 6673cbd  Merge branch 'TINKERPOP-2351' into 3.3-dev
     add e47a281  Merge branch '3.3-dev' into 3.4-dev
     new 413f0e5  Merge branch '3.4-dev'

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.asciidoc                                 |  1 +
 .../tinkerpop/gremlin/process/traversal/Order.java | 20 ++++---
 .../gremlin/process/traversal/OrderTest.java       |  5 +-
 gremlin-test/features/map/Order.feature            | 15 ++++++
 .../process/traversal/step/map/OrderTest.java      | 63 +++++++++++++++++-----
 5 files changed, 85 insertions(+), 19 deletions(-)


[tinkerpop] 01/01: Merge branch '3.4-dev'

Posted by sp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 413f0e5a2bccf3a52946993eaf2bdfd71efcaa47
Merge: 73af6c1 e47a281
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Thu Mar 26 07:29:29 2020 -0400

    Merge branch '3.4-dev'

 CHANGELOG.asciidoc                                 |  1 +
 .../tinkerpop/gremlin/process/traversal/Order.java | 20 ++++---
 .../gremlin/process/traversal/OrderTest.java       |  5 +-
 gremlin-test/features/map/Order.feature            | 15 ++++++
 .../process/traversal/step/map/OrderTest.java      | 63 +++++++++++++++++-----
 5 files changed, 85 insertions(+), 19 deletions(-)

diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java
index 1176f54,2b50a0c..1616898
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java
@@@ -54,13 -92,15 +54,17 @@@ public enum Order implements Comparator
       * @since 3.3.4
       */
      asc {
 +        private final Comparator<Comparable> ascendingComparator = Comparator.nullsFirst(Comparator.<Comparable>naturalOrder());
 +
          @Override
          public int compare(final Object first, final Object second) {
-             return first instanceof Number && second instanceof Number
-                     ? NumberHelper.compare((Number) first, (Number) second)
-                     : ascendingComparator.compare((Comparable) first, (Comparable) second);
+             // need to convert enum to string representations for comparison or else you can get cast exceptions.
+             // this typically happens when sorting local on the keys of maps that contain T
+             final Object f = first instanceof Enum<?> ? ((Enum<?>) first).name() : first;
+             final Object s = second instanceof Enum<?> ? ((Enum<?>) second).name() : second;
+             return f instanceof Number && s instanceof Number
+                     ? NumberHelper.compare((Number) f, (Number) s)
 -                    : Comparator.<Comparable>naturalOrder().compare((Comparable) f, (Comparable) s);
++                    : ascendingComparator.compare((Comparable) f, (Comparable) s);
          }
  
          @Override
@@@ -75,13 -115,15 +79,17 @@@
       * @since 3.3.4
       */
      desc {
 +        private final Comparator<Comparable> descendingComparator = Comparator.nullsLast(Comparator.<Comparable>reverseOrder());
 +
          @Override
          public int compare(final Object first, final Object second) {
-             return first instanceof Number && second instanceof Number
-                     ? NumberHelper.compare((Number) second, (Number) first)
-                     : descendingComparator.compare((Comparable) first, (Comparable) second);
+             // need to convert enum to string representations for comparison or else you can get cast exceptions.
+             // this typically happens when sorting local on the keys of maps that contain T
+             final Object f = first instanceof Enum<?> ? ((Enum<?>) first).name() : first;
+             final Object s = second instanceof Enum<?> ? ((Enum<?>) second).name() : second;
+             return f instanceof Number && s instanceof Number
+                     ? NumberHelper.compare((Number) s, (Number) f)
 -                    : Comparator.<Comparable>reverseOrder().compare((Comparable) f, (Comparable) s);
++                    : descendingComparator.compare((Comparable) f, (Comparable) s);
          }
  
          @Override
diff --cc gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/OrderTest.java
index d094772,b2d3084..0204399
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/OrderTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/OrderTest.java
@@@ -61,7 -58,24 +62,9 @@@ public class OrderTest 
                  {Order.asc, Arrays.asList(100L, 1L, -1L, 0L), Arrays.asList(-1L, 0L, 1L, 100L)},
                  {Order.desc, Arrays.asList(100L, 1L, -1L, 0L), Arrays.asList(100L, 1L, 0L, -1L)},
                  {Order.asc, Arrays.asList(100, 1, -1, 0), Arrays.asList(-1, 0, 1, 100)},
-                 {Order.desc, Arrays.asList(100, 1, -1, 0), Arrays.asList(100, 1, 0, -1)}}));
+                 {Order.desc, Arrays.asList(100, 1, -1, 0), Arrays.asList(100, 1, 0, -1)},
+                 {Order.asc, Arrays.asList("b", "a", T.id, "c", "d"), Arrays.asList("a", "b", "c", "d", T.id)},
 -                {Order.desc, Arrays.asList("b", "a", T.id, "c", "d"), Arrays.asList(T.id, "d", "c", "b", "a")},
 -                {Order.incr, Arrays.asList("b", "a", "c", "d"), Arrays.asList("a", "b", "c", "d")},
 -                {Order.decr, Arrays.asList("b", "a", "c", "d"), Arrays.asList("d", "c", "b", "a")},
 -                {Order.incr, Arrays.asList(formatter.parse("1-Jan-2018"), formatter.parse("1-Jan-2020"), formatter.parse("1-Jan-2008")),
 -                             Arrays.asList(formatter.parse("1-Jan-2008"), formatter.parse("1-Jan-2018"), formatter.parse("1-Jan-2020"))},
 -                {Order.decr, Arrays.asList(formatter.parse("1-Jan-2018"), formatter.parse("1-Jan-2020"), formatter.parse("1-Jan-2008")),
 -                             Arrays.asList(formatter.parse("1-Jan-2020"), formatter.parse("1-Jan-2018"), formatter.parse("1-Jan-2008"))},
 -                {Order.decr, Arrays.asList(100L, 1L, -1L, 0L), Arrays.asList(100L, 1L, 0L, -1L)},
 -                {Order.incr, Arrays.asList(100.1f, 1.1f, -1.1f, 0.1f), Arrays.asList(-1.1f, 0.1f, 1.1f, 100.1f)},
 -                {Order.decr, Arrays.asList(100.1f, 1.1f, -1.1f, 0.1f), Arrays.asList(100.1f, 1.1f, 0.1f, -1.1f)},
 -                {Order.incr, Arrays.asList(100.1d, 1.1d, -1.1d, 0.1d), Arrays.asList(-1.1d, 0.1d, 1.1d, 100.1d)},
 -                {Order.decr, Arrays.asList(100.1d, 1.1d, -1.1d, 0.1d), Arrays.asList(100.1d, 1.1d, 0.1d, -1.1d)},
 -                {Order.incr, Arrays.asList(100L, 1L, -1L, 0L), Arrays.asList(-1L, 0L, 1L, 100L)},
 -                {Order.decr, Arrays.asList(100L, 1L, -1L, 0L), Arrays.asList(100L, 1L, 0L, -1L)},
 -                {Order.incr, Arrays.asList(100, 1, -1, 0), Arrays.asList(-1, 0, 1, 100)},
 -                {Order.decr, Arrays.asList(100, 1, -1, 0), Arrays.asList(100, 1, 0, -1)}}));
++                {Order.desc, Arrays.asList("b", "a", T.id, "c", "d"), Arrays.asList(T.id, "d", "c", "b", "a")}}));
      }
  
      @Parameterized.Parameter(value = 0)
diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderTest.java
index 544ed67,69b63a0..7743a3b
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderTest.java
@@@ -445,8 -504,13 +479,8 @@@ public abstract class OrderTest extend
          }
  
          @Override
 -        public Traversal<Vertex, Double> get_g_V_outE_order_byXweight_decrX_weight() {
 -            return g.V().outE().order().by("weight", Order.decr).values("weight");
 -        }
 -
 -        @Override
          public Traversal<Vertex, Double> get_g_V_outE_order_byXweight_descX_weight() {
-             return g.V().outE().order().by("weight", Order.desc).values("weight");
+             return g.V().outE().order().by("weight", desc).values("weight");
          }
  
          @Override