[ https://issues.apache.org/jira/browse/TINKERPOP-2647?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17680939#comment-17680939 ]
ASF GitHub Bot commented on TINKERPOP-2647: ------------------------------------------- AmatyaAvadhanula commented on PR #1950: URL: https://github.com/apache/tinkerpop/pull/1950#issuecomment-1404782064 Thank you @Cole-Greer. I'll look further to see if the approach can be simplified and base the changes off of 3.5-dev. > :uninstall without first disabling a plugin will lead to error on startup > ------------------------------------------------------------------------- > > Key: TINKERPOP-2647 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2647 > Project: TinkerPop > Issue Type: Bug > Components: console > Affects Versions: 3.4.12 > Reporter: Stephen Mallette > Priority: Trivial > > In the Gremlin Console, if you add a plugin like: > {code} > gremlin> :install org.apache.tinkerpop spark-gremlin 3.6.0-SNAPSHOT > ==>loaded: [org.apache.tinkerpop, spark-gremlin, 3.6.0-SNAPSHOT] - restart > the console to use [tinkerpop.spark] > gremlin> :plugin use tinkerpop.spark > ==>tinkerpop.spark activated > {code} > and then you choose to remove it: > {code} > gremlin> :uninstall spark-gremlin > ==>Uninstalled spark-gremlin - restart the console for removal to take effect > gremlin> :x > {code} > When you restart, the console will be in a bad state and produce this sort of > exception: > {code} > $ bin/gremlin.sh > \,,,/ > (o o) > -----oOOo-(3)-oOOo----- > plugin activated: tinkerpop.server > plugin activated: tinkerpop.utilities > plugin activated: tinkerpop.tinkergraph > plugin activated: tinkerpop.spark > gremlin> :uninstall tinkerpop.spark > ==>There is no module with the name tinkerpop.spark to remove - > /home/smallette/git/apache/tinkerpop/gremlin-console/target/apache-tinkerpop-gremlin-console-3.6.0-SNAPSHOT-standalone/ext/tinkerpop.spark > gremlin> :uninstall spark-gremlin > ==>Uninstalled spark-gremlin - restart the console for removal to take effect > gremlin> :x > smallette@ubuntu-vm:~/git/apache/tinkerpop/gremlin-console/target/apache-tinkerpop-gremlin-console-3.6.0-SNAPSHOT-standalone$ > bin/gremlin.sh > \,,,/ > (o o) > -----oOOo-(3)-oOOo----- > plugin activated: tinkerpop.server > plugin activated: tinkerpop.utilities > plugin activated: tinkerpop.tinkergraph > Exception in thread "main" java.lang.NullPointerException: Cannot invoke > method activate() on null object > at > org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91) > at > org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:43) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) > at > org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:34) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) > at org.apache.tinkerpop.gremlin.console.PluggedIn$activate.call(Unknown > Source) > at > org.apache.tinkerpop.gremlin.console.Console$_closure18.doCall(Console.groovy:149) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323) > at > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:263) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041) > at groovy.lang.Closure.call(Closure.java:405) > at groovy.lang.Closure.call(Closure.java:421) > at > org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2330) > at > org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2315) > at > org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2356) > at org.codehaus.groovy.runtime.dgm$186.invoke(Unknown Source) > at > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:244) > at > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127) > at > org.apache.tinkerpop.gremlin.console.Console.<init>(Console.groovy:147) > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at java.lang.reflect.Constructor.newInstance(Constructor.java:423) > at > org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80) > at > org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:237) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:265) > at org.apache.tinkerpop.gremlin.console.Console.main(Console.groovy:524) > {code} > The reason for this issue is that the plugin registration in > {{ext/plugins.txt}} file is not cleaned up and so the console tries to load > it on startup. Normally you would {{:plugin unuse tinkerpop:spark}} prior to > the {{:uninstall}} to make sure the cleanup worked properly. > To fix this problem, {{:uninstall}} should just remove the registration the > same way that {{:plugin unuse}} would. -- This message was sent by Atlassian Jira (v8.20.10#820010)