ezet / evelib

Eve Online Library.NET is an open source C# wrapper for CCPs Eve Online API and other popular Eve Online APIs.
Apache License 2.0
71 stars 36 forks source link

Error when attempting to get EveCrest.GetRoot() #101

Closed diggerton closed 8 years ago

diggerton commented 8 years ago

My simple code:

EveCrest crest = new EveCrest();
var root = crest.GetRoot();

The attempt to get the root threw an exception:

Error converting value "online" to type 'eZet.EveLib.EveCrestModule.Models.Resources.CrestRoot+ServerStatus'. Path 'serviceStatus', line 1, position 1980.

Full exception detail:

System.AggregateException was unhandled by user code HResult=-2146233088 Message=One or more errors occurred. Source=mscorlib StackTrace: at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task1.get_Result() at eZet.EveLib.EveCrestModule.EveCrest.GetRoot() at EOItemTypeUpdates_WebJob.TESTS.UnitTest1.ItemTypes() in E:\DevProjects\EveOnline\EOItemTypeUpdates-WebJob\EOItemTypeUpdates-WebJob.TESTS\UnitTest1.cs:line 71 InnerException: HResult=-2146233088 Message=Error converting value "online" to type 'eZet.EveLib.EveCrestModule.Models.Resources.CrestRoot+ServerStatus'. Path 'serviceStatus', line 1, position 1980. Source=Newtonsoft.Json StackTrace: at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, 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.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(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 Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) at eZet.EveLib.Core.Serializers.JsonSerializer.eZet.EveLib.Core.Serializers.ISerializer.Deserialize[T](String data) at eZet.EveLib.EveCrestModule.RequestHandlers.CachedCrestRequestHandler.d53`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at eZet.EveLib.EveCrestModule.EveCrest.d121`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at eZet.EveLib.EveCrestModule.EveCrest.d__82.MoveNext() InnerException: HResult=-2147024809 Message=Could not cast or convert from System.String to eZet.EveLib.EveCrestModule.Models.Resources.CrestRoot+ServerStatus. Source=Newtonsoft.Json StackTrace: at Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable(Object value, Type initialType, Type targetType) at Newtonsoft.Json.Utilities.ConvertUtils.ConvertOrCast(Object initialValue, CultureInfo culture, Type targetType) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType) InnerException:

diggerton commented 8 years ago

This might be from the recent changes which purged DUST from the api/crest system. I believe a change to the ServerStatus class wihin the CrestRoot class would likely fix the issue.

diggerton commented 8 years ago

AAAAAND looks like it's already reported and fixed: https://github.com/ezet/evelib/pull/100