Как отсоединиться от LibreOffice, не убивая его? (LO 7.1, Java 8, Windows 10)

Автор PaulEfremoff, 8 апреля 2021, 17:14

0 Пользователи и 1 гость просматривают эту тему.

PaulEfremoff

Java 8 приложение запускает процесс с LibreOffice 7.1 (обычный, с графической оболочкой пользователя), подключается к нему UnoRuntime.queryInterface(XComponentContext.class, xUrlResolver.resolve("uno:socket,"+hostAndPort+";urp;StarOffice.ComponentContext")); делает свои дела (можно вообще ничего не делать, как тестовый вариант). Приходит время расстаться. Хотелось бы расстаться по-хорошему, не убивая LO. Но
1. Простое закрытие приложения оставляет висящие потоки AsynchronousFinalizer, MessageDispatcher.
2. xDesktop.terminate() убивает LO.
3. Попытка выйти на xBridgeFactory.getExistingBridges() даёт 0 массив.

Мне кажется, этой проблеме присвоен ранг feature, и она никогда не будет иметь решения.

P.S. История получила продолжение.
Сперва показалось, что предчувствия меня не обманули
https://bugs.documentfoundation.org/show_bug.cgi?id=127625
Resolution : NOTABUG.
И уже думал самому создавать Connection и Bridge.
https://www.programcreek.com/java-api-examples/?code=LibreOffice/noa-libre/noa-libre-master/src/ag/ion/bion/officelayer/internal/application/connection/RemoteOfficeConnection.java
Но внезапно выяснилось, что Oleg Shchelykalnov (кто закрыл этот bug) немного поглумился над простыми программистами.
Нужно брать так называемый локальный контекст = com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(null),
и тогда мы получим наш Bridge.


kompilainenn

Цитата: PaulEfremoff от  8 апреля 2021, 17:14Мне кажется, этой проблеме присвоен ранг feature, и она никогда не будет иметь решения.
пока вы ее не решите сами, путем написания кода, или не заплатите кому-то, кто ее решит для вас. да
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

PaulEfremoff


kompilainenn

Цитата: PaulEfremoff от 10 апреля 2021, 19:01Намекаете?
говорю прямо.

Цитата: PaulEfremoff от 10 апреля 2021, 19:01Сколько?
без понятия, я не программист. Свяжитесь с тем же Олегом и поговорите на тему
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

sokol92

Цитата: PaulEfremoff от  8 апреля 2021, 17:14Нужно брать так называемый локальный контекст = com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(null),

А в документации не так?
Владимир.