Skip to content

Commit e222903

Browse files
committed
DisplayViewer: add defensive null checks
Avoids exceptions like: java.lang.NullPointerException at org.scijava.ui.viewer.DisplayViewer.onDisplayDeletedEvent(DisplayViewer.java:105) at org.scijava.ui.DefaultUIService.onEvent(DefaultUIService.java:393)
1 parent 81b75fb commit e222903

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/main/java/org/scijava/ui/viewer/DisplayViewer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ public interface DisplayViewer<T> extends RichPlugin, Disposable {
9393

9494
/** Synchronizes the user interface appearance with the display model. */
9595
default void onDisplayUpdatedEvent(final DisplayUpdatedEvent e) {
96+
if (getPanel() == null) return;
9697
if (e.getLevel() == DisplayUpdateLevel.REBUILD) {
9798
getPanel().redoLayout();
9899
}
@@ -102,6 +103,7 @@ default void onDisplayUpdatedEvent(final DisplayUpdatedEvent e) {
102103
/** Removes the user interface when the display is deleted. */
103104
@SuppressWarnings("unused")
104105
default void onDisplayDeletedEvent(final DisplayDeletedEvent e) {
106+
if (getPanel() == null || getPanel().getWindow() == null) return;
105107
getPanel().getWindow().close();
106108
}
107109

@@ -112,6 +114,7 @@ default void onDisplayDeletedEvent(final DisplayDeletedEvent e) {
112114
*/
113115
@SuppressWarnings("unused")
114116
default void onDisplayActivatedEvent(final DisplayActivatedEvent e) {
117+
if (getPanel() == null || getPanel().getWindow() == null) return;
115118
getPanel().getWindow().requestFocus();
116119
}
117120

0 commit comments

Comments
 (0)