diff --git a/Bugzilla/WebService/Bug.pm b/Bugzilla/WebService/Bug.pm index 59a413c27..1050cf7e2 100644 --- a/Bugzilla/WebService/Bug.pm +++ b/Bugzilla/WebService/Bug.pm @@ -887,9 +887,12 @@ sub _bug_to_hash { my @values = map { $self->type('string', $_->name) } @{ $bug->get_object($name) }; $item{$name} = \@values; } - else { + elsif ($field->type == FIELD_TYPE_SINGLE_SELECT) { $item{$name} = $self->type('string', $bug->$name && $bug->get_object($name)->name); } + else { + $item{$name} = $self->type('string', $bug->$name); + } } # Timetracking fields are only sent if the user can see them. diff --git a/contrib/bz_webservice_demo.pl b/contrib/bz_webservice_demo.pl index 104151d85..74ca66b83 100755 --- a/contrib/bz_webservice_demo.pl +++ b/contrib/bz_webservice_demo.pl @@ -276,11 +276,11 @@ if ($bug_id) { my $value = $bug->{$field}; if (ref($value) eq 'HASH') { foreach (keys %$value) { - print "$_: " . $value->{$_} . "\n"; + print "$_: " . (ref($value->{$_}) eq 'ARRAY' ? join(', ', @{$value->{$_}}) : $value->{$_}) . "\n"; } } else { - print "$field: $value\n"; + print "$field: " . (ref($value) eq 'ARRAY' ? join(', ', @$value) : $value) . "\n"; } } }