Error during transfer file

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?

Try disabling the compression feature from the server. Let us know if that solves the problem.

Regards,

– Gato

Dear Gato,

I have the same problem. It works when I disabled Client Compression feature. Could you explain me this?

Best regards,