Jack send file transfer request to Marry. And After Marry accept, jack auto disconnent from server. The warn log in openfire logs is as follow:
2007.12.25 08:32:58 Closing session due to exception: (SOCKET, R: /110.154.12.111:20078, L: /110.154.12.32:5222, S: 0.0.0.0/0.0.0.0:5222)
org.apache.mina.filter.codec.ProtocolDecoderException: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 (Hexdump: empty)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:164)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648)
at org.apache.mina.filter.CompressionFilter.messageReceived(CompressionFilter.java :161)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648)
at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :239)
at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:283)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.AbstractStringBuilder.charAt(Unknown Source)
at java.lang.StringBuilder.charAt(Unknown Source)
at org.jivesoftware.openfire.nio.XMLLightweightParser.read(XMLLightweightParser.ja va:159)
at org.jivesoftware.openfire.nio.XMPPDecoder.doDecode(XMPPDecoder.java:31)
at org.apache.mina.filter.codec.CumulativeProtocolDecoder.decode(CumulativeProtoco lDecoder.java:133)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:157)
… 13 more
2007.12.25 08:32:58 Cache: Roster – object with key jack is too large to fit in cache. Size is 589598
2007.12.25 08:32:58 Cache: Roster – object with key jack is too large to fit in cache. Size is 589598
2007.12.25 08:32:58 Cache: Roster – object with key jack is too large to fit in cache. Size is 589598
2007.12.25 08:32:59 Cache: Roster – object with key jack is too large to fit in cache. Size is 589598
2007.12.25 08:32:59 Cache: Roster – object with key jack is too large to fit in cache. Size is 589598
2007.12.25 08:32:59 Cache: Roster – object with key jack is too large to fit in cache. Size is 589598
2007.12.25 08:32:59 Cache: Roster – object with key jack is too large to fit in cache. Size is 589598
2007.12.25 08:32:59 Cache: Roster – object with key jack is too large to fit in cache. Size is 589598
2007.12.25 08:32:59 Cache: Roster – object with key jack is too large to fit in cache. Size is 589598
2007.12.25 08:32:59 Cache: Roster – object with key jack is too large to fit in cache. Size is 589598
2007.12.25 08:33:13 Error or result packet could not be delivered
<iq id=“agsXMPPjack_17” from=“Marry@server/agsXMPP” to="@server/agsXMPP" type=“result”>
<si xmlns=“http://jabber.org/protocol/si”>
<feature xmlns=“http://jabber.org/protocol/feature-neg”>
<x xmlns=“jabber:x:data” type=“submit”>
<field var=“stream-method”>
<value>http://jabber.org/protocol/bytestreams
<value>http://jabber.org/protocol/ibb
</field>
</x>
</feature>
</si>
</iq>
And the error log is as follow:
2007.12.25 08:33:13 [org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHand ler.java:134)
] Closing connection due to error while processing message: <iq id=“agsXMPPjack_17” from=“jack@server/agsXMPP” to=“Marry@server/agsXMPP” type=“error”><error code=“403” /></iq>
java.lang.IllegalArgumentException: IQ must be of type ‘set’ or ‘get’. Original IQ: <iq id=“agsXMPPjack_17” from=“server/31506ca8” to=“Marry@server/agsXMPP” type=“error”><error code=“403”/></iq>
at org.xmpp.packet.IQ.createResultIQ(IQ.java:355)
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:86)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:67)
at org.jivesoftware.openfire.net.StanzaHandler.processIQ(StanzaHandler.java:303)
at org.jivesoftware.openfire.net.ClientStanzaHandler.processIQ(ClientStanzaHandler .java:78)
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:268)
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:167)
at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:132)
at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:570)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648)
at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:58)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:173)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648)
at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :239)
at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:283)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
at java.lang.Thread.run(Unknown Source)
Why Does this happen? How can I resolve it?