Skip to content

[Error Prone] Fix Slf4j formatting errors and enable Slf4jFormatShouldBeConst check#37771

Draft
stankiewicz wants to merge 2 commits intoapache:masterfrom
stankiewicz:error_prone_Slf4jFormatShouldBeConst
Draft

[Error Prone] Fix Slf4j formatting errors and enable Slf4jFormatShouldBeConst check#37771
stankiewicz wants to merge 2 commits intoapache:masterfrom
stankiewicz:error_prone_Slf4jFormatShouldBeConst

Conversation

@stankiewicz
Copy link
Contributor

This PR resolves all Slf4jFormatShouldBeConst and Slf4jPlaceholderMismatch build errors across the repository and enables the Slf4jFormatShouldBeConst Error Prone check globally to prevent future regressions.


Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

  • Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
  • Update CHANGES.md with noteworthy changes.
  • If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md

GitHub Actions Tests Status (on master branch)

Build python source distribution and wheels
Python tests
Java tests
Go tests

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! 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 to enable Memory in your admin console.

Changelog
  • 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.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

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.

Customization

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.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 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.

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.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@stankiewicz stankiewicz marked this pull request as draft March 4, 2026 19:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant