Subscription event DataFetcherResult.extensions are missing from emitted ExecutionResult

オープン
#4,475 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
68/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
graphql, java

調査の方向性

発行された DataFetcherResult を ExecutionResult に変換する subscription の実行パスから始め、issue にある Java の再現コードを使って、どこで extensions が失われるのかを追跡します。発行されたイベントのパスと初期の subscription 結果を比較し、その後、発行された結果の extensions がその ExecutionResult に現れることを確認します。

索引モデルが issue の本文から書いたものです。

説明

When a subscription publisher emits a DataFetcherResult containing extensions, those extensions are not included in the emitted ExecutionResult.

Reproduction

A subscription data fetcher returns:

return Mono.just(
    DataFetcherResult.newResult()
        .data(event)
        .extensions(Map.of("myKey", "myValue"))
        .build()
);

The emitted result contains the expected data, but:

executionResult.getExtensions() == null

Adding the value directly to the ExtensionsBuilder during the initial data-fetcher invocation causes it to appear on the initial subscription result:

 dfe.getGraphQlContext()
     .get(ExtensionsBuilder.class)
     .addValue("myKey", "myValue");

However, extensions supplied by an emitted DataFetcherResult are missing from the corresponding subscription event result.

主要言語
Java
スター
6.2k
フォーク
1.1k
平均マージ
22分
マージ済み PR(30日)
14

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

graphql-java/graphql-java のほかの issue

graphql-java/graphql-java の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。