Ticket #20557: 20557.patch

File 20557.patch, 1.3 KB (added by taylor.smock, 3 years ago)

Add null checks

  • src/org/openstreetmap/gui/jmapviewer/checkBoxTree/CheckBoxTree.java

    diff --git a/src/org/openstreetmap/gui/jmapviewer/checkBoxTree/CheckBoxTree.java b/src/org/openstreetmap/gui/jmapviewer/checkBoxTree/CheckBoxTree.java
    index a8f32d5..261a15e 100644
    a b package org.openstreetmap.gui.jmapviewer.checkBoxTree;  
    33
    44import java.awt.BorderLayout;
    55import java.awt.event.MouseAdapter;
     6import java.util.Objects;
    67
    78import javax.swing.JFrame;
    89import javax.swing.JScrollPane;
    public class CheckBoxTree extends JTree {  
    150151    private static void setChildrens(DefaultMutableTreeNode node, Boolean value) {
    151152        for (int i = 0; i < node.getChildCount(); i++) {
    152153            DefaultMutableTreeNode childNode = node(node.getChildAt(i));
    153             if (!data(childNode).isSelected().equals(data(node).isSelected())) {
     154            // Fix NPE from #20557
     155            final CheckBoxNodeData childData = data(childNode);
     156            final CheckBoxNodeData nodeData = data(node);
     157            if (childData != null && nodeData != null &&
     158                    !Objects.equals(childData.isSelected(), nodeData.isSelected())) {
    154159                data(childNode).setSelected(data(node).isSelected());
    155160                setChildrens(childNode, value);
    156161            }