[Libreoffice-commits] core.git: sfx2/qa
Michael Stahl
mstahl at redhat.com
Thu Jan 12 21:14:56 UTC 2017
sfx2/qa/complex/sfx2/UndoManager.java | 5 +++++
1 file changed, 5 insertions(+)
New commits:
commit e19cdeaf7ddbcf39da47d9685d8e79e775dde7f4
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
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