Projects tigase _server server-core Issues #1270
NPE in VCardXMPPProcessorAbstract (#1270)
Closed
wojciech.kapcia@tigase.net opened 3 years ago
[2021-08-09 08:07:01:413] [SEVERE  ] [ vcard-xep-0292-proc-0 ] WorkerThread.run()               : tigase.server.xmppsession.SessionManager$ProcessorWorkerThread,(vcard-xep-0292-proc-0) Exception during packet processing: Packet=from=ws2s@ip-172-31-2-168.us-west-2.compute.internal/192.168.192.3_5290_172.31.23.36_53076, to=sess-man@ip-172-31-2-168.us-west-2.compute.internal, DATA=<iq to="sev…@tigase.org" type="set" from="sev…@tigase.org/2048393987-tigase-35" id="7HzPlWsp61EYMEbW13zNveNe" xmlns="jabber:client"><vcard xmlns="urn:ietf:params:xml:ns:vcard-4.0"><n><given>…</given><surname>…</surname><additional/></n><adr/><email/><fn><text>…</text></fn><org/><role><text>…</text></role><tel/></vcard></iq>, SIZE=377, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=AUTH, TYPE=set, STABLE_ID=0cea90fc-5ef7-49b9-9f2f-e8cf3af86a9b, connection=XMPPResourceConnection=[user_jid=sev…@tigase.org/2048393987-tigase-35, packets=149, connectioId=ws2s@ip-172-31-2-168.us-west-2.compute.internal/192.168.192.3_5290_172.31.23.36_53076, domain=tigase.org, authState=AUTHORIZED, isAnon=false, isTmp=false, parentSession hash=965230652, parentSession liveTime=26752]
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because the return value of "tigase.xml.Element.getChildren()" is null
	at tigase.xmpp.impl.VCardXMPPProcessorAbstract.lambda$static$32(VCardXMPPProcessorAbstract.java:372)
	at tigase.xml.Element.forEachChild(Element.java:403)
	at tigase.xmpp.impl.VCardXMPPProcessorAbstract.lambda$static$33(VCardXMPPProcessorAbstract.java:303)
	at tigase.xmpp.impl.VCardXMPPProcessorAbstract.setVCard(VCardXMPPProcessorAbstract.java:588)
	at tigase.xmpp.impl.VCard4.processFromUserToServerPacket(VCard4.java:117)
	at tigase.xmpp.XMPPProcessorAbstract.processFromUserPacket(XMPPProcessorAbstract.java:191)
	at tigase.xmpp.XMPPProcessorAbstract.process(XMPPProcessorAbstract.java:112)
	at tigase.server.xmppsession.SessionManager$ProcessorWorkerThread.process(SessionManager.java:2656)
	at tigase.util.processing.WorkerThread.run(WorkerThread.java:67)
wojciech.kapcia@tigase.net commented 3 years ago

Complete payload:

[2021-08-09 08:07:01:413] [SEVERE  ] [ vcard-xep-0292-proc-0 ] WorkerThread.run()               : tigase.server.xmppsession.SessionManager$ProcessorWorkerThread,(vcard-xep-0292-proc-0) Exception during packet processing: Packet=from=ws2s@ip-172-31-2-168.us-west-2.compute.internal/192.168.192.3_5290_172.31.23.36_53076, to=sess-man@ip-172-31-2-168.us-west-2.compute.internal, DATA=<iq to="sevan.evans@tigase.org" type="set" from="sevan.evans@tigase.org/2048393987-tigase-35" id="7HzPlWsp61EYMEbW13zNveNe" xmlns="jabber:client"><vcard xmlns="urn:ietf:params:xml:ns:vcard-4.0"><n><given>Sevan</given><surname>Evans</surname><additional/></n><adr/><email/><fn><text>Sevan Evans</text></fn><org/><role><text>Application Architect</text></role><tel/></vcard></iq>, SIZE=377, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=AUTH, TYPE=set, STABLE_ID=0cea90fc-5ef7-49b9-9f2f-e8cf3af86a9b, connection=XMPPResourceConnection=[user_jid=sevan.evans@tigase.org/2048393987-tigase-35, packets=149, connectioId=ws2s@ip-172-31-2-168.us-west-2.compute.internal/192.168.192.3_5290_172.31.23.36_53076, domain=tigase.org, authState=AUTHORIZED, isAnon=false, isTmp=false, parentSession hash=965230652, parentSession liveTime=26752]
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because the return value of "tigase.xml.Element.getChildren()" is null
	at tigase.xmpp.impl.VCardXMPPProcessorAbstract.lambda$static$32(VCardXMPPProcessorAbstract.java:372)
	at tigase.xml.Element.forEachChild(Element.java:403)
	at tigase.xmpp.impl.VCardXMPPProcessorAbstract.lambda$static$33(VCardXMPPProcessorAbstract.java:303)
	at tigase.xmpp.impl.VCardXMPPProcessorAbstract.setVCard(VCardXMPPProcessorAbstract.java:588)
	at tigase.xmpp.impl.VCard4.processFromUserToServerPacket(VCard4.java:117)
	at tigase.xmpp.XMPPProcessorAbstract.processFromUserPacket(XMPPProcessorAbstract.java:191)
	at tigase.xmpp.XMPPProcessorAbstract.process(XMPPProcessorAbstract.java:112)
	at tigase.server.xmppsession.SessionManager$ProcessorWorkerThread.process(SessionManager.java:2656)
	at tigase.util.processing.WorkerThread.run(WorkerThread.java:67)
Andrzej Wójcik (Tigase) commented 3 years ago

Fix prepared in the new branch. This change will fix NPE and "drop" nonnormative elements which should not be converted during conversion.

I've decided not to throw an exception as this would change API in stable release and could have an impact on our existing clients (which may be sending incorrect vcards - it would make it impossible to update vcards for them).

wojciech.kapcia@tigase.net commented 3 years ago

Looks OK. Merged.

issue 1 of 1
Type
Bug
Priority
Normal
Assignee
Version
tigase-server-8.2.0
Issue Votes (0)
Watchers (0)
Reference
tigase/_server/server-core#1270
Please wait...
Page is in error, reload to recover