diff options
-rw-r--r-- | app/models/foi_attachment.rb | 1 | ||||
-rw-r--r-- | app/models/incoming_message.rb | 30 |
2 files changed, 17 insertions, 14 deletions
diff --git a/app/models/foi_attachment.rb b/app/models/foi_attachment.rb index dc55ff5f6..d12df688a 100644 --- a/app/models/foi_attachment.rb +++ b/app/models/foi_attachment.rb @@ -57,6 +57,7 @@ class FoiAttachment < ActiveRecord::Base end File.open(self.filepath, "wb") { |file| file.write d + file.fsync } update_display_size! @cached_body = d diff --git a/app/models/incoming_message.rb b/app/models/incoming_message.rb index f0f1680eb..2186d50dc 100644 --- a/app/models/incoming_message.rb +++ b/app/models/incoming_message.rb @@ -128,21 +128,23 @@ class IncomingMessage < ActiveRecord::Base # values in case we want to regenerate them (due to mail # parsing bugs, etc). if (!force.nil? || self.last_parsed.nil?) - self.extract_attachments! - self.sent_at = self.mail.date || self.created_at - self.subject = self.mail.subject - # XXX can probably remove from_name_if_present (which is a - # monkey patch) by just calling .from_addrs[0].name here - # instead? - self.mail_from = self.mail.from_name_if_present - begin - self.mail_from_domain = PublicBody.extract_domain_from_email(self.mail.from_addrs[0].spec) - rescue NoMethodError - self.mail_from_domain = "" + ActiveRecord::Base.transaction do + self.extract_attachments! + self.sent_at = self.mail.date || self.created_at + self.subject = self.mail.subject + # XXX can probably remove from_name_if_present (which is a + # monkey patch) by just calling .from_addrs[0].name here + # instead? + self.mail_from = self.mail.from_name_if_present + begin + self.mail_from_domain = PublicBody.extract_domain_from_email(self.mail.from_addrs[0].spec) + rescue NoMethodError + self.mail_from_domain = "" + end + self.valid_to_reply_to = self._calculate_valid_to_reply_to + self.last_parsed = Time.now + self.save! end - self.valid_to_reply_to = self._calculate_valid_to_reply_to - self.last_parsed = Time.now - self.save! end end |