Skip to content

[BUG] Azure Communication Service Job Router Java SDK having Deserialize Issue for RouterValue class #40803

Open
@TongJun86

Description

Describe the bug
Hi, I am using Azure Communicaton Service Job Router Java SDK, when I tried to create the router queue, store the queue id inside db and get the router queue via the queue id stored inside db, it hits deserialize issue for JobValue. I expect to be able to get the queue and proceed with the job assignment. This issue seems occurred for RouterWorker, RouterJob and other classes which used RouterValue. May I know is this an issue for job router java sdk or I do any mistake?

Exception or Stack Trace
java.io.UncheckedIOException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of com.azure.communication.jobrouter.models.RouterValue (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('Queue240624081839523')
at [Source: (byte[])"{"id":"Queue240624081839523","distributionPolicyId":"Policy240624081839523","labels":{"Id":"Queue240624081839523"},"etag":""0200df90-0000-1100-0000-6678bb620000""}"; line: 1, column: 92] (through reference chain: com.azure.communication.jobrouter.models.RouterQueue["labels"]->java.util.LinkedHashMap["Id"])
at com.azure.core.implementation.serializer.DefaultJsonSerializer.deserializeFromBytes(DefaultJsonSerializer.java:34) ~[azure-core-1.49.0.jar:1.49.0]
at com.azure.core.implementation.util.FluxByteBufferContent.toObject(FluxByteBufferContent.java:99) ~[azure-core-1.49.0.jar:1.49.0]
at com.azure.core.util.BinaryData.toObject(BinaryData.java:1116) ~[azure-core-1.49.0.jar:1.49.0]
at com.azure.core.util.BinaryData.toObject(BinaryData.java:927) ~[azure-core-1.49.0.jar:1.49.0]
at com.azure.communication.jobrouter.JobRouterAdministrationClient.getQueue(JobRouterAdministrationClient.java:1790) ~[azure-communication-jobrouter-1.1.4.jar:1.1.4]
at com.communication.service.jobrouter.JobRouterSettingServiceImpl.getRouterQueue(JobRouterSettingServiceImpl.java:90) ~[communication-service.jar:na]
at com.communication.service.jobrouter.JobRouterSettingServiceImpl.createNewRouterWorker(JobRouterSettingServiceImpl.java:217) ~[communication-service.jar:na]
at com.communication.service.jobrouter.JobRouterSettingServiceImpl.findRouterWorker(JobRouterSettingServiceImpl.java:206) ~[communication-service.jar:na]
at com.communication.service.jobrouter.JobRouterSettingServiceImpl.deregisterWorker(JobRouterSettingServiceImpl.java:165) ~[communication-service.jar:na]
at com.communication.service.jobrouter.JobRouterSettingServiceImpl.updateWorkerAvailability(JobRouterSettingServiceImpl.java:76) ~[communication-service.jar:na]
at com.communication.service.profile.ProfileNameServiceImpl.updateProfileOnlineStatus(ProfileNameServiceImpl.java:115) ~[communication-service.jar:na]

To Reproduce
Steps to reproduce the behavior:

  1. Import Job Router java sdk dependency
  2. Create a new router queue
  3. Get router queue via the queue id

Code Snippet
Create router queue:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyMMddHHmmssSSS");
String routerQueueId = "Queue".concat(simpleDateFormat.format(new Date()));
String distributionPolicyId = "Policy".concat(simpleDateFormat.format(new Date()));
DistributionPolicy distributionPolicy = createDistributionPolicy(distributionPolicyId);
CreateQueueOptions createQueueOptions = new CreateQueueOptions(routerQueueId, distributionPolicyId);
jobRouterAdministrationClient.createQueue(createQueueOptions);

Get router queue:

if (!StringUtils.isEmpty(routerQueueId)) {
routerQueue = jobRouterAdministrationClient.getQueue(routerQueueId);
}

Expected behavior
The queue seems to be created successfully, but when I try to get via the queue id, it hits deserialize issue. I expect to be able to get the queue and proceed with the job assignment.

Screenshots
Screenshot 2024-06-24 at 8 19 53 AM
Screenshot 2024-06-24 at 8 22 28 AM
Screenshot 2024-06-24 at 8 22 33 AM

Setup (please complete the following information):

  • OS: Mac
  • IDE: IntelliJ
  • Library/Libraries: com.azure:azure-communication-jobrouter:1.1.4
  • Java version: 17
  • App Server/Environment: Tomcat
  • Frameworks: Springboot

Additional context
If this is an issue, what will be the expected date to solve? Is there any temporary solution for this?

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

  • Bug Description Added
  • Repro Steps Added
  • Setup information Added

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

ClientThis issue points to a problem in the data-plane of the library.CommunicationbugThis issue requires a change to an existing behavior in the product in order to be resolved.customer-reportedIssues that are reported by GitHub users external to the Azure organization.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions