[Libreoffice-commits] core.git: Branch 'libreoffice-5-3' - sfx2/qa

Michael Stahl mstahl at redhat.com
Tue Jan 17 00:05:22 UTC 2017


 sfx2/qa/complex/sfx2/UndoManager.java |    5 +++++
 1 file changed, 5 insertions(+)

New commits:
commit f5811d12bb7b11f20f159332a73db8ff5e4f9a8b
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Jan 12 22:09:27 2017 +0100

    sfx2: fix race in JunitTest UndoManager.checkBrokenScripts()
    
    1) checkBrokenScripts(complex.sfx2.UndoManager)
    java.lang.NullPointerException
        at complex.sfx2.UndoManager.impl_clickButton(UndoManager.java:432)
        at complex.sfx2.UndoManager.checkBrokenScripts(UndoManager.java:188)
    
    impl_clickButton() gets the wrong accessible object and throws.
    
    The .uno:SwitchControlDesignMode is dispatched async, so make sure
    it's processesed before trying to click the button.
    
    See UnoControl::getAccessibleContext() "in design mode, use a fallback".
    
    This was running in "rr record --chaos".
    
    Change-Id: Iee9f25c2fff56d32e6b579b5d44ee6df9870fd8b
    (cherry picked from commit e19cdeaf7ddbcf39da47d9685d8e79e775dde7f4)
    Reviewed-on: https://gerrit.libreoffice.org/33171
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>

diff --git a/sfx2/qa/complex/sfx2/UndoManager.java b/sfx2/qa/complex/sfx2/UndoManager.java
index ad82ca4..a8e6bcd 100644
--- a/sfx2/qa/complex/sfx2/UndoManager.java
+++ b/sfx2/qa/complex/sfx2/UndoManager.java
@@ -24,6 +24,7 @@ import com.sun.star.awt.Point;
 import com.sun.star.awt.Size;
 import com.sun.star.awt.XControl;
 import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XToolkitExperimental;
 import com.sun.star.beans.NamedValue;
 import com.sun.star.beans.XPropertySet;
 import com.sun.star.container.NoSuchElementException;
@@ -182,6 +183,10 @@ public class UndoManager
 
         // switch the doc's view to form alive mode (so the button will actually work)
         m_currentDocument.getCurrentView().dispatch( ".uno:SwitchControlDesignMode" );
+        XToolkitExperimental xToolkit = UnoRuntime.queryInterface(
+                XToolkitExperimental.class,
+                getORB().createInstance("com.sun.star.awt.Toolkit"));
+        xToolkit.processEventsToIdle();
 
         // click the button
         m_callbackCalled = false;


More information about the Libreoffice-commits mailing list