Elasticsearch: Analyze API will not responding if the analyzer or the tokenizer is not exist

Created on 1 Dec 2015  路  2Comments  路  Source: elastic/elasticsearch

elasticsearch v2.1.0

http://127.0.0.1:9200/_analyze?text=13ab2abcd&analyzer=keyword1
http://127.0.0.1:9200/_analyze?text=13ab2abcd&tokenizer=keyword1
http://127.0.0.1:9200/_analyze?text=13ab2abcd&tokenizer=keyword&token_filters=keyword1

the keyword1 is not exist,if you use them for testing,the server will not responding.
error in the console is:

[2015-12-01 21:10:05,347][ERROR][transport ] [Crossbones] failed to handle exception for action [indices:admin/analyze[s]], handler [org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction$1@64daa69a] java.lang.NullPointerException at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction.perform(TransportSingleShardAction.java:195) at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction.access$700(TransportSingleShardAction.java:115) at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction$1.handleException(TransportSingleShardAction.java:174) at org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:821) at org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:799) at org.elasticsearch.transport.TransportService$4.onFailure(TransportService.java:361) at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:42) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) [2015-12-01 21:11:06,503][ERROR][transport ] [Crossbones] failed to handle exception for action [indices:admin/analyze[s]], handler [org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction$1@5560501] java.lang.NullPointerException at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction.perform(TransportSingleShardAction.java:195) at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction.access$700(TransportSingleShardAction.java:115) at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction$1.handleException(TransportSingleShardAction.java:174) at org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:821) at org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:799) at org.elasticsearch.transport.TransportService$4.onFailure(TransportService.java:361) at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:42) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) [2015-12-01 21:12:04,471][ERROR][transport ] [Crossbones] failed to handle exception for action [indices:admin/analyze[s]], handler [org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction$1@26a7dd07] java.lang.NullPointerException at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction.perform(TransportSingleShardAction.java:195) at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction.access$700(TransportSingleShardAction.java:115) at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction$1.handleException(TransportSingleShardAction.java:174) at org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:821) at org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:799) at org.elasticsearch.transport.TransportService$4.onFailure(TransportService.java:361) at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:42) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)

:SearcAnalysis >bug help wanted

Most helpful comment

This also happens if the analyzer is attached to a specific index, and the API is called out of context:

This works:

GET /my_index/_analyze
{
  "analyzer" : "some_analyzer",
  "text" : "3 bedroom"
}

This hangs, and throws a java.lang.NullPointerException

GET /_analyze
{
  "analyzer" : "some_analyzer",
  "text" : "3 bedroom"
}

All 2 comments

This also happens if the analyzer is attached to a specific index, and the API is called out of context:

This works:

GET /my_index/_analyze
{
  "analyzer" : "some_analyzer",
  "text" : "3 bedroom"
}

This hangs, and throws a java.lang.NullPointerException

GET /_analyze
{
  "analyzer" : "some_analyzer",
  "text" : "3 bedroom"
}

@PhaedrusTheGreek answer was proven correct.

Was this page helpful?
0 / 5 - 0 ratings