gemini-code-assist[bot] commented on PR #37771:
URL: https://github.com/apache/beam/pull/37771#issuecomment-3999578671
## Summary of Changes
Hello, I'm Gemini Code Assist[^1]! I'm currently reviewing this pull request
and will post my feedback shortly. In the meantime, here's a summary to help
you and other reviewers quickly get up to speed!
This pull request significantly improves the consistency and quality of
SLF4J logging across the project. By standardizing log message formatting to
use placeholders and enabling a static analysis check, it proactively addresses
potential performance bottlenecks and enhances the maintainability of logging
code. This change ensures that future contributions adhere to these improved
logging practices.
### Highlights
* **Error Prone Check Enabled**: The `Slf4jFormatShouldBeConst` Error Prone
check has been enabled globally across the repository. This ensures that all
SLF4J logging statements use constant format strings, promoting best practices
and preventing potential issues from dynamic string concatenation.
* **SLF4J Formatting Fixes**: Numerous logging calls throughout the codebase
have been updated to comply with the `Slf4jFormatShouldBeConst` rule. This
primarily involved refactoring string concatenations within log messages to use
parameterized logging with `{}` placeholders, improving performance and
readability.
* **Targeted Suppressions**: Specific instances where dynamic log messages
are intentionally used, such as within `Slf4jLogWriter.java` and
`WindowTracing.java`, have been explicitly suppressed to allow for necessary
flexibility while maintaining the overall enforcement of the new logging
standard.
🧠**New Feature in Public Preview:** You can now enable **Memory** to help
**Gemini Code Assist** learn from your team's feedback. This makes future code
reviews more consistent and personalized to your project's style. **Click
[here](https://codeassist.google/code-review/login) to enable Memory in your
admin console.**
<details>
<summary><b>Changelog</b></summary>
* **buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy**
* Removed 'Slf4jFormatShouldBeConst' from the list of disabled Error
Prone checks, effectively enabling it.
*
**it/common/src/main/java/org/apache/beam/it/common/utils/IORedirectUtil.java**
* Updated SLF4J info log to use a placeholder for the line content.
*
**it/jdbc/src/main/java/org/apache/beam/it/jdbc/AbstractJDBCResourceManager.java**
* Updated SLF4J info log to use a placeholder for the SQL statement.
*
**runners/core-java/src/main/java/org/apache/beam/runners/core/metrics/MetricsLogger.java**
* Updated SLF4J info log to use a placeholder for the generated log
message.
*
**runners/core-java/src/main/java/org/apache/beam/runners/core/metrics/SimpleExecutionState.java**
* Updated SLF4J warn log to use a placeholder for the lull message.
*
**runners/direct-java/src/main/java/org/apache/beam/runners/direct/DoFnLifecycleManagerRemovingTransformEvaluator.java**
* Updated SLF4J error log to use a placeholder for the message and
include the exception.
*
**runners/flink/src/main/java/org/apache/beam/runners/flink/FlinkStreamingPipelineTranslator.java**
* Updated SLF4J info log to use a placeholder for the transform URN.
*
**runners/java-fn-execution/src/main/java/org/apache/beam/runners/fnexecution/control/FnApiControlClientPoolService.java**
* Updated SLF4J error log to use a placeholder for the message.
*
**runners/java-fn-execution/src/main/java/org/apache/beam/runners/fnexecution/logging/Slf4jLogWriter.java**
* Added `@SuppressWarnings("Slf4jFormatShouldBeConst")` annotation to
the `log` method.
*
**runners/java-fn-execution/src/main/java/org/apache/beam/runners/fnexecution/status/WorkerStatusClient.java**
* Updated SLF4J warn log to use placeholders for response ID and status
info.
*
**runners/java-fn-execution/src/test/java/org/apache/beam/runners/fnexecution/control/RemoteExecutionTest.java**
* Updated SLF4J warn and error logs to use placeholders for the element.
*
**runners/java-job-service/src/main/java/org/apache/beam/runners/jobsubmission/InMemoryJobService.java**
* Updated multiple SLF4J error logs to use placeholders for
invocation/preparation IDs and remove `String.format`.
*
**runners/java-job-service/src/main/java/org/apache/beam/runners/jobsubmission/JobInvocation.java**
* Updated SLF4J error log to use a placeholder for the job invocation ID
and include the throwable.
*
**runners/jet/src/main/java/org/apache/beam/runners/jet/JetPipelineResult.java**
* Updated SLF4J warn log to use placeholders for the JobStatus class
name and status name.
* **runners/jet/src/main/java/org/apache/beam/runners/jet/JetRunner.java**
* Updated SLF4J info log to use a placeholder for the number of Jet
cluster members.
*
**runners/samza/src/main/java/org/apache/beam/runners/samza/SamzaPipelineResult.java**
* Updated SLF4J error log to use a constant message 'Pipeline execution
failed' and include the throwable.
*
**runners/samza/src/main/java/org/apache/beam/runners/samza/SamzaPipelineRunner.java**
* Updated SLF4J info log to use a placeholder for the pipeline DOT
string.
*
**runners/samza/src/main/java/org/apache/beam/runners/samza/SamzaRunner.java**
* Updated SLF4J info log to use placeholders for the reporter name and
class name.
*
**runners/samza/src/main/java/org/apache/beam/runners/samza/adapter/BoundedSourceSystem.java**
* Updated SLF4J info log to use a placeholder for the system name.
*
**runners/samza/src/main/java/org/apache/beam/runners/samza/adapter/UnboundedSourceSystem.java**
* Updated SLF4J info log to use a placeholder for the system name.
*
**runners/samza/src/main/java/org/apache/beam/runners/samza/container/ContainerCfgLoader.java**
* Updated multiple SLF4J info logs to use placeholders for container ID
and coordinator URL, removing `String.format`.
*
**runners/samza/src/main/java/org/apache/beam/runners/samza/runtime/AsyncDoFnRunner.java**
* Updated SLF4J info log to use a placeholder for the runner class name.
*
**runners/samza/src/main/java/org/apache/beam/runners/samza/translation/ConfigBuilder.java**
* Updated multiple SLF4J info logs to use placeholders for config file
path, config loader factory name, and execution environment.
*
**runners/samza/src/main/java/org/apache/beam/runners/samza/translation/TranslationContext.java**
* Updated SLF4J info log to use placeholders for stream ID, message
stream, and key, removing `String.format`.
*
**runners/spark/src/main/java/org/apache/beam/runners/spark/SparkPipelineRunner.java**
* Updated SLF4J info log to use a placeholder for the listener class
name.
*
**runners/spark/src/main/java/org/apache/beam/runners/spark/translation/SparkContextFactory.java**
* Updated SLF4J error log to use a placeholder for the Spark context
object.
*
**runners/spark/src/main/java/org/apache/beam/runners/spark/util/SideInputBroadcast.java**
* Updated SLF4J warn log to use a constant message 'Error reading
broadcast data' and include the exception.
*
**runners/spark/src/test/java/org/apache/beam/runners/spark/metrics/SparkMetricsPusherTest.java**
* Updated SLF4J warn log to use a constant message 'Exception caught'
and include the exception.
*
**sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/transforms/providers/LoggingTransformProvider.java**
* Updated SLF4J debug, info, and error logs to use placeholders for the
message.
*
**sdks/java/core/src/main/java/org/apache/beam/sdk/util/WindowTracing.java**
* Added `@SuppressWarnings({"unused", "Slf4jFormatShouldBeConst"})`
annotations to `debug` and `trace` methods.
*
**sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/PTransformTranslation.java**
* Updated SLF4J warn log to use placeholders for transform name and
exception string, removing `String.format`.
*
**sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/TransformUpgrader.java**
* Updated SLF4J info log to use a placeholder for the exception string,
removing `String.format`.
*
**sdks/java/core/src/test/java/org/apache/beam/sdk/testing/ExpectedLogsTest.java**
* Updated multiple SLF4J error and trace logs to use placeholders for
the generated string and exceptions.
*
**sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/join/CoGbkResultTest.java**
* Updated SLF4J info log to use placeholders for tag sizes and seed.
*
**sdks/java/expansion-service/src/main/java/org/apache/beam/sdk/expansion/service/ExpansionService.java**
* Updated multiple SLF4J debug and info logs to use placeholders for
`TransformPayloadTranslator` and exceptions.
*
**sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/io/AvroGeneratedUserFactory.java**
* Updated SLF4J error log to use a constant message 'Fail to create a
AvroGeneratedUser instance' and include the exception.
*
**sdks/java/extensions/avro/src/test/java/org/apache/beam/sdk/extensions/avro/schemas/TestAvroFactory.java**
* Updated SLF4J error log to use a constant message 'Fail to create a
TestAvro instance' and include the exception.
*
**sdks/java/extensions/google-cloud-platform-core/src/main/java/org/apache/beam/sdk/extensions/gcp/options/GcpOptions.java**
* Updated multiple SLF4J warn logs to use placeholders for
`gcpTempLocation` and exceptions, removing `String.format`.
*
**sdks/java/extensions/google-cloud-platform-core/src/main/java/org/apache/beam/sdk/extensions/gcp/util/RetryHttpRequestInitializer.java**
* Updated multiple SLF4J warn logs to use placeholders for retry counts
and request URL, removing `String.format`.
*
**sdks/java/extensions/ordered/src/main/java/org/apache/beam/sdk/extensions/ordered/GlobalSequencesProcessorDoFn.java**
* Updated multiple SLF4J trace logs to use placeholders for key,
sequence, last range, timer time, max time, and element time.
*
**sdks/java/extensions/ordered/src/main/java/org/apache/beam/sdk/extensions/ordered/ProcessorDoFn.java**
* Updated multiple SLF4J trace logs to use placeholders for processing
state key, buffered event, and processing state.
*
**sdks/java/extensions/ordered/src/main/java/org/apache/beam/sdk/extensions/ordered/SequencePerKeyProcessorDoFn.java**
* Updated multiple SLF4J trace and debug logs to use placeholders for
processing state key.
*
**sdks/java/extensions/ordered/src/main/java/org/apache/beam/sdk/extensions/ordered/combiner/DefaultSequenceCombiner.java**
* Updated SLF4J debug log to use a placeholder for the completed
sequence range.
*
**sdks/java/extensions/python/src/main/java/org/apache/beam/sdk/extensions/python/PythonService.java**
* Updated multiple SLF4J info logs to use placeholders for bootstrap
command, output lines, and service arguments.
*
**sdks/java/harness/src/main/java/org/apache/beam/fn/harness/ExternalWorkerService.java**
* Updated SLF4J error log to use a placeholder for the worker ID and
include the exception, removing `String.format`.
*
**sdks/java/harness/src/main/java/org/apache/beam/fn/harness/control/ExecutionStateSampler.java**
* Updated multiple SLF4J warn logs to use placeholders for bundle ID,
lull time, PTransform details, and stack trace, removing `String.format`.
*
**sdks/java/harness/src/main/java/org/apache/beam/fn/harness/control/ProcessBundleHandler.java**
* Updated SLF4J error log to use a placeholder for the message, removing
`String.format`.
*
**sdks/java/harness/src/main/java/org/apache/beam/fn/harness/debug/DataSampler.java**
* Updated SLF4J warn log to use placeholders for pcollection ID and
exception string.
*
**sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/common/AsyncBatchWriteHandler.java**
* Updated SLF4J info log to use a placeholder for the error summary.
*
**sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/kinesis/EFOShardSubscriber.java**
* Updated SLF4J warn log to use a placeholder for the message.
*
**sdks/java/io/amazon-web-services2/src/main/java/org/apache/beam/sdk/io/aws2/sns/SnsIO.java**
* Updated SLF4J warn log to use a placeholder for the topic ARN and
include the exception.
*
**sdks/java/io/amqp/src/test/java/org/apache/beam/sdk/io/amqp/AmqpIOTest.java**
* Updated SLF4J info log to use a placeholder for the received message
body.
*
**sdks/java/io/elasticsearch/src/main/java/org/apache/beam/sdk/io/elasticsearch/ElasticsearchIO.java**
* Updated SLF4J error log to use a placeholder for the error messages
string.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpers.java**
* Updated SLF4J error log to use placeholders for final error and
causative error, removing `String.format`.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.java**
* Updated SLF4J warn log to use placeholders for table schema and
exception, removing `String.format`.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryServicesImpl.java**
* Updated multiple SLF4J info logs to use placeholders for job
reference, error messages, and exceptions.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinationsHelpers.java**
* Updated SLF4J info log to use a placeholder for the BigQuery table
reference.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/StorageApiFinalizeWritesDoFn.java**
* Updated multiple SLF4J error and info logs to use placeholders for
stream ID, error, table ID, stream names, and response.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/StorageApiFlushAndFinalizeDoFn.java**
* Updated multiple SLF4J warn logs to use placeholders for stream ID,
offset, and error.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/StorageApiWriteUnshardedRecords.java**
* Updated SLF4J info log to use a placeholder for the removal key.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/StorageApiWritesShardedRecords.java**
* Updated multiple SLF4J error and warn logs to use placeholders for
error, stream name, failed context, and max request size.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/TableSchemaCache.java**
* Updated multiple SLF4J error and info logs to use placeholders for
exception and refreshed schema key.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.java**
* Updated multiple SLF4J error and info logs to use placeholders for
error message, metadata table ID, and table ID.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/BigtableServiceFactory.java**
* Updated multiple SLF4J error and debug logs to use placeholders for
config ID, ref count, and table ID.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/changestreams/action/DetectNewPartitionsAction.java**
* Updated multiple SLF4J info, debug, and warn logs to use placeholders
for watermark, current tracker restriction, and current restriction.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.java**
* Updated SLF4J debug log to use a placeholder for the full stream
partition prefix.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/changestreams/dofn/InitializeDoFn.java**
* Updated multiple SLF4J info logs to use placeholders for debug strings
and change stream name.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/datastore/EntityToRow.java**
* Updated SLF4J info log to use a placeholder for the key field.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/datastore/RowToEntity.java**
* Updated SLF4J info log to use a placeholder for the key field.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/firestore/FirestoreV1WriteFn.java**
* Updated SLF4J info log to use a placeholder for the message.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIO.java**
* Removed `Throwables` import.
* Updated multiple SLF4J debug, error, and warn logs to use placeholders
for operation name, error code, error message, resource ID, and exception.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIOPatientEverything.java**
* Removed `Throwables` import.
* Updated SLF4J warn log to use a constant message and include the
exception.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/healthcare/HL7v2IO.java**
* Removed `Throwables` import.
* Updated multiple SLF4J warn and info logs to use placeholders for
message ID, exception, send time restriction details, error message, and stack
trace.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/healthcare/HttpHealthcareApiClient.java**
* Updated multiple SLF4J warn and debug logs to use placeholders for
HL7v2 store and operation name.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/pubsub/AddTimestampAttribute.java**
* Updated SLF4J warn log to use a placeholder for the timestamp field.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/BatchSpannerRead.java**
* Updated SLF4J error log to use a placeholder for the read operation
string and include the exception.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/NaiveSpannerRead.java**
* Updated SLF4J error log to use a placeholder for the operation and
include the exception.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java**
* Updated multiple SLF4J info and warn logs to use placeholders for
database ID, dialect, change stream name, and mutation group.
*
**sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/testing/BigqueryClient.java**
* Updated multiple SLF4J info and debug logs to use placeholders for
dataset ID, table name, and exception.
*
**sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDaoTest.java**
* Updated SLF4J error log to use a constant message 'Failed to wait for
futures' and include the exception.
*
**sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigtable/changestreams/it/BigtableChangeStreamIT.java**
* Updated SLF4J info log to use a placeholder for the
`bigtableClientOverride` object.
*
**sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/changestreams/it/IntegrationTestEnv.java**
* Updated multiple SLF4J error and info logs to use placeholders for
change stream, table, database ID, and max table length.
*
**sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/changestreams/it/SpannerChangeStreamOrderedByTimestampAndTransactionIdIT.java**
* Updated multiple SLF4J error and debug logs to use placeholders for
exception, pipeline end time, and transaction timestamps.
*
**sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/changestreams/it/SpannerChangeStreamOrderedWithinKeyGloballyIT.java**
* Updated multiple SLF4J error and info logs to use placeholders for
exception and transaction timestamps.
*
**sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/changestreams/it/SpannerChangeStreamOrderedWithinKeyIT.java**
* Updated multiple SLF4J info and debug logs to use placeholders for
pipeline and transaction timestamps.
*
**sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/changestreams/it/SpannerChangeStreamTransactionBoundariesIT.java**
* Updated multiple SLF4J info and debug logs to use placeholders for
pipeline and transaction timestamps.
*
**sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/changestreams/util/TestJsonMapper.java**
* Updated SLF4J info log to use a placeholder for the record.
*
**sdks/java/io/hbase/src/main/java/org/apache/beam/sdk/io/hbase/HBaseSharedConnection.java**
* Updated SLF4J warn log to use placeholders for config string and debug
string.
*
**sdks/java/io/jdbc/src/main/java/org/apache/beam/sdk/io/jdbc/JdbcUtil.java**
* Updated multiple SLF4J info and warn logs to use placeholders for
localized jar paths and exceptions.
* **sdks/java/io/jms/src/main/java/org/apache/beam/sdk/io/jms/JmsIO.java**
* Updated SLF4J error log to use a constant message 'Error closing
session' and include the exception.
*
**sdks/java/io/kafka/src/main/java/org/apache/beam/sdk/io/kafka/KafkaUnboundedReader.java**
* Updated multiple SLF4J warn and debug logs to use placeholders for
checkpoint mark, poll timeout, and record count.
*
**sdks/java/io/kafka/src/main/java/org/apache/beam/sdk/io/kafka/KafkaWriter.java**
* Updated SLF4J warn log to use a placeholder for the message.
*
**sdks/java/io/kafka/src/test/java/org/apache/beam/sdk/io/kafka/KafkaIOIT.java**
* Updated SLF4J error log to use a placeholder for the element.
*
**sdks/java/io/kudu/src/test/java/org/apache/beam/sdk/io/kudu/KuduIOTest.java**
* Added `@SuppressWarnings("Slf4jFormatShouldBeConst")` annotations to
`openSession`, `write`, `closeSession`, and `start` methods in `FakeWriter` and
`FakeReader`.
*
**sdks/java/io/mongodb/src/main/java/org/apache/beam/sdk/io/mongodb/MongoDbIO.java**
* Updated SLF4J debug log to use a placeholder for the filters JSON.
*
**sdks/java/io/neo4j/src/main/java/org/apache/beam/sdk/io/neo4j/Neo4jIO.java**
* Updated multiple SLF4J info and debug logs to use placeholders for
transaction type, cypher, parameters, and element count.
*
**sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/SnowflakeIO.java**
* Updated multiple SLF4J error and info logs to use placeholders for
SnowPipe entry and file names.
*
**sdks/java/io/solace/src/main/java/org/apache/beam/sdk/io/solace/broker/SessionService.java**
* Updated multiple SLF4J warn logs to use placeholders for
PUB_ACK_WINDOW_SIZE.
*
**sdks/java/io/solace/src/test/java/org/apache/beam/sdk/io/solace/it/SolaceContainerManager.java**
* Updated SLF4J info log to use a placeholder for the stdout.
* **sdks/java/io/solr/src/main/java/org/apache/beam/sdk/io/solr/SolrIO.java**
* Updated SLF4J warn log to use a constant message 'Error writing to
Solr. Retry attempt' and include the attempt number and exception.
*
**sdks/java/io/sparkreceiver/3/src/test/java/org/apache/beam/sdk/io/sparkreceiver/RabbitMqReceiverWithOffset.java**
* Updated multiple SLF4J info and error logs to use placeholders for
messages and exceptions.
*
**sdks/java/io/sparkreceiver/3/src/test/java/org/apache/beam/sdk/io/sparkreceiver/SparkReceiverIOIT.java**
* Updated SLF4J info log to use a placeholder for the number of records.
*
**sdks/java/io/thrift/src/main/java/org/apache/beam/sdk/io/thrift/ThriftIO.java**
* Updated multiple SLF4J error logs to use placeholders for filename,
transport exceptions, and general exceptions.
*
**sdks/java/ml/inference/openai/src/test/java/org/apache/beam/sdk/ml/inference/openai/OpenAIModelHandlerIT.java**
* Updated SLF4J info log to use a placeholder for the structured output.
*
**sdks/java/testing/watermarks/src/main/java/org/apache/beam/sdk/testing/watermarks/WatermarkLatency.java**
* Updated SLF4J info log to use a placeholder for the output string.
*
**sdks/java/transform-service/launcher/src/main/java/org/apache/beam/sdk/transformservice/launcher/TransformServiceLauncher.java**
* Updated multiple SLF4J info logs to use placeholders for credentials
and dependencies directory paths.
</details>
<details>
<summary><b>Using Gemini Code Assist</b></summary>
<br>
The full guide for Gemini Code Assist can be found on our [documentation
page](https://developers.google.com/gemini-code-assist/docs/review-github-code),
here are some quick tips.
<b>Invoking Gemini</b>
You can request assistance from Gemini at any point by creating a comment
using either `/gemini <command>` or `@gemini-code-assist <command>`. Below is a
summary of the supported commands on the current page.
Feature | Command | Description
--- | --- | ---
Code Review | `/gemini review` | Performs a code review for the current pull
request in its current state.
Pull Request Summary | `/gemini summary` | Provides a summary of the current
pull request in its current state.
Comment | @gemini-code-assist | Responds in comments when explicitly tagged,
both in pull request comments and review comments.
Help | `/gemini help` | Displays a list of available commands.
<b>Customization</b>
To customize Gemini Code Assist for GitHub experience, repository
maintainers can create a configuration file and/or provide a custom code review
style guide (such as PEP-8 for Python) by creating and adding files to a
`.gemini/` folder in the base of the repository. Detailed instructions can be
found
[here](https://developers.google.com/gemini-code-assist/docs/customize-gemini-behavior-github).
<b>Limitations & Feedback</b>
Gemini Code Assist may make mistakes. Please leave feedback on any instances
where its feedback is incorrect or counter productive. You can react with
:thumbsup: and :thumbsdown: on @gemini-code-assist comments. If you're
interested in giving your feedback about your experience with Gemini Code
Assist for Github and other Google products, sign up
[here](https://google.qualtrics.com/jfe/form/SV_2cyuGuTWsEw84yG).
<b>You can also get AI-powered code generation, chat, as well as code
reviews directly in the IDE at no cost with the [Gemini Code Assist IDE
Extension](https://cloud.google.com/products/gemini/code-assist).</b>
</details>
[^1]: Review the [Privacy Notices](https://policies.google.com/privacy),
[Generative AI Prohibited Use
Policy](https://policies.google.com/terms/generative-ai/use-policy), [Terms of
Service](https://policies.google.com/terms), and learn how to configure Gemini
Code Assist in GitHub
[here](https://developers.google.com/gemini-code-assist/docs/customize-gemini-behavior-github).
Gemini can make mistakes, so double check it and [use code with
caution](https://support.google.com/legal/answer/13505487).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]