[
https://issues.apache.org/jira/browse/TINKERPOP-3040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18008839#comment-18008839
]
ASF GitHub Bot commented on TINKERPOP-3040:
-------------------------------------------
spmallette commented on code in PR #3162:
URL: https://github.com/apache/tinkerpop/pull/3162#discussion_r2220548643
##########
gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/GremlinGroovysh.groovy:
##########
@@ -107,41 +109,10 @@ class GremlinGroovysh extends Groovysh {
String importsSpec = this.getImportStatements()
// determine if this script is complete or not - if not it's a
multiline script
- def status = parser.parse([importsSpec] + current)
+ def status = remoteParser.parse([importsSpec] + current)
switch (status.code) {
case ParseCode.COMPLETE:
- if
(!Boolean.valueOf(getPreference(INTERPRETER_MODE_PREFERENCE_KEY, 'false')) ||
isTypeOrMethodDeclaration(current)) {
- // Evaluate the current buffer w/imports and dummy
statement
- List buff = [importsSpec] + [ 'true' ] + current
- try {
- interp.evaluate(buff)
- } catch(MultipleCompilationErrorsException t) {
- if (isIncompleteCaseOfAntlr4(t)) {
- // treat like INCOMPLETE case
- buffers.updateSelected(current)
- break
- }
- throw t
- } catch (MissingPropertyException mpe) {
Review Comment:
you can't have a `MissingPropertyException` anymore because this change
stops doing a local evaluation of the code in the interpreter. now it just
parses for correctness in the script itself.
> Remote Console won't send queries that cause exceptions locally
> ---------------------------------------------------------------
>
> Key: TINKERPOP-3040
> URL: https://issues.apache.org/jira/browse/TINKERPOP-3040
> Project: TinkerPop
> Issue Type: Bug
> Components: console
> Affects Versions: 3.7.0
> Reporter: Ken Hu
> Priority: Critical
>
> From: https://groups.google.com/g/gremlin-users/c/U2gIxmRcrI8/m/x12banhdAAAJ
> It appears that if an exception occurs when the remote console is executing a
> command locally then it won't send that query to the server.
>
> Example:
> {code:java}
> \,,,/
> (o o)
> -----oOOo-(3)-oOOo-----
> plugin activated: tinkerpop.server
> plugin activated: tinkerpop.utilities
> plugin activated: tinkerpop.tinkergraph
> plugin activated: janusgraph.imports
> gremlin> :remote connect tinkerpop.server conf/remote.yaml
> ==>Configured localhost/127.0.0.1:45940
> gremlin> :remote console
> ==>All scripts will now be sent to Gremlin Server -
> [localhost/127.0.0.1:45940] - type ':remote console' to return to local mode
> gremlin> JanusGraphFactory.getGraphNames()
> Gremlin Server must be configured to use the JanusGraphManager.
> Type ':help' or ':h' for help.
> Display stack trace? [yN]y
> java.lang.NullPointerException: Gremlin Server must be configured to use the
> JanusGraphManager.
> at
> com.google.common.base.Preconditions.checkNotNull(Preconditions.java:921)
> at
> org.janusgraph.core.JanusGraphFactory.getGraphNames(JanusGraphFactory.java:187)
> at
> org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
> at groovysh_evaluate.run(groovysh_evaluate:3)
> at
> org.codehaus.groovy.vmplugin.v8.IndyInterface.selectMethod(IndyInterface.java:355)
> at
> org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
> at
> org.apache.groovy.groovysh.Interpreter.evaluate(Interpreter.groovy:82)
> at
> org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
> at
> org.apache.tinkerpop.gremlin.console.GremlinGroovysh.execute(GremlinGroovysh.groovy:118)
> at
> org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
> at org.apache.groovy.groovysh.Shell.leftShift(Shell.groovy:121)
> at
> org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
> at org.apache.groovy.groovysh.ShellRunner.work(ShellRunner.groovy:93)
> at
> org.apache.groovy.groovysh.InteractiveShellRunner.work(InteractiveShellRunner.groovy:124)
> at
> org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
> at org.apache.groovy.groovysh.ShellRunner.run(ShellRunner.groovy:57)
> at
> org.apache.groovy.groovysh.InteractiveShellRunner.run(InteractiveShellRunner.groovy:96)
> at
> org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
> at
> org.apache.tinkerpop.gremlin.console.Console.<init>(Console.groovy:175)
> at
> org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
> at org.apache.tinkerpop.gremlin.console.Console.main(Console.groovy:574)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)