Unable to load SerialzableCart with old data

Found in

EPiServer.Commerce 11.4.0

Created

Dec 01 2017

Updated

Oct 19 2018

Fixed in

EPiServer.Commerce 11.5.1

State

Closed, Fixed and tested

Description

When loading a SerializableCart with old data (without type), an exception is thrown:

2017-11-30 10:07:39,385 [8] ERROR Default: Newtonsoft.Json.JsonSerializationException: Unexpected JSON token when reading HashTable. Expected PropertyName, got StartObject, path: Properties.address.OpeningHours[0].
at EPiServer.Commerce.Serialization.Json.HashTableJsonConverter.ReadHashtableItem(JsonReader reader, Hashtable hashTable, JsonSerializer serializer)
at EPiServer.Commerce.Serialization.Json.HashTableJsonConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ResolvePropertyAndCreatorValues(JsonObjectContract contract, JsonProperty containerProperty, JsonReader reader, Type objectType)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObjectUsingCreatorWithParameters(JsonReader reader, JsonObjectContract contract, JsonProperty containerProperty, ObjectConstructor`1 creator, 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 Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
at EPiServer.Commerce.Order.Internal.DataAccess.SerializableCartDB.CreateCarts(DataTable cartData)
at EPiServer.Commerce.Order.Internal.DataAccess.SerializableCartDB.Load(CartFilter cartFilter)
at EPiServer.Commerce.Order.Internal.SerializableCartProvider.Load(Guid customerId, String name)
at EPiServer.Commerce.Order.DefaultOrderRepository.<>c_DisplayClass12_0`1.<Load>b_0()
at EPiServer.Commerce.Order.DefaultOrderRepository.ReadThrough[TOrderGroup](Guid customerId, String name, Type orderType, Func`1 load)
at EPiServer.Commerce.Order.DefaultOrderRepository.Load[TOrderGroup](Guid customerId, String name)

Voting

Affected? You can raise the priority of a bug by voting for it. By doing so, you will be helping our developers to choose which bug to fix next.

Voting is disabled for closed bugs.

0