Search on all attributes with a partial match fails in Gremlin Server
- Dominant language
- TypeScript
- Stars
- 481
- Forks
- 108
- Avg merge
- 6d 8h
- Merged PRs (30d)
- 5
Description
Using the sample Docker compose setup, I tried a search across all attributes with "partial match" checked. The query failed.
### Error
```
{
"message": "class java.lang.Integer cannot be cast to class java.lang.String (java.lang.Integer and java.lang.String are in module java.base of loader 'bootstrap')",
"Exception-Class": "java.lang.ClassCastException",
"exceptions": [
"java.lang.ClassCastException"
],
"stackTrace": "java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.String (java.lang.Integer and java.lang.String are in module java.base of loader 'bootstrap')\n\tat org.apache.tinkerpop.gremlin.process.traversal.Text$5.test(Text.java:122)\n\tat org.apache.tinkerpop.gremlin.process.traversal.P.test(P.java:77)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer.testValue(HasContainer.java:99)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer.test(HasContainer.java:65)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer.internalTestAll(HasContainer.java:182)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer.testAll(HasContainer.java:172)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasStep.filter(HasStep.java:67)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:41)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:155)\n\tat org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.hasNext(DefaultTraversal.java:192)\n\tat org.apache.tinkerpop.gremlin.process.traversal.util.TraversalUtil.test(TraversalUtil.java:141)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.filter.OrStep.filter(OrStep.java:40)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:41)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:155)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:55)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:40)\n\tat org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:155)\n\tat org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.hasNext(DefaultTraversal.java:192)\n\tat org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils.fill(IteratorUtils.java:64)\n\tat org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils.list(IteratorUtils.java:90)\n\tat org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils.asList(IteratorUtils.java:470)\n\tat org.apache.tinkerpop.gremlin.server.handler.HttpGremlinEndpointHandler.lambda$channelRead$2(HttpGremlinEndpointHandler.java:248)\n\tat org.apache.tinkerpop.gremlin.util.function.FunctionUtils.lambda$wrapFunction$0(FunctionUtils.java:36)\n\tat org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda$eval$0(GremlinExecutor.java:332)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base/java.lang.Thread.run(Thread.java:829)\n",
"requestId": "fde7efad-0bf2-4dea-979b-d098e4b2b6f1"
}
```
### Query
```
g.V().hasLabel("airport").or(
has(id,containing("D")),
has("city",containing("D")),
has("code",containing("D")),
has("country",containing("D")),
has("desc",containing("D")),
has("elev",containing("D")),
has("icao",containing("D")),
has("lat",containing("D")),
has("lon",containing("D")),
has("longest",containing("D")),
has("region",containing("D")),
has("runways",containing("D")),
has("type",containing("D"))
).range(0,10)
```
## Setup
- Docker compose air routes sample
Contributor guide
Assessment
This issue has not been assessed yet.