Skip to content

Commit ed5b661

Browse files
author
LeonYang5114
committed
Resolve racing condition
Racing condition occurs when a command is programmatically invoked immediately after a display is created, using swing ui. The racing condition is resovled in a similar way to the LegacyImageDisplayViewer. See scijava/scijava-ui-swing#18
1 parent a54b96f commit ed5b661

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

src/main/java/net/imagej/ui/swing/viewer/image/AbstractSwingImageDisplayViewer.java

+5
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import net.imagej.ui.viewer.image.AbstractImageDisplayViewer;
3636

3737
import org.scijava.display.Display;
38+
import org.scijava.display.DisplayService;
3839
import org.scijava.event.EventHandler;
3940
import org.scijava.event.EventService;
4041
import org.scijava.options.event.OptionsEvent;
@@ -77,6 +78,10 @@ public JHotDrawImageCanvas getCanvas() {
7778
@Override
7879
public void view(final DisplayWindow w, final Display<?> d) {
7980
super.view(w, d);
81+
82+
// NB: resolve the racing condition when other consumer are looking up the
83+
// active display
84+
getContext().service(DisplayService.class).setActiveDisplay(getDisplay());
8085

8186
dispatcher = new AWTInputEventDispatcher(getDisplay(), eventService);
8287

0 commit comments

Comments
 (0)