Ticket #19865: fix_ioobe_remove_image.patch

File fix_ioobe_remove_image.patch, 1.7 KB (added by francois2, 6 years ago)

Fix removeImages

  • src/org/openstreetmap/josm/data/ImageData.java

     
    266266        for (ImageEntry img: getSelectedImages()) {
    267267            data.remove(img);
    268268        }
    269         if (selectedImagesIndex.get(0) == data.size()) {
     269        if (selectedImagesIndex.get(0) >= data.size()) {
    270270            setSelectedImageIndex(data.size() - 1);
    271271        } else {
    272272            setSelectedImageIndex(selectedImagesIndex.get(0), true);
  • test/unit/org/openstreetmap/josm/data/ImageDataTest.java

     
    195195    }
    196196
    197197    @Test
     198    public void testRemoveSelectedImagesWithRemainingImages() {
     199        List<ImageEntry> list = getOneImage();
     200        list.add(new ImageEntry());
     201        list.add(new ImageEntry());
     202
     203        ImageData data = new ImageData(list);
     204        data.selectLastImage();
     205        data.addImageToSelection(list.get(1));
     206        data.removeSelectedImages();
     207        assertEquals(1, data.getImages().size());
     208        assertEquals(1, data.getSelectedImages().size());
     209    }
     210
     211    @Test
    198212    public void testSelectImageAfterRemove() {
    199213        List<ImageEntry> list = getOneImage();
    200214        list.add(new ImageEntry());
     
    346360        assertEquals(0, data.getSelectedImages().size());
    347361        data.selectFirstImage();
    348362        assertEquals(1, data.getSelectedImages().size());
    349 
    350363    }
    351364
    352365    @Test