Closed
Description
I'm getting an exception calling IElasticClient.GetIndex on an index with refresh_interval set to -1.
It looks like Elasticsearch is returning the value as a string with value "-1" and the Time(string timeUnit) constructor fails to parse this.
I'm running Elasticsearch 2.1.1 and Nest 2.0.2
The get index response from server is as follows:
{
"unittests_202f924a92ce4f6cbf2e03c0a4dbf780_936eef1face8435783905d3ed8a039fa" : {
"aliases" : { },
"mappings" : { },
"settings" : {
"index" : {
"creation_date" : "1456226507873",
"refresh_interval" : "-1",
"number_of_shards" : "5",
"number_of_replicas" : "1",
"uuid" : "A0RI04jfQMODn-nmX8hknQ",
"version" : {
"created" : "2010199"
}
}
},
"warmers" : { }
}
}
Stack trace is as follows:
Elasticsearch.Net.UnexpectedElasticsearchClientException : Time expression '-1' string is invalid
Parameter name: timeUnit
----> System.ArgumentException : Time expression '-1' string is invalid
Parameter name: timeUnit`
at Elasticsearch.Net.Transport.Request[TReturn](HttpMethod method, String path, PostData data, IRequestParameters requestParameters) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Transport.cs:line 88
at Elasticsearch.Net.ElasticLowLevelClient.IndicesGet[T](String index, Func requestParameters) in c:\code\elasticsearch-net\src\Elasticsearch.Net\ElasticLowLevelClient.Generated.cs:line 2910
at Nest.LowLevelDispatch.IndicesGetDispatch[T](IRequest p) in c:\code\elasticsearch-net\src\Nest\_Generated\_LowLevelDispatch.generated.cs:line 1398
at Nest.ElasticClient.Nest.IHighLevelToLowLevelDispatcher.Dispatch[TRequest,TQueryString,TResponse](TRequest request, Func responseGenerator, Func dispatch) in c:\code\elasticsearch-net\src\Nest\ElasticClient.cs:line 56
at Kastr.Domain.Search.IndexAdmin.GetIndices(String indexName) in C:\dev\Kastr\backend\src\Kastr.Domain.Search\IndexAdmin.cs:line 314
at Kastr.Domain.Tests.Search.IndexAdminTests.CanSetRefreshInterval() in C:\dev\Kastr\backend\src\Kastr.Domain.Tests\Search\IndexAdminTests.cs:line 175
--ArgumentException
at Nest.Time..ctor(String timeUnit) in c:\code\elasticsearch-net\src\Nest\CommonOptions\TimeUnit\Time.cs:line 63
at Nest.TimeJsonConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in c:\code\elasticsearch-net\src\Nest\CommonOptions\TimeUnit\TimeJsonConverter.cs:line 19
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.Linq.JToken.ToObject(Type objectType, JsonSerializer jsonSerializer)
at Newtonsoft.Json.Linq.JToken.ToObject(Type objectType)
at Newtonsoft.Json.Linq.JToken.ToObject[T]()
at Nest.IndexSettingsConverter.Set[T](IIndexSettings s, IDictionary settings, String key, Action assign, JsonSerializer serializer) in c:\code\elasticsearch-net\src\Nest\IndexModules\IndexSettings\Settings\IndexSettingsConverter.cs:line 211
at Nest.IndexSettingsConverter.SetKnownIndexSettings(JsonReader reader, JsonSerializer serializer, IIndexSettings s) in c:\code\elasticsearch-net\src\Nest\IndexModules\IndexSettings\Settings\IndexSettingsConverter.cs:line 121
at Nest.IndexSettingsConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in c:\code\elasticsearch-net\src\Nest\IndexModules\IndexSettings\Settings\IndexSettingsConverter.cs:line 108
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Populate(JsonReader reader, Object target)
at Nest.FromJson.ReadAs[T](JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in c:\code\elasticsearch-net\src\Nest\CommonAbstractions\SerializationBehavior\GenericJsonConverters\FromJson.cs:line 15
at Nest.ReadAsTypeJsonConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in c:\code\elasticsearch-net\src\Nest\CommonAbstractions\SerializationBehavior\GenericJsonConverters\ReadAsTypeJsonConverter.cs:line 19
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Nest.JsonNetSerializer.Deserialize[T](Stream stream) in c:\code\elasticsearch-net\src\Nest\CommonAbstractions\SerializationBehavior\JsonNetSerializer.cs:line 90
at Nest.ElasticClient.DeserializeGetIndexResponse(IApiCallDetails response, Stream stream) in c:\code\elasticsearch-net\src\Nest\Indices\IndexManagement\GetIndex\ElasticClient-GetIndex.cs:line 56
at Elasticsearch.Net.ResponseBuilder.SetBody(ElasticsearchResponse response, Stream stream) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Pipeline\ResponseBuilder.cs:line 70
at Elasticsearch.Net.ResponseBuilder.ToResponse() in c:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Pipeline\ResponseBuilder.cs:line 31
at Elasticsearch.Net.RequestPipeline.CallElasticsearch[TReturn](RequestData requestData) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Pipeline\RequestPipeline.cs:line 382
at Elasticsearch.Net.ExceptionExtensions.RethrowKeepingStackTrace(Exception exception) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Extensions\ExceptionExtensions.cs:line 18
at Elasticsearch.Net.RequestPipeline.CallElasticsearch[TReturn](RequestData requestData) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Pipeline\RequestPipeline.cs:line 394
at Elasticsearch.Net.Transport.Request[TReturn](HttpMethod method, String path, PostData data, IRequestParameters requestParameters) in c:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Transport.cs:line 68
Metadata
Metadata
Assignees
Labels
No labels