Bug 32242: Resolve encoding issue when sending to Net::Stomp

This is meant as a quick fix. It should be enhanced later on by
letting Net::Stomp do the UTF8 conversion.

Test plan:
Run batch mod items. Add a Unicode char in the notes.
Check if job runs and results are correct.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Marcel de Rooy 2022-11-17 09:29:42 +00:00 committed by Tomas Cohen Arazi
parent 2946f92bf0
commit 022034a1c7
Signed by: tomascohen
GPG key ID: 0A272EA1B2F3C15F

View file

@ -16,6 +16,7 @@ package Koha::BackgroundJob;
# along with Koha; if not, see <http://www.gnu.org/licenses>.
use Modern::Perl;
use Encode qw();
use JSON;
use Carp qw( croak );
use Net::Stomp;
@ -137,7 +138,8 @@ sub enqueue {
# Also, here we just want the Koha instance's name, but it's not in the config...
# Picking a random id (memcached_namespace) from the config
my $namespace = C4::Context->config('memcached_namespace');
$conn->send_with_receipt( { destination => sprintf("/queue/%s-%s", $namespace, $job_queue), body => $json_args } )
my $encoded_args = Encode::encode_utf8( $json_args ); # FIXME We should better leave this to Net::Stomp?
$conn->send_with_receipt( { destination => sprintf("/queue/%s-%s", $namespace, $job_queue), body => $encoded_args } )
or Koha::Exceptions::Exception->throw('Job has not been enqueued');
} catch {
$self->status('failed')->store;