Fix AMQP09 panic when exchangeDeclareArgs is nil - issue #3576 #3593
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.
Problem
The AMQP09 output would panic with "assignment to entry in nil map" when configured with
exchange_declare.arguments. This occurred because theexchangeDeclareArgsfield was never initialized before attempting to assign values to it.The above configuration would cause a panic at runtime when the code tried to execute:
Solution
Added a length check before initializing the
exchangeDeclareArgsmap. The map is now only initialized when there are actually arguments to set:This preserves the original behavior where
exchangeDeclareArgsremainsnilwhen no arguments are provided (which is valid for AMQP exchange declarations), while properly initializing the map when arguments exist.Testing
Added comprehensive unit tests to cover both scenarios:
All existing integration tests continue to pass, ensuring no regression.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.