You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by rd...@apache.org on 2017/04/26 02:21:46 UTC

[2/4] tinkerpop git commit: Check if variable is null to avoid NPE

Check if variable is null to avoid NPE

If staticVariableTypes is an empty list in the YAML file, then we throw
an NPE by trying to run collectEntries() on a null object or trying to
run containsKey() on a null object.


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

Branch: refs/heads/master
Commit: 9bdef4d86c3065b02c402a6d44dbf0329a0e2ddc
Parents: 1e349c8
Author: dpitera <dp...@us.ibm.com>
Authored: Thu Apr 6 12:16:59 2017 -0400
Committer: dpitera <dp...@us.ibm.com>
Committed: Mon Apr 17 14:31:41 2017 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                                  |  1 +
 .../customizer/AbstractSandboxExtension.groovy      |  4 ++--
 .../jsr223/customizer/FileSandboxExtension.groovy   | 16 ++++++++++------
 3 files changed, 13 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bdef4d8/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 40819af..6923a84 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -73,6 +73,7 @@ TinkerPop 3.2.5 (Release Date: NOT OFFICIALLY RELEASED YET)
 * Implemented `DefaultGraphManager` to include previous `GraphManager` functionality and adhere to updated interface.
 * Deprecated `GraphManager.getGraphs()` and added `GraphManager.getGraphNames()`.
 * Deprecated `GraphManager.getTraversalSources()` and added `GraphManager.getTraversalSourceNames()`.
+* Fixed a bug so now users can supply a YAML with an empty `staticVariableTypes` to be used by the `FileSandboxExtension`
 
 [[release-3-2-4]]
 TinkerPop 3.2.4 (Release Date: February 8, 2017)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bdef4d8/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/AbstractSandboxExtension.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/AbstractSandboxExtension.groovy b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/AbstractSandboxExtension.groovy
index 699e250..9685607 100644
--- a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/AbstractSandboxExtension.groovy
+++ b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/AbstractSandboxExtension.groovy
@@ -51,7 +51,7 @@ abstract class AbstractSandboxExtension extends GroovyTypeCheckingExtensionSuppo
         def boolean autoTypeUnknown = allowAutoTypeOfUnknown()
 
         unresolvedVariable { var ->
-            if (staticVariableTyping.containsKey(var.name)) {
+            if ((null != staticVariableTyping) && (staticVariableTyping.containsKey(var.name))) {
                 storeType(var, classNodeFor(staticVariableTyping[var.name]))
                 handled = true
                 return
@@ -87,4 +87,4 @@ abstract class AbstractSandboxExtension extends GroovyTypeCheckingExtensionSuppo
             visitor.visitMethod(methodNode)
         }
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bdef4d8/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/FileSandboxExtension.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/FileSandboxExtension.groovy b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/FileSandboxExtension.groovy
index 30e440b..6e9e374 100644
--- a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/FileSandboxExtension.groovy
+++ b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/FileSandboxExtension.groovy
@@ -63,12 +63,16 @@ class FileSandboxExtension extends AbstractSandboxExtension {
 
         autoTypeUnknown = settings.autoTypeUnknown
         methodWhiteList = settings.methodWhiteList
-        staticVariableTypes = settings.staticVariableTypes.collectEntries { kv ->
-            try {
-                return [(kv.key): Class.forName(kv.value)]
-            } catch (Exception ex) {
-                logger.error("Could not convert ${kv.value} to a Class for variable ${kv.key}", ex)
-                throw ex
+        if (null == settings.staticVariableTypes) {
+            staticVariableTypes = null
+        } else {
+            staticVariableTypes = settings.staticVariableTypes.collectEntries { kv ->
+                try {
+                    return [(kv.key): Class.forName(kv.value)]
+                } catch (Exception ex) {
+                    logger.error("Could not convert ${kv.value} to a Class for variable ${kv.key}", ex)
+                    throw ex
+                }
             }
         }
     }