Issue 75226 - Extensin Manager: startExecuteModal not properly implemented.
Summary: Extensin Manager: startExecuteModal not properly implemented.
Status: ACCEPTED
Alias: None
Product: General
Classification: Code
Component: code (show other issues)
Version: OOo 2.2
Hardware: All All
: P3 Trivial with 1 vote (vote)
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-03-08 09:24 UTC by joachim.lingner
Modified: 2013-08-07 15:31 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
basic code which installe an extension (587 bytes, text/plain)
2007-03-08 09:33 UTC, joachim.lingner
no flags Details

Note You need to log in before you can comment on or make changes to this issue.
Description joachim.lingner 2007-03-08 09:24:46 UTC
The service com.sun.star.deployment.ui.PackageManagerDialog implements
com.sun.star.ui.dialogs.XAsynchronousExecutableDialog. To start the dialog one
has to call XAsynchronousExecutableDialog.startExecuteModal. This call must not
block and return immediately. The function takes an XDialogClosedListener which
is called by the implementation when the dialog has closed.

The current implementation of startExecuteModal blocks in the case when the
service needs to start VCL itself, for example, because it was used from
unopkg.exe and no office is runnging. Then the call to Application::Execute
prevents the return of startExecuteModal. When the dialog is closed and
Application::Execute returns then the XDialogClosedListener is called correctly.

When the service is created in an office process then Application::Execute is
not called and immedialted XDialogClosedListener.dialogClosed is called. This is
wrong, because the dialog is still open.

So there are actually two issues here. First, startExecuteModal may block and
second dialogClosed may be called too early.

To fix this one could move the initialization of VCL out of the service into
unopkg or consequently use the AWT.
Comment 1 joachim.lingner 2007-03-08 09:33:48 UTC
Created attachment 43596 [details]
basic code which installe an extension
Comment 2 joachim.lingner 2007-03-08 09:36:58 UTC
The basic code demonstrates that the listener is called too early. The path to
the extension needs to be adapted.
Comment 3 joachim.lingner 2007-05-10 14:41:22 UTC
Retargeted to 2.4
Comment 4 joachim.lingner 2007-10-15 16:15:04 UTC
Retargeted to 3.0.
Comment 5 joachim.lingner 2008-05-30 15:28:28 UTC
.