SmackParsingException: text-single fields can have at most one value, this one had 2

Hello,

I’m new to this so please excuse my ignorance. I managed to install Openfire last night and it was working fine with my spring-boot application. Then this morning I tried the same spring-boot application that I am developing but I get this error:

2023-06-03 12:05:54.765  WARN 51562 --- [ErrorListener()] o.j.smack.AbstractXMPPConnection         : Connection XMPPTCPConnection[petar@xps/9r0asb2f0c] (1) closed with error

java.io.IOException: org.jivesoftware.smack.parsing.SmackParsingException: text-single fields can have at most one value, this one had 2
	at org.jivesoftware.smack.parsing.ExceptionThrowingCallback.handleUnparsableStanza(ExceptionThrowingCallback.java:36) ~[smack-core-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.parsing.ExceptionThrowingCallbackWithHint.handleUnparsableStanza(ExceptionThrowingCallbackWithHint.java:42) ~[smack-core-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.AbstractXMPPConnection.parseAndProcessStanza(AbstractXMPPConnection.java:1458) ~[smack-core-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.tcp.XMPPTCPConnection.access$1000(XMPPTCPConnection.java:131) ~[smack-tcp-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:972) ~[smack-tcp-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$700(XMPPTCPConnection.java:916) ~[smack-tcp-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:939) ~[smack-tcp-4.4.6.jar:4.4.6]
	at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
Caused by: org.jivesoftware.smack.parsing.SmackParsingException: text-single fields can have at most one value, this one had 2
	at org.jivesoftware.smackx.xdata.provider.DataFormProvider.ensureAtMostSingleValue(DataFormProvider.java:450) ~[smack-extensions-4.4.6.jar:4.4.6]
	at org.jivesoftware.smackx.xdata.provider.DataFormProvider.parseSingleKindFormField(DataFormProvider.java:348) ~[smack-extensions-4.4.6.jar:4.4.6]
	at org.jivesoftware.smackx.xdata.provider.DataFormProvider.parseField(DataFormProvider.java:306) ~[smack-extensions-4.4.6.jar:4.4.6]
	at org.jivesoftware.smackx.xdata.provider.DataFormProvider.parseField(DataFormProvider.java:144) ~[smack-extensions-4.4.6.jar:4.4.6]
	at org.jivesoftware.smackx.xdata.provider.DataFormProvider.parse(DataFormProvider.java:92) ~[smack-extensions-4.4.6.jar:4.4.6]
	at org.jivesoftware.smackx.xdata.provider.DataFormProvider.parse(DataFormProvider.java:61) ~[smack-extensions-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.provider.Provider.parse(Provider.java:53) ~[smack-core-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.util.PacketParserUtils.parseExtensionElement(PacketParserUtils.java:840) ~[smack-core-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.util.PacketParserUtils.addExtensionElement(PacketParserUtils.java:916) ~[smack-core-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.util.PacketParserUtils.addExtensionElement(PacketParserUtils.java:911) ~[smack-core-4.4.6.jar:4.4.6]
	at org.jivesoftware.smackx.disco.provider.DiscoverInfoProvider.parse(DiscoverInfoProvider.java:72) ~[smack-extensions-4.4.6.jar:4.4.6]
	at org.jivesoftware.smackx.disco.provider.DiscoverInfoProvider.parse(DiscoverInfoProvider.java:39) ~[smack-extensions-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.provider.IqProvider.parse(IqProvider.java:40) ~[smack-core-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.util.PacketParserUtils.parseIQ(PacketParserUtils.java:555) ~[smack-core-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.util.PacketParserUtils.parseStanza(PacketParserUtils.java:113) ~[smack-core-4.4.6.jar:4.4.6]
	at org.jivesoftware.smack.AbstractXMPPConnection.parseAndProcessStanza(AbstractXMPPConnection.java:1450) ~[smack-core-4.4.6.jar:4.4.6]
	... 5 common frames omitted

I started debugging it and I see that it is trying to validate the response has only 1 field, but instead it has two.
The field name is admin-addresses and the values are: xmpp:admin@xps and mailto:para-------@gmail.com (it is my personal email that I used during the setup of openfire, I have obfuscated it because I don’t want to paste it publicly).

Why is this happening? Where can I change the values so that it doesn’t throw the error?

I upgraded to latest 4.7.5 and it was resolved.

1 Like

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.