]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 825718: Fix Bugzilla::Bug->check() wrt caching mechanism
authorByron Jones <bjones@mozilla.com>
Mon, 7 Jan 2013 05:46:38 +0000 (13:46 +0800)
committerByron Jones <bjones@mozilla.com>
Mon, 7 Jan 2013 05:46:38 +0000 (13:46 +0800)
r=LpSolit,r=LpSolit

Bugzilla/Bug.pm

index 7c7e0fb37ca6900058d0a95071388c96aea6799f..4485b620c616aa33973affc86d24ec281681e887 100644 (file)
@@ -372,14 +372,16 @@ sub cache_key {
 
 sub check {
     my $class = shift;
-    my ($id, $field) = @_;
-
-    ThrowUserError('improper_bug_id_field_value', { field => $field }) unless defined $id;
+    my ($param, $field) = @_;
 
     # Bugzilla::Bug throws lots of special errors, so we don't call
     # SUPER::check, we just call our new and do our own checks.
-    $id = trim($id);
-    my $self = $class->new($id);
+    my $id = ref($param)
+        ? ($param->{id} = trim($param->{id}))
+        : ($param = trim($param));
+    ThrowUserError('improper_bug_id_field_value', { field => $field }) unless defined $id;
+
+    my $self = $class->new($param);
 
     if ($self->{error}) {
         # For error messages, use the id that was returned by new(), because