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 2016/08/27 00:54:29 UTC

[14/50] [abbrv] tinkerpop git commit: found a bug in JavaTranslator around identifying the correct method during reflection.

found a bug in JavaTranslator around identifying the correct method during reflection.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/f73c93c7
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/f73c93c7
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/f73c93c7

Branch: refs/heads/master
Commit: f73c93c78eaf2a18b913cc1d207f36294a67194f
Parents: 21865d8
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Wed Aug 24 18:49:07 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Wed Aug 24 18:49:07 2016 -0600

----------------------------------------------------------------------
 .../org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java   | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f73c93c7/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
index 43175f9..c39896c 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
@@ -132,7 +132,12 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
                         boolean found = true;
                         for (int i = 0; i < parameters.length; i++) {
                             if (parameters[i].isVarArgs()) {
-                                Object[] varArgs = (Object[]) Array.newInstance(parameters[i].getType().getComponentType(), arguments.length - i);
+                                final Class<?> parameterClass = parameters[i].getType().getComponentType();
+                                if (arguments.length > i && !parameterClass.isAssignableFrom(arguments[i].getClass())) {
+                                    found = false;
+                                    break;
+                                }
+                                Object[] varArgs = (Object[]) Array.newInstance(parameterClass, arguments.length - i);
                                 int counter = 0;
                                 for (int j = i; j < arguments.length; j++) {
                                     varArgs[counter++] = arguments[j];