]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 140124 - PuntTryAgain must die. Patch by gerv, 2xr=myk.
authorgerv%gerv.net <>
Fri, 26 Apr 2002 13:13:40 +0000 (13:13 +0000)
committergerv%gerv.net <>
Fri, 26 Apr 2002 13:13:40 +0000 (13:13 +0000)
CGI.pl
post_bug.cgi

diff --git a/CGI.pl b/CGI.pl
index f9892f7c63a17ce772b0cdccd813ff3cd6b3d487..c0e38c50a76c0ca21ce89bcde6b4c0f026941054 100644 (file)
--- a/CGI.pl
+++ b/CGI.pl
@@ -228,14 +228,11 @@ sub CheckFormField (\%$;\@) {
         SendSQL("SELECT description FROM fielddefs WHERE name=" . SqlQuote($fieldname));
         my $result = FetchOneColumn();
         if ($result) {
-            PuntTryAgain("A legal $result was not set.");
+            ThrowCodeError("A legal $result was not set.", undef, "abort");
         }
         else {
-            PuntTryAgain("A legal $fieldname was not set.");
-            print Param("browserbugmessage");
+            ThrowCodeError("A legal $fieldname was not set.", undef, "abort");
         }
-        PutFooter();
-        exit 0;
       }
 }
 
@@ -965,9 +962,11 @@ sub DisplayError {
 # For "this shouldn't happen"-type places in the code.
 # $vars->{'variables'} is a reference to a hash of useful debugging info.
 sub ThrowCodeError {
-  ($vars->{'error'}, $vars->{'variables'}) = (@_);
+  ($vars->{'error'}, $vars->{'variables'}, my $unlock_tables) = (@_);
   $vars->{'title'} = "Code Error";
 
+  SendSQL("UNLOCK TABLES") if $unlock_tables;
+  
   # We may optionally log something to file here.
   
   print "Content-type: text/html\n\n" if !$vars->{'header_done'};
@@ -1016,18 +1015,6 @@ END
     exit;  
 }
 
-# PuntTryAgain is deprecated. Use UserError with the unlock_tables parameter. 
-sub PuntTryAgain ($) {
-    ($vars->{'error'}) = (@_);
-    
-    SendSQL("UNLOCK TABLES");
-
-    $vars->{'header_done'} = "true";
-    $template->process("global/user-error.html.tmpl", $vars)
-      || ThrowTemplateError($template->error());
-    exit;
-}
-
 sub CheckIfVotedConfirmed {
     my ($id, $who) = (@_);
     SendSQL("SELECT bugs.votes, bugs.bug_status, products.votestoconfirm, " .
index b727396d0303b3ae110e82f28c110add8741d0ad..1434921308cd980eadb767bf1c517445a37cb23b 100755 (executable)
@@ -220,15 +220,15 @@ foreach my $b (grep(/^bit-\d*$/, keys %::FORM)) {
     if ($::FORM{$b}) {
         my $v = substr($b, 4);
         $v =~ /^(\d+)$/
-          || PuntTryAgain("One of the group bits submitted was invalid.");
+          || ThrowCodeError("One of the group bits submitted was invalid.",
+                                                                undef, "abort");
         if (!GroupIsActive($v)) {
             # Prevent the user from adding the bug to an inactive group.
             # Should only happen if there is a bug in Bugzilla or the user
             # hacked the "enter bug" form since otherwise the UI 
             # for adding the bug to the group won't appear on that form.
-            PuntTryAgain("You can't add this bug to the inactive group " . 
-                         "identified by the bit '$v'. This shouldn't happen, " .
-                         "so it may indicate a bug in Bugzilla.");
+            ThrowCodeError("Attempted to add bug to an inactive group, " . 
+                           "identified by the bit '$v'.", undef, "abort");
         }
         $sql .= " + $v";    # Carefully written so that the math is
                             # done by MySQL, which can handle 64-bit math,