Hello, I am currently using openfire-4.1.3 and encountered an XML parsing issue that caused the server and client to disconnect. The simplified error message is as follows(The actual XML message, after formatting, exceeds 2000 lines.), It appears that two XML messages from the client got mixed up, where a portion of the second message with uid-aa7a48d8-0000000a was inserted into the first message with uid-aa7a48d8-00000009, resulting in XML formatting issues. I would like to know if openfire-4.1.3 properly handles multithreading issues when the client sends messages concurrently.
2023.07.17 10:43:49 org.jivesoftware.openfire.nio.ConnectionHandler - Closing connection due to error while processing message:
<iq id='uid-aa7a48d8-00000009' type='set' from='agent#81b25226-2c91-48b1-9b71-f5e4cd2d5703@38.66.33.226/SuperredAgent'
xmlns='jabber:client'>
<audit
xmlns='com:superred:audit'>
<guid>81B25226-2C91-48B1-9B71-F5E4CD2D5703</guid>
<datalist>
<data>
<time>2023-7-17 09:18:57</time>
<program>lucene</program>
<target>xxx.doc</target>
<eventUser>User</eventUser>
<result>S</result>
<level>6</level>
<event>a
</even
<iq id='uid-aa7a48d8-0000000a' type='get' from='agent#81b25226-2c91-48b1-9b71-f5e4cd2d5703@38.66.33.226/SuperredAgent'
xmlns='jabber:client'>
<reg
xmlns='com:superred:agent:register'>
<guid>81B25226-2C91-48B1-9B71-F5E4CD2D5703</guid>
</reg>
</iq>t>
<behaviour>NORMAL</behaviour>
<audit>lucene</audit>
</data>
</datalist>
</audit>
</iq>
org.xmlpull.v1.XmlPullParserException: end tag name </even> must match start tag name <event> from line 1 (position: TEXT seen ...</level><event>a</even<... @1:56497)
at org.xmlpull.mxp1.MXParser.parseEndTag(MXParser.java:1689)
at org.jivesoftware.openfire.net.MXParser.nextImpl(MXParser.java:113)
at org.xmlpull.mxp1.MXParser.nextToken(MXParser.java:1100)
at org.dom4j.io.XMPPPacketReader.parseDocument(XMPPPacketReader.java:316)
at org.dom4j.io.XMPPPacketReader.read(XMPPPacketReader.java:153)
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:162)
at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:181)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:690)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765)
at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:109)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765)
at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:407)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:236)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765)
at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:74)
at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63)
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:769)
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:761)
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:703)
at java.lang.Thread.run(Unknown Source)