TeamAmaze / AmazeFileManager

Material design file manager for Android
https://teamamaze.xyz
GNU General Public License v3.0
5.08k stars 1.53k forks source link

`CoderMalfunctionError` on `CharsetEncoder#encode` #4153

Open amaze-issue-automation[bot] opened 1 month ago

amaze-issue-automation[bot] commented 1 month ago

Issue explanation (write below this line)

Exception

java.nio.charset.CoderMalfunctionError: java.lang.IllegalArgumentException: Bad position 30/24
 at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:624)
 at org.apache.mina.core.buffer.AbstractIoBuffer.putString(AbstractIoBuffer.java:1811)
 at org.apache.ftpserver.listener.nio.FtpResponseEncoder.encode(FtpResponseEncoder.java:49)
 at org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:299)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:629)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:48)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:957)
 at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:84)
 at org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:135)
 at org.apache.mina.filter.util.CommonEventFilter.filterWrite(CommonEventFilter.java:80)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:629)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:48)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:957)
 at org.apache.mina.core.filterchain.IoFilterAdapter.filterWrite(IoFilterAdapter.java:123)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:629)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:48)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:957)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.filterWrite(DefaultIoFilterChain.java:881)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:629)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireFilterWrite(DefaultIoFilterChain.java:622)
 at org.apache.mina.core.session.AbstractIoSession.write(AbstractIoSession.java:574)
 at org.apache.mina.core.session.AbstractIoSession.write(AbstractIoSession.java:519)
 at org.apache.ftpserver.impl.FtpIoSession.write(FtpIoSession.java:530)
 at org.apache.ftpserver.command.impl.OPTS_UTF8.execute(OPTS_UTF8.java:54)
 at org.apache.ftpserver.command.impl.OPTS.execute(OPTS.java:84)
 at org.apache.ftpserver.impl.DefaultFtpHandler.messageReceived(DefaultFtpHandler.java:211)
 at org.apache.ftpserver.listener.nio.FtpHandlerAdapter.messageReceived(FtpHandlerAdapter.java:62)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:858)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:947)
 at org.apache.ftpserver.listener.nio.FtpLoggingFilter.messageReceived(FtpLoggingFilter.java:85)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542)
 at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48)

Reporter: chexmo

VishnuSanal commented 3 weeks ago

@OP what action lead to this crash? the stacktrace doesn't point to any code in Amaze.

@TranceLove can you take a look? this may point to SevenZFile L#2127 (StandardCharsets.UTF_16LE.encode), but that is Charset#encode & not CharsetEncoder#encode. this may also point to somewhere in FTPService, since that is where we use org.apache.ftpserver.* extensively. 🤔