Preserve original body when resending #624
Merged
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.
refs #608 #568
This is a workaround for the fact that we currently rely on the generated Message types to properly serialize/deserialize RepeatingGroups.
In other words, we cannot go from bytes to a Message then back to bytes, which is exactly what we need to do in the case of a Resend.
This adds the
Message.buildWithBodyBytes([]byte)
func that lets us pull the Message from the Store, parse it, update the Header, and then build it back into bytes using the original Body.Stay tuned for a more complete solution that fully solves the problem beyond just Resend.
Note: The only standard non-Body group is NoHops. If that is used in the Header, this workaround may fail.