Hi,
I was trying out the tokenRegex() for searching one of the fields. It was working fine in the studio but in Java, it gave null pointer exception.
Ask Schema =>
schema.vertexLabel('Ask'). ifNotExists(). partitionBy('tenantId', Ascii). clusterBy('domainId', Ascii). property('askScope', Text). create()
Data==>
g.addV("Ask").property("tenantId", "t1").property("domainId", "d1").property("askScope","check")
Search Index =>
schema.vertexLabel('Ask').searchIndex().ifNotExists().by('askScope').asText().create()
In datastax studio =>
g.V().hasLabel("Ask").has("askScope",tokenRegex("check"))
output:
{ "id": "dseg:/Ask/t1/d1", "label": "Ask", "type": "vertex", "properties": {} }
These are the pom.xml dependencies
<dependency> <groupId>com.datastax.oss</groupId> <artifactId>java-driver-core</artifactId> <version>4.7.2</version> </dependency> <dependency> <groupId>org.apache.tinkerpop</groupId> <artifactId>gremlin-driver</artifactId> <version>3.4.5</version> </dependency> <dependency> <groupId>org.apache.tinkerpop</groupId> <artifactId>gremlin-core</artifactId> <version>3.4.5</version> </dependency>
In java =>
GraphTraversal<Vertex, Vertex> vertex = g.V().hasLabel("Ask").has("askScope", Search.tokenRegex("check")).next();
Exception :
java.lang.NullPointerException: null at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936) at org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:221) at org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:198) at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at org.apache.tinkerpop.gremlin.driver.Handler$GremlinSaslAuthenticationHandler.channelRead0(Handler.java:124) at org.apache.tinkerpop.gremlin.driver.Handler$GremlinSaslAuthenticationHandler.channelRead0(Handler.java:68)
On the server: /var/log/cassandra/gremlin.log
stack trace ==>
WARN 2020-06-29 22:12:11,484 DseOpSelectorHandler.java:115 - Invalid OpProcessor requested [null] org.apache.tinkerpop.gremlin.server.op.OpProcessorException: Invalid OpProcessor requested [null] at com.datastax.bdp.graph.plugin.DseOpSelectorHandler.decode(DseOpSelectorHandler.java:109) at com.datastax.bdp.graph.plugin.DseOpSelectorHandler.decode(DseOpSelectorHandler.java:43) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at com.datastax.bdp.graph.plugin.GremlinServerGraphHandler.handleRequestMessage(GremlinServerGraphHandler.java:47) at com.datastax.bdp.graph.plugin.AbstractRequestMessageHandler.channelRead(AbstractRequestMessageHandler.java:63) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at com.datastax.bdp.cassandra.audit.GremlinServerAuditLogRequestHandler.handleRequestMessage(GremlinServerAuditLogRequestHandler.java:37) at com.datastax.bdp.graph.plugin.AbstractRequestMessageHandler.channelRead(AbstractRequestMessageHandler.java:63) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
On the server: /var/log/cassandra/system.log
stack trace ==>
WARN [gremlin-server-worker-1] 2020-06-30 07:30:57,571 AbstractGryoMessageSerializerV3d0.java:211 - Request [PooledUnsafeDirectByteBuf(ridx: 150, widx: 150, cap: 184)] could not be deserialized by org.apache.tinkerpop.gremlin.driver.ser.AbstractGryoMessageSerializerV3d0. java.lang.IllegalStateException: org.apache.tinkerpop.gremlin.process.traversal.P.tokenRegex(java.lang.Object) at org.apache.tinkerpop.gremlin.structure.io.gryo.GryoSerializersV3d0$PSerializer.read(GryoSerializersV3d0.java:343) at org.apache.tinkerpop.gremlin.structure.io.gryo.GryoSerializersV3d0$PSerializer.read(GryoSerializersV3d0.java:291) at org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.shaded.ShadedSerializerAdapter.read(ShadedSerializerAdapter.java:52) at org.apache.tinkerpop.shaded.kryo.Kryo.readObject(Kryo.java:708) at org.apache.tinkerpop.shaded.kryo.serializers.DefaultArraySerializers$ObjectArraySerializer.read(DefaultArraySerializers.java:396) at org.apache.tinkerpop.shaded.kryo.serializers.DefaultArraySerializers$ObjectArraySerializer.read(DefaultArraySerializers.java:307) at org.apache.tinkerpop.shaded.kryo.Kryo.readObject(Kryo.java:686) at org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.shaded.ShadedKryoAdapter.r........... SingleThreadEventExecutor.java:884) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NoSuchMethodException: org.apache.tinkerpop.gremlin.process.traversal.P.tokenRegex(java.lang.Object) at java.lang.Class.getMethod(Class.java:1786) at org.apache.tinkerpop.gremlin.structure.io.gryo.GryoSerializersV3d0$PSerializer.read(GryoSerializersV3d0.java:341) ... 65 common frames omitted
Thank you