diff options
-rw-r--r-- | Bugzilla/Flag.pm | 14 | ||||
-rwxr-xr-x | attachment.cgi | 7 |
2 files changed, 8 insertions, 13 deletions
diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm index 6d1abfdd9..ea60eebe4 100644 --- a/Bugzilla/Flag.pm +++ b/Bugzilla/Flag.pm @@ -273,7 +273,7 @@ sub process { # Take a snapshot of flags before any changes. my @old_summaries = snapshot($bug_id, $attach_id); - # Cancel old request flags if we are obsoleting an attachment. + # Cancel pending requests if we are obsoleting an attachment. if ($attach_id && $data->{'isobsolete'}) { CancelRequests($bug_id, $attach_id); } @@ -297,9 +297,7 @@ sub process { AND i.type_id IS NULL", undef, $bug_id); - foreach my $flag_id (@$flag_ids) { - clear($flag_id); - } + foreach my $flag_id (@$flag_ids) { clear($flag_id) } $flag_ids = $dbh->selectcol_arrayref( "SELECT flags.id @@ -312,9 +310,7 @@ sub process { AND (bugs.component_id = e.component_id OR e.component_id IS NULL)", undef, $bug_id); - foreach my $flag_id (@$flag_ids) { - clear($flag_id); - } + foreach my $flag_id (@$flag_ids) { clear($flag_id) } # Take a snapshot of flags after changes. my @new_summaries = snapshot($bug_id, $attach_id); @@ -681,9 +677,7 @@ sub CancelRequests { # Take a snapshot of flags before any changes. my @old_summaries = snapshot($bug_id, $attach_id) if ($timestamp); - foreach my $flag (@$request_ids) { - clear($flag); - } + foreach my $flag (@$request_ids) { clear($flag) } # If $timestamp is undefined, do not update the activity table return unless ($timestamp); diff --git a/attachment.cgi b/attachment.cgi index 5f50efb03..bffba5bc4 100755 --- a/attachment.cgi +++ b/attachment.cgi @@ -1152,9 +1152,10 @@ sub update SendSQL("SELECT NOW()"); my $timestamp = FetchOneColumn(); - # Update flags. These calls must be done before updating the - # 'attachments' table due to the deletion of request flags - # on attachments being obsoleted. + # Update flags. We have to do this before committing changes + # to attachments so that we can delete pending requests if the user + # is obsoleting this attachment without deleting any requests + # the user submits at the same time. my $target = Bugzilla::Flag::GetTarget(undef, $::FORM{'id'}); Bugzilla::Flag::process($target, $timestamp, \%::FORM); |