summaryrefslogtreecommitdiff
path: root/qadevOOo
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2013-10-07 10:18:03 +0200
committerStephan Bergmann <sbergman@redhat.com>2013-10-07 10:22:16 +0200
commitb5dd2b4218f966e177d880bcc29fa5fba3bfe1c1 (patch)
tree9b56192b4b9685fd5ba707f925ff4865d383c1bc /qadevOOo
parent77df4f8943c8e7bf0a308197b032a841fe3e365a (diff)
Also cope with intermittend DisposedExceptions
...while waiting for the .uno:PrintPreview request to be processed, see 5b5c52a3a4d048bba8c18dfb06ffca25c670d099 "Try make this more robust in slow environments." (However, to avoid an endless loop in case DisposedExceptions are caused by a crash of soffice.bin, cap the loop at 10 sec.) Change-Id: I13518eea46deb68731604ef08461bad5bb5f7cdf
Diffstat (limited to 'qadevOOo')
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java29
1 files changed, 19 insertions, 10 deletions
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java b/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java
index 97764dd9fd8e..f1f7b0796feb 100644
--- a/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java
@@ -39,6 +39,7 @@ import com.sun.star.frame.XController;
import com.sun.star.frame.XDispatch;
import com.sun.star.frame.XDispatchProvider;
import com.sun.star.frame.XModel;
+import com.sun.star.lang.DisposedException;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.sheet.XHeaderFooterContent;
import com.sun.star.sheet.XSpreadsheet;
@@ -138,22 +139,30 @@ public class ScAccessiblePageHeader extends TestCase {
AccessibilityTools at = new AccessibilityTools();
XInterface oObj = null;
- for (;;) {
+ for (int i = 0;; ++i) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
- XWindow xWindow = AccessibilityTools.getCurrentWindow( (XMultiServiceFactory) Param.getMSF(), aModel);
- XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
- if (xRoot != null) {
- oObj = AccessibilityTools.getAccessibleObjectForRole
- (xRoot, AccessibleRole.HEADER, "");
- if (oObj != null) {
- log.println("ImplementationName " + utils.getImplName(oObj));
- AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
- break;
+ try {
+ XWindow xWindow = AccessibilityTools.getCurrentWindow( (XMultiServiceFactory) Param.getMSF(), aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+ if (xRoot != null) {
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.HEADER, "");
+ if (oObj != null) {
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ break;
+ }
}
+ } catch (DisposedException e) {
+ log.println("Ignoring DisposedException");
+ }
+ if (i == 20) { // give up after 10 sec
+ throw new RuntimeException(
+ "Couldn't get AccessibleRoot.HEADER object");
}
log.println("No HEADER found yet, retrying");
}