Como obter o documento aberto usando o UNO?

Estou escrevendo um complemento que abre uma caixa de diálogo e preciso acessar o documento de texto aberto no momento, mas não sei como obtê-lo.

Estou usando o plug-in OpenOffice no NetBeans e iniciei em um projeto de complemento. Ele criou uma classe que me fornece uma instância XComponentContext, mas não sei como usá-la para obter uma instância OfficeDocument do documento atual.

Estou pesquisando no Google há algum tempo e não consigo encontrar nenhum exemplo que use um documento existente aberto. Todos eles partem de um novo documento ou de um documento carregado primeiro, para que tenham um URL para ele.

Eu tentei com base no wiki do OpenOffice (https://wiki.openoffice.org/wiki/API/Samples/Java/Office/DocumentHandling) e é isso que eu criei:

private OfficeDocument getDocument() {
  if (this.officeDocument == null) {
    try {
        // this causes the error
        XMultiComponentFactory xMultiComponentFactory = this.xComponentContext.getServiceManager();

        Object oDesktop = xMultiComponentFactory.createInstanceWithContext("com.sun.star.frame.Desktop", this.xComponentContext);
        XComponentLoader xComponentLoader = UnoRuntime.queryInterface(XComponentLoader.class, oDesktop);

        String url = "private:factory/swriter";
        String targetFrameName = "_self";
        int searchFlags = FrameSearchFlag.SELF;
        PropertyValue[] propertyValues = new PropertyValue[1];
        propertyValues[0] = new PropertyValue();
        propertyValues[0].Name = "Hidden";
        propertyValues[0].Value = Boolean.TRUE;

        XComponent xComponent = xComponentLoader.loadComponentFromURL(url, targetFrameName, searchFlags, propertyValues);

        XModel xModel = UnoRuntime.queryInterface(XModel.class, xComponent);
        this.officeDocument = new OfficeDocument(xModel);
    } catch (com.sun.star.uno.Exception ex) {
        throw new RuntimeException(ex);
    }
  }
  return this.officeDocument;
}

Mas há algo estranho acontecendo. Apenas tendo esse método na minha classe,mesmo que nunca tenha sido chamado em lugar nenhum, causa um erro ao adicionar o complemento.

(com.sun.star.depoyment.DeploymentDescription){{ Message = "Error during activation of: VaphAddOn.jar", Context = (com.sun.star.uno.XInterface) @6ce03e0 }, Cause = (any) {(com.sun.star.registry.CannotRegisterImplementationException){{ Message = "", Context = (com.sun.star.uno.XInterface) @0 }}}}

Parece que esta linha causa o erro:

XMultiComponentFactory xMultiComponentFactory = this.xComponentContext.getServiceManager();

Não tenho ideia de como preceder.

Publiquei esta pergunta noFórum do OpenOffice mas não tenho resposta lá. Estou tentando a minha sorte aqui agora.