Openfire - an XMPP server, https://www.igniterealtime.org/projects/openfire/index.jsp - makes heavy use of Apache MINA for it's I/O.
One of the things it uses is the CompressionFilter - if clients enable the Compression XMPP option. We've recently updated to a newer version of MINA, and with no other code changes found that enabling compression (in XMPP clients) fails. I've narrowed it down to changes between MINA 2.0.13 (where it works) and 2.0.14 through to 2.1.0 (where it doesn't) - with Openfire throwing the following stack trace: java.nio.InvalidMarkException: null at java.nio.Buffer.reset(Buffer.java:306) ~[?:1.8.0_162] at org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:424) ~[mina-core-2.0.14.jar:?] at org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:940) ~[mina-core-2.0.14.jar:?] at org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:840) ~[mina-core-2.0.14.jar:?] at org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:767) ~[mina-core-2.0.14.jar:?] at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$700(AbstractPollingIoProcessor.java:68) ~[mina-core-2.0.14.jar:?] at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1125) ~[mina-core-2.0.14.jar:?] at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) ~[mina-core-2.0.14.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_162] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_162] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_162] Narrowing down even further the commit at https://gitbox.apache.org/repos/asf?p=mina.git;a=commit;h=44b58469f84ce991074cdc187b1c1f23b94cf445 seems to be the culprit. At this point, I'm drawing a blank. It's possible Openfire is using the CompressionFilter wrongly, which was being masked until the above commit. It's possible the above commit doesn't do what was intended, but I don't pretend to understand what it is/should be doing. It's possible I've got the wrong end of the stick, and it's something else between MINA 2.0.13 and 2.0.14 that changed that is causing the problem. But at this point, I don't know where to start, so would appreciate any pointers! Thanks, Greg
