Ignore:
Timestamp:
2019-11-30T18:25:05+01:00 (5 years ago)
Author:
donvip
Message:

fix #josm18370 - AIOOBE at IndoorLevel.isPartOfWorkingLevel

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/indoorhelper/src/model/IndoorLevel.java

    r34734 r35240  
    1919package model;
    2020
     21import java.util.regex.Matcher;
     22import java.util.regex.Pattern;
     23
    2124import org.openstreetmap.josm.data.osm.Tag;
    2225
     
    3033
    3134public class IndoorLevel {
     35
     36    private static final Pattern RANGE = Pattern.compile("(-?[0-9]+)-(-?[0-9]+)");
    3237
    3338    private Tag levelNumberTag;
     
    119124        for (String val : vals.split(";")) {
    120125            int firstVal, secVal;
     126            Matcher m = RANGE.matcher(val);
    121127
    122128            //Extract values
    123             if (val.indexOf("-") == 0) {
    124                 firstVal = Integer.parseInt(val.split("-", 2)[1].split("-", 2)[0])*-1;
    125                 secVal = Integer.parseInt(val.split("-", 2)[1].split("-", 2)[1]);
    126             } else if (val.contains("-")) {
    127                 firstVal = Integer.parseInt(val.split("-")[0]);
    128                 secVal = Integer.parseInt(val.split("-")[1]);
     129            if (m.matches()) {
     130                firstVal = Integer.parseInt(m.group(1));
     131                secVal = Integer.parseInt(m.group(2));
    129132            } else {
    130133                firstVal = Integer.parseInt(val);
Note: See TracChangeset for help on using the changeset viewer.