Ticket #21550: 21550.patch

File 21550.patch, 1.8 KB (added by taylor.smock, 4 years ago)

Fix NPE, add non-regression test

  • src/org/openstreetmap/josm/gui/tagging/presets/items/PresetListEntry.java

    diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/items/PresetListEntry.java b/src/org/openstreetmap/josm/gui/tagging/presets/items/PresetListEntry.java
    index ef5dc6e66b..17b2d0815e 100644
    a b public class PresetListEntry implements Comparable<PresetListEntry> {  
    188188     * @return see above
    189189     */
    190190    public int getCount() {
    191         Integer count = cms == null ? null : cms.usage.map.get(value);
     191        Integer count = cms == null || cms.usage == null ? null : cms.usage.map.get(value);
    192192        return count == null ? 0 : count;
    193193    }
    194194
  • test/unit/org/openstreetmap/josm/gui/tagging/presets/items/PresetListEntryTest.java

    diff --git a/test/unit/org/openstreetmap/josm/gui/tagging/presets/items/PresetListEntryTest.java b/test/unit/org/openstreetmap/josm/gui/tagging/presets/items/PresetListEntryTest.java
    index 1c2827878c..0555ba6ca1 100644
    a b  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.gui.tagging.presets.items;
    33
     4import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
    45import static org.junit.jupiter.api.Assertions.assertTrue;
    56
    67import org.junit.jupiter.api.BeforeAll;
    class PresetListEntryTest {  
    2728    void testTicket12416() {
    2829        assertTrue(new PresetListEntry("", null).getListDisplay(200).contains(" "));
    2930    }
     31
     32    /**
     33     * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/21550">#21550</a>
     34     */
     35    @Test
     36    void testTicket21550() {
     37        final PresetListEntry entry = new PresetListEntry("", new Combo());
     38        assertDoesNotThrow(entry::getCount);
     39    }
    3040}