From 68d55da28dd5208863edc673fc5c8f8e6bc01de1 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Tue, 7 Mar 2023 00:06:43 -0500 Subject: [PATCH] Sometimes the span isn't actually there? So don't crash --- .../eu/siacs/conversations/ui/util/MyLinkify.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/util/MyLinkify.java b/src/main/java/eu/siacs/conversations/ui/util/MyLinkify.java index 4b74022485798924521ea33d0bd9801a901a0cf0..479d04917f661b3a11885eff6d0211b8a0cc46e1 100644 --- a/src/main/java/eu/siacs/conversations/ui/util/MyLinkify.java +++ b/src/main/java/eu/siacs/conversations/ui/util/MyLinkify.java @@ -39,6 +39,7 @@ import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; +import java.lang.IndexOutOfBoundsException; import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -139,12 +140,12 @@ public class MyLinkify { for (final URLSpan urlspan : body.getSpans(0, body.length() - 1, URLSpan.class)) { Uri uri = Uri.parse(urlspan.getURL()); if ("xmpp".equals(uri.getScheme())) { - if (!body.subSequence(body.getSpanStart(urlspan), body.getSpanEnd(urlspan)).toString().startsWith("xmpp:")) { - // Already customized - continue; - } - try { + if (!body.subSequence(body.getSpanStart(urlspan), body.getSpanEnd(urlspan)).toString().startsWith("xmpp:")) { + // Already customized + continue; + } + XmppUri xmppUri = new XmppUri(uri); Jid jid = xmppUri.getJid(); String display = xmppUri.toString(); @@ -162,7 +163,7 @@ public class MyLinkify { body.getSpanEnd(urlspan), display ); - } catch (final IllegalArgumentException e) { /* bad JID */ } + } catch (final IllegalArgumentException | IndexOutOfBoundsException e) { /* bad JID or span gone */ } } } }