jenkins-bot has submitted this change and it was merged.

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(-)

Approvals:
  Yuvipanda: Looks good to me, approved
  jenkins-bot: Verified



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: merged
Gerrit-Change-Id: Ib80ab7e770e05510a7a4eb63341ee0de32f2792d
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: BearND <bsitzm...@wikimedia.org>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>
Gerrit-Reviewer: Dbrant <dbr...@wikimedia.org>
Gerrit-Reviewer: Yuvipanda <yuvipa...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to