[#7971] Update attachment processing #8003
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.
Relevant issue(s)
Fixes #7971
What does this do?
Update attachment processing
Handle when incoming messages are re-parsed which can cause attachments to be rebuilt when trying to render the main body part.
Why was this needed?
Occasionally when main body attachment part will get rebuilt while the content is masked. When this happens we can see errors such as:
undefined method `unmasked_body' for nil:NilClass
.Implementation notes
This change ensures the masking job doesn't fail and the code will now raise an
MissingAttachment
exception instead.Rescuing from this in
IncomingMessage#get_main_body_text_internal
allows us to retry straight away as in the second attempt the main part will be the new attachment instance and the part will be rendered.[skip changelog]