Hi, I am testing Openfire and Smack with large Pubsub nodes.
I have about 10,000 pubsub nodes in openfire server, and publishing message (some of messages are large messages, such as base64-encoded jpeg message like 100KB) with high speed to all nodes.
When we subscribe all nodes and get message from nodes, we got error message like.
java.lang.StringIndexOutOfBoundsException: String index out of range: -39
at java.lang.String.(String.java:196)
at org.xmlpull.mxp1.MXParser.getText(MXParser.java:794)
at org.jivesoftware.smack.util.PacketParserUtils.parseContentDepthWithRoundtrip(Pa cketParserUtils.java:501)
at org.jivesoftware.smack.util.PacketParserUtils.parseContentDepth(PacketParserUti ls.java:430)
at org.jivesoftware.smack.util.PacketParserUtils.parseContentDepth(PacketParserUti ls.java:402)
at org.jivesoftware.smack.AbstractXMPPConnection.parseAndProcessStanza(AbstractXMP PConnection.java:958)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.access$500(XMPPTCPConnection.java: 140)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPC onnection.java:997)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPCon nection.java:952)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnecti on.java:967)
at java.lang.Thread.run(Thread.java:745)
I read MXParser source code, and it seems that MXParser cannot parse well start tag “<” and end tag “>”.
I also investigate received message by printing out message buffer which MXParser parses.
It seems that several received messages are sometimes mixing - within single message, another message is getting in.
I’m very happy if anyone can give me any hints to solve this error…
Thank you.