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

Abierto
#13,094 0 comentarios 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 1 día

@MarkDuckworth ya está trabajando en esto.

Desde el 17/4/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

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.

Lenguaje dominante
Java
Estrellas
2.1k
Forks
1.2k
Merge medio
2 d 14 h
PR fusionados (30 d)
192

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de googleapis/google-cloud-java

Todos los issues de googleapis/google-cloud-java

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.