Kaydet (Commit) ee433794 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Revert "Use XNotifyingDispatch to avoid races"

This reverts commit 21ea3725.  Looks like
neither XNotifyingDispatch nor XSynchronousDispatch can be used to avoid this
race; sigh.
üst 67a624f4
...@@ -36,13 +36,10 @@ import com.sun.star.accessibility.XAccessibleContext; ...@@ -36,13 +36,10 @@ import com.sun.star.accessibility.XAccessibleContext;
import com.sun.star.accessibility.XAccessibleStateSet; import com.sun.star.accessibility.XAccessibleStateSet;
import com.sun.star.awt.XWindow; import com.sun.star.awt.XWindow;
import com.sun.star.container.XIndexAccess; import com.sun.star.container.XIndexAccess;
import com.sun.star.frame.DispatchResultEvent;
import com.sun.star.frame.XController; import com.sun.star.frame.XController;
import com.sun.star.frame.XDispatch;
import com.sun.star.frame.XDispatchProvider; import com.sun.star.frame.XDispatchProvider;
import com.sun.star.frame.XDispatchResultListener;
import com.sun.star.frame.XModel; import com.sun.star.frame.XModel;
import com.sun.star.frame.XNotifyingDispatch;
import com.sun.star.lang.EventObject;
import com.sun.star.lang.XMultiServiceFactory; import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.sheet.XSpreadsheet; import com.sun.star.sheet.XSpreadsheet;
import com.sun.star.sheet.XSpreadsheetDocument; import com.sun.star.sheet.XSpreadsheetDocument;
...@@ -127,44 +124,18 @@ public class ScAccessiblePageHeaderArea extends TestCase { ...@@ -127,44 +124,18 @@ public class ScAccessiblePageHeaderArea extends TestCase {
aParseURL[0].Complete = ".uno:PrintPreview"; aParseURL[0].Complete = ".uno:PrintPreview";
xParser.parseStrict(aParseURL); xParser.parseStrict(aParseURL);
URL aURL = aParseURL[0]; URL aURL = aParseURL[0];
XNotifyingDispatch xDispatcher = UnoRuntime.queryInterface( XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
XNotifyingDispatch.class, xDispProv.queryDispatch(aURL, "", 0)); if(xDispatcher != null)
final int[] ok = new int[] { 0 }; xDispatcher.dispatch( aURL, null );
XDispatchResultListener listener = new XDispatchResultListener() {
public void disposing(EventObject Source) {
synchronized (ok) {
if (ok[0] == 0) {
ok[0] = 1;
}
ok.notifyAll();
}
}
public void dispatchFinished(DispatchResultEvent Result) {
synchronized (ok) {
ok[0] = 2;
ok.notifyAll();
}
}
};
xDispatcher.dispatchWithNotification(
aURL, null, listener);
synchronized (ok) {
while (ok[0] == 0) {
try {
ok.wait();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
if (ok[0] != 2) {
throw new RuntimeException("missing disptachFinished");
}
}
} catch (com.sun.star.uno.Exception e) { } catch (com.sun.star.uno.Exception e) {
log.println("Couldn't change mode"); log.println("Couldn't change mode");
throw new StatusException(Status.failed("Couldn't change mode")); throw new StatusException(Status.failed("Couldn't change mode"));
} }
try {
Thread.sleep(500);
} catch (InterruptedException ex) {}
AccessibilityTools at = new AccessibilityTools(); AccessibilityTools at = new AccessibilityTools();
XWindow xWindow = at.getCurrentContainerWindow( (XMultiServiceFactory) Param.getMSF(), aModel); XWindow xWindow = at.getCurrentContainerWindow( (XMultiServiceFactory) Param.getMSF(), aModel);
...@@ -242,4 +213,4 @@ public class ScAccessiblePageHeaderArea extends TestCase { ...@@ -242,4 +213,4 @@ public class ScAccessiblePageHeaderArea extends TestCase {
throw new StatusException( "Couldn't create document ", e ); throw new StatusException( "Couldn't create document ", e );
} }
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment