[java-firestore] `ServerSideTransaction.execute` ignores `PipelineExecuteOptions` argument

未關閉
#13,094 0 則留言 0 個 reaction 已指派 1 人 在 GitHub 檢視

維護者通常 1 天內回覆

@MarkDuckworth 已經在處理了。

開始於 2026年4月17日。

評估

這個 Issue 還沒有評估資料。

描述

api: firestore

Description:

When executing a pipeline within a transaction, the ServerSideTransaction.execute method that accepts a PipelineExecuteOptions parameter completely ignores it and instantiates an empty options object instead.

Steps to Reproduce / Code Snippet:
In google-cloud-firestore/src/main/java/com/google/cloud/firestore/ServerSideTransaction.java:

  @Nonnull
  @Override
  public ApiFuture<Pipeline.Snapshot> execute(
      @Nonnull Pipeline pipeline, @Nonnull PipelineExecuteOptions options) {
    try (TraceUtil.Scope ignored = transactionTraceContext.makeCurrent()) {
      // BUG: ignores the 'options' parameter entirely
      return pipeline.execute(new PipelineExecuteOptions(), transactionId, null);
    }
  }

Because of this, any custom options explicitly provided during transaction.execute(pipeline, options) get dropped before the underlying gRPC ExecutePipelineRequest is dispatched.

Expected Behavior:
The method should propagate the correctly populated options object provided in the method signature:

  @Nonnull
  @Override
  public ApiFuture<Pipeline.Snapshot> execute(
      @Nonnull Pipeline pipeline, @Nonnull PipelineExecuteOptions options) {
    try (TraceUtil.Scope ignored = transactionTraceContext.makeCurrent()) {
      return pipeline.execute(options, transactionId, null);
    }
  }

Impact:
Integration tests like ITPipelineTest.testPipelineInTransactionsWithOptions end up inadvertently testing with empty options because instances like new PipelineExecuteOptions().with("foo", "bar") are discarded silently.

主要語言
Java
星號
2.1k
分支
1.2k
平均合併
2 天 14 小時
30 天內合併 PR
192

環境準備

  • 沒有 Dockerfile 或 Docker Compose 檔案
  • 沒有 Pull Request 範本
  • 閱讀貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

googleapis/google-cloud-java 的其他 Issue

查看 googleapis/google-cloud-java 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。