From e19cdeaf7ddbcf39da47d9685d8e79e775dde7f4 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Thu, 12 Jan 2017 22:09:27 +0100 Subject: 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 --- sfx2/qa/complex/sfx2/UndoManager.java | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'sfx2/qa/complex') diff --git a/sfx2/qa/complex/sfx2/UndoManager.java b/sfx2/qa/complex/sfx2/UndoManager.java index ad82ca4c9db8..a8e6bcdba861 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; -- cgit