Apache OpenOffice (AOO) Bugzilla – Full Text Issue Listing |
Summary: | Freeze on drag'n'drop in document opened via loadComponentFromUrl() | ||||||
---|---|---|---|---|---|---|---|
Product: | General | Reporter: | mux2005 <mux2005> | ||||
Component: | code | Assignee: | joerg.skottke | ||||
Status: | CLOSED FIXED | QA Contact: | issues@framework <issues> | ||||
Severity: | Trivial | ||||||
Priority: | P2 | CC: | baumux, chris_mux, chrlutz, hennes.rohling, issues, kai.sommerfeld, lohmaier, stephan.bergmann.secondary | ||||
Version: | OOo 2.3 | Keywords: | oooqa | ||||
Target Milestone: | OOo 2.3.1 | ||||||
Hardware: | All | ||||||
OS: | Windows, all | ||||||
Issue Type: | DEFECT | Latest Confirmation in: | --- | ||||
Developer Difficulty: | --- | ||||||
Attachments: |
|
Description
mux2005
2007-10-23 11:21:43 UTC
Created attachment 49088 [details]
Run macro from Beanshell edit window, then d'n'd in Untitled1 => Freeze
@ jsk: Something for you or is something for the API guys? confirming the issue. Exactly as described. Currently evaluating - i'm lacking a Windows machine currently (need to wait for the machines to complete testing cycle) so i gave it a quick look on Linux where i wasn't even able to start the bsh Editor. What happens here is that the window created by the beanshell script does not work as a drop target which i believe is more likely VCL related -> to pl. Note that this is no regression - tested this back to PU 7 but it is well worth to get fixed for 2.4, i set the prio to 2 because the office frequently ends up in a frozen state (not always) pl->jl: tra mentioned you as the new owner of the windows clipboard ? This would seem to be a deadlock in the service. I doubt that the document isn't registered as drop target. jl->hro: Please take care of this. . Accepted. Changed target to 2.3.1. We must not only create a seperate STA thread for a requested call to RegisterDragDrop if the calling thread is an MTA but also if the calling thread and the thread that created the Window are not identical. Usually the calling thread is the main thread, the same in which all windows are created and is STA or the threads differ and the calling thread is an MTA. Here we have a new scenario where the request for RegisterDragDrop is called from the thread that runs the BeanShell and this thread is STA or uninitialized and differs from the windows thread. ->Fixed. Just to make sure, does your fix work for any Java thread, i.e. also threads from inside a Java component (not Beanshell)? The defect had nothing to do with Java itself. It was just the Apartment Model the Thread used when a call to RegisterDragDrop was requested. Actually when the thread was from a MTA the call was dispatched in a different thread that attached the input queue to the thread that created the window. When it was from a STA there was the assumption that RegisterDragDrop worked (as the Documentation says) but this assumption was wrong. A dispatch to a new thread with attached input queue also has to be done if the threads just differ. Now this case is correctly handled. So the fix covers all scenarios where a thread from a STA (or unitialized apartment) tries to register drag and drop for a window that was not created in the same thread...or to give a short answer: Yes ;-) CCed Seen good on Windows / en_US / Full installation. Waiting for other builds. set verified. closing |