/**
  * @param IncomingPhysicalMessage $physicalMessage
  *
  * @return IncomingLogicalMessage|null
  */
 private function extractMessage(IncomingPhysicalMessage $physicalMessage)
 {
     $body = $physicalMessage->getBody();
     if ($body === null || $body === '') {
         return null;
     }
     if (!isset($physicalMessage->getHeaders()[HeaderTypeEnum::ENCLOSED_CLASS])) {
         return null;
     }
     $messageClass = $physicalMessage->getHeaders()[HeaderTypeEnum::ENCLOSED_CLASS];
     $serializer = $this->deserializerResolver->resolve($physicalMessage->getHeaders());
     $instanceMessage = $serializer->deserialize($body, $messageClass);
     return $this->logicalMessageFactory->createFromObject($instanceMessage);
 }