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 2015/03/16 15:19:58 UTC

incubator-tinkerpop git commit: If scriptEvaluationTimeout is zero or less no AST is applied for timeout transforms.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master cbb64cc59 -> a4d8a41bd


If scriptEvaluationTimeout is zero or less no AST is applied for timeout transforms.


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

Branch: refs/heads/master
Commit: a4d8a41bd1065b7df1a51de3e3ac05220b6b1496
Parents: cbb64cc
Author: Stephen Mallette <sp...@apache.org>
Authored: Mon Mar 16 10:18:22 2015 -0400
Committer: Stephen Mallette <sp...@apache.org>
Committed: Mon Mar 16 10:18:22 2015 -0400

----------------------------------------------------------------------
 .../gremlin/groovy/engine/GremlinExecutor.java        |  2 +-
 .../groovy/jsr223/GremlinGroovyScriptEngine.java      | 14 ++++++++++----
 2 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/a4d8a41b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
index 6ea4ccf..8fcd776 100644
--- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
+++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
@@ -445,7 +445,7 @@ public class GremlinExecutor implements AutoCloseable {
          * to the {@link GremlinExecutor#eval}).
          *
          * @param scriptEvaluationTimeout Time in milliseconds that a script is allowed to run and its
-         *                                results potentially transformed.
+         *                                results potentially transformed. Set to zero to have no timeout set.
          */
         public Builder scriptEvaluationTimeout(final long scriptEvaluationTimeout) {
             this.scriptEvaluationTimeout = scriptEvaluationTimeout;

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/a4d8a41b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
index e00f59c..bbf45ea 100644
--- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
+++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
@@ -127,6 +127,9 @@ public class GremlinGroovyScriptEngine extends GroovyScriptEngineImpl implements
     private ImportCustomizerProvider importCustomizerProvider;
     private Optional<SecurityCustomizerProvider> securityProvider;
 
+    /**
+     * If this value is zero then no timeout is applied.
+     */
     private final long scriptEvaluationTimeout;
 
     private final Set<Artifact> artifactsToUse = new HashSet<>();
@@ -477,10 +480,13 @@ public class GremlinGroovyScriptEngine extends GroovyScriptEngineImpl implements
         if (this.securityProvider.isPresent())
             conf.addCompilationCustomizers(this.securityProvider.get().getCompilationCustomizer());
 
-        final Map<String,Object> annotationParams = new HashMap<>();
-        annotationParams.put("value", scriptEvaluationTimeout);
-        annotationParams.put("unit", GeneralUtils.propX(GeneralUtils.classX(TimeUnit.class), TimeUnit.MILLISECONDS.toString()));
-        conf.addCompilationCustomizers(new ASTTransformationCustomizer(annotationParams, TimedInterrupt.class));
+        if (scriptEvaluationTimeout > 0) {
+            final Map<String, Object> timedInterruptAnnotationParams = new HashMap<>();
+            timedInterruptAnnotationParams.put("value", scriptEvaluationTimeout);
+            timedInterruptAnnotationParams.put("unit", GeneralUtils.propX(GeneralUtils.classX(TimeUnit.class), TimeUnit.MILLISECONDS.toString()));
+            conf.addCompilationCustomizers(new ASTTransformationCustomizer(timedInterruptAnnotationParams, TimedInterrupt.class));
+        }
+
         conf.addCompilationCustomizers(new ASTTransformationCustomizer(ThreadInterrupt.class));
 
         this.loader = new GremlinGroovyClassLoader(getParentLoader(), conf);