Psi chat client cannot connect to Openfire 4.5.0 Beta

I upgraded my Openfire 4.4.4 to Openfire 4.5.0 Beta. After this my Psi chat client cannot connect to the Openfire server anymore, it was connecting fine with Openfire 4.4.4

On the server I see a client session for this Psi client which has status Detached, never seen this state before.

The error log of the server shows the following NullPointerException during processing the result of a disco#info iq:

2020.01.08 08:47:25 org.jivesoftware.openfire.nio.ConnectionHandler - Closing connection due to error while processing message: <iq xmlns="jabber:client" type="result" id="916-72" to="my-openfire.xxx.xxx">
<query xmlns="http://jabber.org/protocol/disco#info" node="">
<identity name="Psi" type="pc" category="client"/>
<feature var="http://jabber.org/protocol/geoloc+notify"/>
<feature var="http://jabber.org/protocol/mood"/>
<feature var="urn:xmpp:ping"/>
<feature var="http://jabber.org/protocol/commands"/>
<feature var="http://jabber.org/protocol/geoloc"/>
<feature var="urn:xmpp:time"/>
<feature var="http://jabber.org/protocol/si"/>
<feature var="jabber:x:data"/>
<feature var="http://jabber.org/protocol/xhtml-im"/>
<feature var="http://jabber.org/protocol/chatstates"/>
<feature var="http://jabber.org/protocol/mood+notify"/>
<feature var="http://jabber.org/protocol/activity"/>
<feature var="urn:xmpp:avatar:data"/>
<feature var="http://jabber.org/protocol/tune"/>
<feature var="urn:xmpp:avatar:metadata+notify"/>
<feature var="urn:xmpp:message-correct:0"/>
<feature var="http://jabber.org/protocol/rosterx"/>
<feature var="urn:xmpp:avatar:metadata"/>
<feature var="http://jabber.org/protocol/activity+notify"/>
<feature var="http://jabber.org/protocol/bytestreams"/>
<feature var="http://jabber.org/protocol/si/profile/file-transfer"/>
<feature var="http://jabber.org/protocol/muc"/>
<feature var="urn:xmpp:receipts"/>
<feature var="urn:xmpp:bob"/>
<feature var="http://jabber.org/protocol/ibb"/>
<feature var="http://jabber.org/protocol/disco#info"/>
<feature var="jabber:iq:last"/>
<feature var="http://jabber.org/protocol/tune+notify"/>
<x xmlns="jabber:x:data" type="result">
<field var="FORM_TYPE" type="hidden">
<value>urn:xmpp:dataforms:softwareinfo</value>
</field>
<field var="software" type="text-single">
<value>Psi</value>
</field>
<field var="software_version" type="text-single">
<value>1.3</value>
</field>
<field var="os" type="text-single">
<value>Windows</value>
</field>
<field var="os_version" type="text-single">
<value>7</value>
</field>
</x>
</query>
</iq>
java.lang.NullPointerException: null
	at org.jivesoftware.openfire.disco.IQDiscoInfoHandler.setSoftwareVersionDataFormFromDiscoInfo(IQDiscoInfoHandler.java:561) ~[xmppserver-4.5.0-beta.jar:4.5.0-beta]
	at org.jivesoftware.openfire.net.StanzaHandler.getIQ(StanzaHandler.java:344) ~[xmppserver-4.5.0-beta.jar:4.5.0-beta]
	at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:290) ~[xmppserver-4.5.0-beta.jar:4.5.0-beta]
	at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:203) ~[xmppserver-4.5.0-beta.jar:4.5.0-beta]
	at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:183) [xmppserver-4.5.0-beta.jar:4.5.0-beta]
	at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:1015) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) [mina-core-2.1.3.jar:?]
	at org.jivesoftware.openfire.plugin.RawPrintFilter.messageReceived(RawPrintFilter.java:57) [xmldebugger-lib.jar!/:?]
	at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
	at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:413) [mina-core-2.1.3.jar:?]
	at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:257) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:106) [mina-core-2.1.3.jar:?]
	at org.apache.mina.core.session.IoEvent.run(IoEvent.java:89) [mina-core-2.1.3.jar:?]
	at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:766) [mina-core-2.1.3.jar:?]
	at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:758) [mina-core-2.1.3.jar:?]
	at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:697) [mina-core-2.1.3.jar:?]
	at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]

This was confirmed against igniterealtime server using psi 14 portable.
I will create a ticket shortly…

https://issues.igniterealtime.org/browse/OF-1958

this has been fixed and is included in the release of 4.5.0 that dropped yesterday!

1 Like