diff options
Diffstat (limited to 'desktop/source/deployment/registry/component/dp_component.cxx')
-rw-r--r-- | desktop/source/deployment/registry/component/dp_component.cxx | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/desktop/source/deployment/registry/component/dp_component.cxx b/desktop/source/deployment/registry/component/dp_component.cxx index 650a7585d929..0035b67d8ef7 100644 --- a/desktop/source/deployment/registry/component/dp_component.cxx +++ b/desktop/source/deployment/registry/component/dp_component.cxx @@ -1779,17 +1779,23 @@ void BackendImpl::ComponentsPackageImpl::processPackage_( if (doRegisterPackage) { ComponentBackendDb::Data data; data.javaTypeLibrary = false; - std::vector< css::uno::Reference< css::uno::XInterface > > factories; - css::uno::Reference< css::uno::XComponentContext > context( - that->getObject(url), css::uno::UNO_QUERY); - if (!context.is()) { - context.set( - that->insertObject( - url, - raise_uno_process( - that->getComponentContext(), abortChannel)), - css::uno::UNO_QUERY_THROW); + css::uno::Reference< css::uno::XComponentContext > context; + if (startup) { + context = that->getComponentContext(); + } else { + context.set(that->getObject(url), css::uno::UNO_QUERY); + if (!context.is()) { + context.set( + that->insertObject( + url, + raise_uno_process( + that->getComponentContext(), abortChannel)), + css::uno::UNO_QUERY_THROW); + } } + + std::vector< css::uno::Reference< css::uno::XInterface > > factories; + css::uno::Reference< css::registry::XSimpleRegistry > registry( css::uno::Reference< css::lang::XMultiComponentFactory >( that->getComponentContext()->getServiceManager(), |