fix: remove dangling placeholder from event source close warning - #3532
Merged
csviri merged 1 commit intoAug 3, 2026
Merged
Conversation
16 tasks
Contributor
There was a problem hiding this comment.
Pull request overview
This PR fixes a logging-formatting issue in EventSourceManager where a SLF4J warning message had one placeholder too many, causing the rendered log line to include a literal {} when stopping an event source fails.
Changes:
- Remove the redundant placeholder from the “error closing” warning.
- Update the message text to explicitly name what is being closed (“event source”) while preserving exception logging.
csviri
marked this pull request as ready for review
August 1, 2026 19:23
`log.warn("Error closing {} -> {}", eventSource.name(), e)` supplies two
placeholders but only one non-throwable argument. SLF4J trims a trailing
`Throwable` and reports it as the exception, so the stack trace is logged
correctly, but the second placeholder is left unfilled and the message
renders with a literal brace pair:
Error closing myEventSource -> {}
Drops the redundant placeholder and names what is being logged.
Note: the superficially similar calls in `InformerManager.stop` and
`InformerWrapper.start` are correct as they stand - they pass more
non-throwable arguments than placeholders, so nothing is left dangling.
csviri
force-pushed
the
fix/logging-lost-stack-traces
branch
from
August 1, 2026 19:26
dd44f0f to
8b86b6d
Compare
csviri
added a commit
to csviri/java-operator-sdk
that referenced
this pull request
Aug 3, 2026
…rator-framework#3532) `log.warn("Error closing {} -> {}", eventSource.name(), e)` supplies two placeholders but only one non-throwable argument. SLF4J trims a trailing `Throwable` and reports it as the exception, so the stack trace is logged correctly, but the second placeholder is left unfilled and the message renders with a literal brace pair: Error closing myEventSource -> {} Drops the redundant placeholder and names what is being logged. Note: the superficially similar calls in `InformerManager.stop` and `InformerWrapper.start` are correct as they stand - they pass more non-throwable arguments than placeholders, so nothing is left dangling.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
log.warn("Error closing {} -> {}", eventSource.name(), e)supplies twoplaceholders but only one non-throwable argument. SLF4J trims a trailing
Throwableand reports it as the exception, so the stack trace is loggedcorrectly, but the second placeholder is left unfilled and the message
renders with a literal brace pair:
Drops the redundant placeholder and names what is being logged.
Note: the superficially similar calls in
InformerManager.stopandInformerWrapper.startare correct as they stand - they pass morenon-throwable arguments than placeholders, so nothing is left dangling.
Part of #3517