Use of TypeNameHandling.All causes JsonReaderException
- 主要言語
- C#
- スター
- 1.7k
- フォーク
- 335
- 平均マージ
- 2日 23時間
- マージ済み PR(30日)
- 6
説明
### Description
When using TypeNameHandling.All on our serialization settings for dtfx, we receive the following exception:
```
Handler: Exception: Orchestration execution failed due to unhandled exception. : Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: U. Path '', line 0, position 0.
[TaskFailedException]: Error reading JArray from JsonReader. Current JsonReader item is not an array: StartObject. Path '', line 1, position 1.
[TaskFailedExceptionDeserializationException]: Failed to deserialize exception from TaskActivity: Unhandled exception while executing task: Newtonsoft.Json.JsonReaderException: Error reading JArray from JsonReader. Current JsonReader item is not an array: StartObject. Path '', line 1, position 1.
at Newtonsoft.Json.Linq.JArray.Load(JsonReader reader, JsonLoadSettings settings)
at DurableTask.Core.Common.Utils.ConvertToJArray(String input) in /_/src/DurableTask.Core/Common/Utils.cs:line 210
at DurableTask.Core.AsyncTaskActivity`2.RunAsync(TaskContext context, String input) in /_/src/DurableTask.Core/TaskActivity.cs:line 107
at DurableTask.Core.TaskActivityDispatcher.<>c__DisplayClass14_1.<b__2>d.MoveNext() in /_/src/DurableTask.Core/TaskActivityDispatcher.cs:line 189
```
It looks like this was previously resolved for the Azure Functions durable extensions package https://github.com/Azure/azure-functions-durable-extension/pull/1392 which looks very similar to the TaskActivity code that's throwing here: https://github.com/Azure/durabletask/blob/6f902190fcf7f14d42b07e940f516e47525dbc18/src/DurableTask.Core/TaskActivity.cs#L107.
### Expected behavior
TypeNameHandling.All works and serializes properly.
### Actual behavior
The framework throws the exception above.
### App Details
- **Durable task package version (e.g. v1.8.3)**: 2.13.0
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
アクティビティ入力が処理される src/DurableTask.Core/TaskActivity.cs の 107 行目から開始し、issue にリンクされている durable-functions の修正と比較してください。Common/Utils.cs の 210 行目を確認し、TypeNameHandling.All が報告された JsonReaderException や JArray の解析失敗を引き起こさなくなっていることを検証してください。既存のテスト構造で対応できる場合は、シリアライゼーション設定のリグレッションテストを追加してください。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- csharp
- 領域
- distributed-systems
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100