private void dispatchMessage()

in src/main/java/com/amazonaws/services/sqs/AmazonSQSVirtualQueuesClient.java [289:310]


        private void dispatchMessage(Message message) {
            MessageAttributeValue messageAttributeValue = message.getMessageAttributes().get(VIRTUAL_QUEUE_NAME_ATTRIBUTE);
            // Case where a message was sent with missing attribute __AmazonSQSVirtualQueuesClient.QueueName
            if (messageAttributeValue == null) {
                orphanedMessageHandler.accept(queueUrl, message);
                return;
            }
            String queueName = messageAttributeValue.getStringValue();
            VirtualQueue virtualQueue = virtualQueues.get(queueName);
            if (virtualQueue != null) {
                messageHandlerOptional.map(messageHandler -> {
                    messageHandler.accept(virtualQueue.getID().getQueueUrl(), message);
                    virtualQueue.heartbeat();
                    return null;
                }).orElseGet(() -> {
                    virtualQueue.receiveBuffer.deliverMessages(Collections.singletonList(message), queueUrl, null);
                    return null;
                });
            } else {
                orphanedMessageHandler.accept(queueName, message);
            }
        }