diff options
author | Samuel Tardieu <sam@rfc1149.net> | 2015-03-16 10:42:26 +0100 |
---|---|---|
committer | Samuel Tardieu <sam@rfc1149.net> | 2015-03-16 10:42:26 +0100 |
commit | 1b6f0a05a2bd414d9adeeacf2f99f74a5f5711d9 (patch) | |
tree | a6c0ba63136f72bae574528f30d983e7181d6553 /main/src/cgeo | |
parent | f6fa10e9f58daf309c7c2e8ee85e241250a73d52 (diff) | |
parent | 115ead693d71025fac61d9390fed00fe150b96b1 (diff) | |
download | cgeo-1b6f0a05a2bd414d9adeeacf2f99f74a5f5711d9.zip cgeo-1b6f0a05a2bd414d9adeeacf2f99f74a5f5711d9.tar.gz cgeo-1b6f0a05a2bd414d9adeeacf2f99f74a5f5711d9.tar.bz2 |
Merge branch 'issue-4686' into upstream
Diffstat (limited to 'main/src/cgeo')
-rw-r--r-- | main/src/cgeo/geocaching/Geocache.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/main/src/cgeo/geocaching/Geocache.java b/main/src/cgeo/geocaching/Geocache.java index c2edf44..033196c 100644 --- a/main/src/cgeo/geocaching/Geocache.java +++ b/main/src/cgeo/geocaching/Geocache.java @@ -1207,7 +1207,9 @@ public class Geocache implements IWaypoint { waypoint.setGeocode(geocode); if (waypoint.getId() < 0) { // this is a new waypoint - assignUniquePrefix(waypoint); + if (StringUtils.isBlank(waypoint.getPrefix())) { + assignUniquePrefix(waypoint); + } waypoints.add(waypoint); if (waypoint.isFinalWithCoords()) { finalDefined = true; @@ -1242,13 +1244,14 @@ public class Geocache implements IWaypoint { } for (int i = OWN_WP_PREFIX_OFFSET; i < 100; i++) { - final String prefixCandidate = StringUtils.leftPad(String.valueOf(i), 2, '0'); + final String prefixCandidate = String.valueOf(i); if (!assignedPrefixes.contains(prefixCandidate)) { waypoint.setPrefix(prefixCandidate); - break; + return; } } + throw new IllegalStateException("too many waypoints, unable to assign unique prefix"); } public boolean hasWaypoints() { |