Skip to content

Commit

Permalink
ArrayIndexOutOfBoundException in equals fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
oboehm committed Feb 28, 2019
1 parent 1ac517f commit 2451578
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 13 deletions.
5 changes: 5 additions & 0 deletions doc/release-notes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@



== 2.2.2 (SNAPSHOT9

* _fixed_: ArrayIndexOutOfBoundException im Adressvergleich behoben.


== 2.2.1 (28-Feb-2019)

* Adressvergleich kommt jetzt mit mehr Sonderfällen klar
Expand Down
16 changes: 9 additions & 7 deletions src/main/java/de/jfachwert/post/Adresse.java
Original file line number Diff line number Diff line change
Expand Up @@ -358,13 +358,15 @@ private boolean equalsHausnummer(Adresse other) {
}

private static String[] normalizeHausnummer(String nr) {
String vonBis = nr.replaceAll("[^\\d\\-]", " ");
if (vonBis.contains("-")) {
String[] splitted = vonBis.split("-");
return new String[]{splitted[0].trim(), splitted[1].trim()};
} else {
String trimmed = vonBis.trim();
return new String[]{trimmed, trimmed};
String vonBis = nr.replaceAll("[^\\d\\-]", "");
String[] splitted = vonBis.split("-");
switch (splitted.length) {
case 0:
return new String[]{vonBis, vonBis};
case 1:
return new String[]{splitted[0], splitted[0]};
default:
return splitted;
}
}

Expand Down
24 changes: 18 additions & 6 deletions src/test/java/de/jfachwert/post/AdresseTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,11 @@ public void testEqualsHausnummerBis() {
compareHausnummer("7-9", "9");
}

@Test
public void testEqualsHausnummerBisNix() {
compareHausnummer("9-", "9-");
}

private void compareHausnummer(String n1, String n2) {
Adresse duckstr = Adresse.of(entenhausen, "Duckstr.", n1);
Adresse einsa = Adresse.of(entenhausen, "Duckstr.", n2);
Expand All @@ -220,16 +225,23 @@ private void compareHausnummer(String n1, String n2) {

@Test
public void testDifferentHausnummern() {
Adresse eins = Adresse.of(entenhausen, "Duckstr.", 1);
Adresse zwei = Adresse.of(entenhausen, "Duckstr.", 2);
assertNotEquals(eins, zwei);
compareDifferentHausnummer("1", "2");
}

@Test
public void testDifferentHausnummernBisNix() {
compareDifferentHausnummer("1-", "2-");
}

@Test
public void testEqualsHausnummerNaN() {
Adresse eins = Adresse.of(entenhausen, "Chaussee", "5");
Adresse zwei = Adresse.of(entenhausen, "Chaussee", "8-b");
assertNotEquals(eins, zwei);
compareDifferentHausnummer("5", "8-b");
}

private void compareDifferentHausnummer(String n1, String n2) {
Adresse a = Adresse.of(entenhausen, "Duckstr.", n1);
Adresse b = Adresse.of(entenhausen, "Duckstr.", n2);
assertNotEquals(a, b);
}

@Test
Expand Down

0 comments on commit 2451578

Please sign in to comment.