From 60b30c1df418178902b598dcaa5c93de8088e2ac Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Thu, 17 Nov 2022 09:29:42 +0000 Subject: [PATCH] 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 Signed-off-by: David Nind --- Koha/BackgroundJob.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Koha/BackgroundJob.pm b/Koha/BackgroundJob.pm index 442ba77975..727bc3b2f7 100644 --- a/Koha/BackgroundJob.pm +++ b/Koha/BackgroundJob.pm @@ -16,6 +16,7 @@ package Koha::BackgroundJob; # along with Koha; if not, see . 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; -- 2.30.2