This nullpointer was logged:
{{ERROR [Server SR - 1202003350]: org.jivesoftware.openfire.IQRouter - Error processing answer of remote entity. Answer: <iq type="result" to="igniterealtime.org" from="jc@remote.domain/converse.js-36628933" id="29-287"><identity type="web" name="Converse.js" category="client"/><feature var="http://jabber.org/protocol/chatstates"/><feature var="http://jabber.org/protocol/disco#info"/><feature var="http://jabber.org/protocol/muc"/><feature var="http://jabber.org/protocol/rosterx"/><feature var="jabber:x:conference"/><feature var="jabber:x:oob"/><feature var="urn:xmpp:carbons:2"/><feature var="urn:xmpp:http:upload:0"/><feature var="urn:xmpp:mam:2"/><feature var="urn:xmpp:message-correct:0"/><feature var="urn:xmpp:spoiler:0"/><feature var="urn:xmpp:xbosh"/><feature var="vcard-temp"/></iq>
java.lang.NullPointerException
at org.jivesoftware.openfire.entitycaps.EntityCapabilitiesManager.getIdentitiesFrom(EntityCapabilitiesManager.java:337)
at org.jivesoftware.openfire.entitycaps.EntityCapabilitiesManager.generateVerHash(EntityCapabilitiesManager.java:236)
at org.jivesoftware.openfire.entitycaps.EntityCapabilitiesManager.isValid(EntityCapabilitiesManager.java:212)
at org.jivesoftware.openfire.entitycaps.EntityCapabilitiesManager.receivedAnswer(EntityCapabilitiesManager.java:287)
at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:304)
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:112)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:74)
at org.jivesoftware.openfire.net.SocketReader.processIQ(SocketReader.java:265)
at org.jivesoftware.openfire.net.ServerSocketReader.processIQ(ServerSocketReader.java:72)
at org.jivesoftware.openfire.net.SocketReader.process(SocketReader.java:234)
at org.jivesoftware.openfire.net.BlockingReadingMode.readStream(BlockingReadingMode.java:165)
at org.jivesoftware.openfire.net.BlockingReadingMode.run(BlockingReadingMode.java:72)
at org.jivesoftware.openfire.net.SocketReader.run(SocketReader.java:141)
at java.lang.Thread.run(Thread.java:748)
}}
Isn't that more of an Openfire issue? Even if the NPE is caused by Smack sending invalid XMPP stanzas (which we sure should fix if it is the case, but probably in a separate issue), the NPE happens within Openfire.
This stanza appears to be a result to an service discovery request, but it misses the child element:
<query xmlns='http://jabber.org/protocol/disco#info'>
This fixes the bug in Converse that caused the malformed stanza to be sent: https://github.com/conversejs/converse.js/commit/8de78dfaf5a64b815480663b37d9984d89e781f6
We should evaluate if we're properly handling a malformed stanza here.