From: Go MAEDA Date: Wed, 17 Mar 2021 13:53:24 +0000 (+0000) Subject: Merged r20812 from trunk to 4.1-stable (#34479). X-Git-Tag: 4.1.2~6 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=d5f1ebdf10640498bcb6a62c123152c954ff1422;p=redmine.git Merged r20812 from trunk to 4.1-stable (#34479). git-svn-id: http://svn.redmine.org/redmine/branches/4.1-stable@20813 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/attachment.rb b/app/models/attachment.rb index cf0ef5765..e91d7f8c4 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -436,16 +436,15 @@ class Attachment < ActiveRecord::Base private def reuse_existing_file_if_possible - original_diskfile = nil + original_diskfile = diskfile + original_filename = disk_filename reused = with_lock do if existing = Attachment .where(digest: self.digest, filesize: self.filesize) - .where('id <> ? and disk_filename <> ?', - self.id, self.disk_filename) + .where.not(disk_filename: original_filename) .order(:id) .last existing.with_lock do - original_diskfile = self.diskfile existing_diskfile = existing.diskfile if File.readable?(original_diskfile) && File.readable?(existing_diskfile) && @@ -456,7 +455,7 @@ class Attachment < ActiveRecord::Base end end end - if reused + if reused && Attachment.where(disk_filename: original_filename).none? File.delete(original_diskfile) end rescue ActiveRecord::StatementInvalid, ActiveRecord::RecordNotFound