BearND has uploaded a new change for review. https://gerrit.wikimedia.org/r/133643
Change subject: Fix PageTitleTests ...................................................................... Fix PageTitleTests Got an ArrayOutOfBoundsException when parsing "/wiki/Talk:India#". When we encountered a hash at the end of the string we tried to access text.split("#")[1]. Boom! Change-Id: Ib80ab7e770e05510a7a4eb63341ee0de32f2792d --- M wikipedia-it/src/main/java/org/wikipedia/test/PageTitleTests.java M wikipedia/src/main/java/org/wikipedia/PageTitle.java 2 files changed, 7 insertions(+), 6 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/43/133643/1 diff --git a/wikipedia-it/src/main/java/org/wikipedia/test/PageTitleTests.java b/wikipedia-it/src/main/java/org/wikipedia/test/PageTitleTests.java index e0611d9..c31ec46 100644 --- a/wikipedia-it/src/main/java/org/wikipedia/test/PageTitleTests.java +++ b/wikipedia-it/src/main/java/org/wikipedia/test/PageTitleTests.java @@ -45,7 +45,7 @@ assertEquals(enwiki.titleForInternalLink("/wiki/Talk:India#").getNamespace(), "Talk"); assertEquals(enwiki.titleForInternalLink("/wiki/Talk:India#").getText(), "India"); - assertEquals(enwiki.titleForInternalLink("/wiki/Talk:India#").getFragment(), ""); + assertEquals(enwiki.titleForInternalLink("/wiki/Talk:India#").getFragment(), null); assertEquals(enwiki.titleForInternalLink("/wiki/Talk:India#History").getNamespace(), "Talk"); assertEquals(enwiki.titleForInternalLink("/wiki/Talk:India#History").getText(), "India"); diff --git a/wikipedia/src/main/java/org/wikipedia/PageTitle.java b/wikipedia/src/main/java/org/wikipedia/PageTitle.java index c16b3fd..dde0f6b 100644 --- a/wikipedia/src/main/java/org/wikipedia/PageTitle.java +++ b/wikipedia/src/main/java/org/wikipedia/PageTitle.java @@ -38,20 +38,21 @@ // If empty, this refers to the main page. text = MainPageNameData.valueFor(site.getLanguage()); } - String[] parts; - if (text.indexOf("#") != -1) { + + String[] fragParts = text.split("#"); + text = fragParts[0]; + if (fragParts.length > 1) { try { - this.fragment = URLDecoder.decode(text.split("#")[1], "utf-8"); - parts = text.split("#")[0].split(":"); + this.fragment = URLDecoder.decode(fragParts[1], "utf-8"); } catch (UnsupportedEncodingException e) { // STUPID STUPID JAVA throw new RuntimeException(e); } } else { this.fragment = null; - parts = text.split(":"); } + String[] parts = text.split(":"); if (parts.length > 1) { this.namespace = parts[0]; this.text = TextUtils.join(":", Arrays.copyOfRange(parts, 1, parts.length)); -- To view, visit https://gerrit.wikimedia.org/r/133643 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib80ab7e770e05510a7a4eb63341ee0de32f2792d Gerrit-PatchSet: 1 Gerrit-Project: apps/android/wikipedia Gerrit-Branch: master Gerrit-Owner: BearND <bsitzm...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits