Używam API OpenOffice z mojego programu Java do obsługi Dokumentów dla mnie Czasami (raz na każde 100 000 wywołań) metoda utylizacji dokumentu nie powraca, obciążenie procesora pozostaje na poziomie 100%, ale nic nie wydaje się wydarzy.Java: Metoda nie powraca. (XComponent.dispose
Jak należy postępować/kod poprawnie w tej sytuacji?
Moje obecne podejście jest czekać na zrzucać do osiągnięcia sukcesu przez dwie sekundy. Jeśli nie próbuję rozwiązać OpenOffice poprzez odpowiednie API Jeśli to również się nie powiedzie (tak jak się spodziewam), zabiję proces soffice, dzwoniąc pod numer
XDesktop xDesk = (...) // achive desktop
xDesk.terminate();
Runtime.getRuntime().exec("pkill soffice"); // "taskkill /IM soffice" on windows
a następnie zadzwonić
disposeThread.stop();
do wątku, który początkowo próbuje pozbyć się XComponent. Teraz Java API mówi, że nie powinno się używać Thread.stop()
(i istnieją do tego odpowiednie argumenty), więc zastanawiam się, czy istnieją lepsze rozwiązania, które zrobiłem.
Jest to jedno z tych pytań, w zależności od tego, w jaki sposób jest sformułowane, może być odpowiednie dla programistów, ale mam wrażenie, że jest to technika i implementacja wystarczająco specyficzna, że prawdopodobnie powinna być na StackOverflow. –
@maple_shaft Zastanowiłem się nad tym, ale zdecydowałem przeciwko niemu. Gdyby chodziło o to, jak poradzić sobie z moim konkretnym problemem, umieściłbym go tam, ale znalazłem już działające rozwiązanie mojego problemu, a teraz pytam, czy istnieje lepsze pojęcie, a nie konkretne rozwiązanie. Ale tak, to zależy od tego, jak jest sformułowane. –
@RobZ To naprawdę nie jest pytanie specyficzne dla pakietu Office. Moja sytuacja w otwartym biurze jest tutaj tylko przykładem. –