From 2be6033726b332fa78268989f0dacede4efc59bf Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 28 Apr 2016 15:45:43 +0200 Subject: Protect against resources we can't instantiate. --- common/listener.cpp | 4 ++++ examples/mailtransportresource/mailtransportresource.cpp | 1 + 2 files changed, 5 insertions(+) diff --git a/common/listener.cpp b/common/listener.cpp index 828a917..28748e5 100644 --- a/common/listener.cpp +++ b/common/listener.cpp @@ -416,6 +416,10 @@ Sink::Resource *Listener::loadResource() if (!m_resource) { if (Sink::ResourceFactory *resourceFactory = Sink::ResourceFactory::load(m_resourceName)) { m_resource = resourceFactory->createResource(m_resourceInstanceIdentifier); + if (!m_resource) { + ErrorMsg() << "Failed to instantiate the resource " << m_resourceName; + m_resource = new Sink::Resource; + } Trace() << QString("Resource factory: %1").arg((qlonglong)resourceFactory); Trace() << QString("\tResource: %1").arg((qlonglong)m_resource); connect(m_resource, &Sink::Resource::revisionUpdated, this, &Listener::refreshRevision); diff --git a/examples/mailtransportresource/mailtransportresource.cpp b/examples/mailtransportresource/mailtransportresource.cpp index 6c0f0b3..3b8dfd0 100644 --- a/examples/mailtransportresource/mailtransportresource.cpp +++ b/examples/mailtransportresource/mailtransportresource.cpp @@ -29,6 +29,7 @@ MailtransportResourceFactory::MailtransportResourceFactory(QObject *parent) Sink::Resource *MailtransportResourceFactory::createResource(const QByteArray &instanceIdentifier) { + ErrorMsg() << "The mailtransport resource has no synchronizer process: " << instanceIdentifier; return nullptr; } -- cgit v1.2.3