From 1b2521269e04c57dcb0e3ddc6b71a2bb63815e5d Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Fri, 27 Oct 2017 17:44:48 +0200 Subject: [PATCH] Make END_TAG parsing more NPE robust by calling String.equals() on the constant string and not on the return value of parser.getName(). Also perform the access to 'parser' on a different LOC than equals(). This should help debugging things like okt 25, 2017 2:02:54 PM org.jivesoftware.smack.AbstractXMPPConnection callConnectionClosedOnErrorListener WARNING: Connection XMPPTCPConnection[***@***/***] (0) closed with error java.lang.NullPointerException at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1194) at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:982) at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:998) at java.lang.Thread.run(Thread.java:745) which where recently reported on the forums. --- .../java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java index fcb0bac22..017af18a0 100644 --- a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java +++ b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java @@ -1191,7 +1191,8 @@ public class XMPPTCPConnection extends AbstractXMPPConnection { } break; case XmlPullParser.END_TAG: - if (parser.getName().equals("stream")) { + final String endTagName = parser.getName(); + if ("stream".equals(endTagName)) { if (!parser.getNamespace().equals("http://etherx.jabber.org/streams")) { LOGGER.warning(XMPPTCPConnection.this + " but different namespace " + parser.getNamespace()); break;