[
https://issues.apache.org/jira/browse/FTPSERVER-461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14218691#comment-14218691
]
Ulrich Kohlhase commented on FTPSERVER-461:
-------------------------------------------
Hi Emmanuel,
As far as I can tell by looking at the Apache FtpServer v1.0.6 sources, the
FtpHandlerAdapter class implements IoHandler and does not extend
IoHandlerAdapter. Hence the exceptions (a lot) thrown when for example just
closing the client FTP app (in my case Transmit for testing) without
disconnecting from the FTP server. I've also noticed the same exceptions when
trying to download multiple larger files at a time, and the FTP client app
complained that the FTP command channel was closed:
ERROR org.apache.ftpserver.impl.DefaultFtpHandler - Exception caught, closing
session
WARN org.apache.ftpserver.listener.nio.FtpLoggingFilter - EXCEPTION :
AbstractMethodError:
org.apache.ftpserver.listener.nio.FtpHandlerAdapter.inputClosed(Lorg/apache/mina/core/session/IoSession;)V
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.inputClosed(DefaultIoFilterChain.java:834)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.inputClosed(DefaultIoFilterChain.java:938)
at
org.apache.mina.core.filterchain.IoFilterAdapter.inputClosed(IoFilterAdapter.java:137)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.inputClosed(DefaultIoFilterChain.java:938)
at
org.apache.mina.core.filterchain.IoFilterAdapter.inputClosed(IoFilterAdapter.java:137)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.inputClosed(DefaultIoFilterChain.java:938)
at
org.apache.mina.core.filterchain.IoFilterAdapter.inputClosed(IoFilterAdapter.java:137)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.inputClosed(DefaultIoFilterChain.java:938)
at
org.apache.mina.core.filterchain.IoFilterAdapter.inputClosed(IoFilterAdapter.java:137)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.inputClosed(DefaultIoFilterChain.java:938)
at
org.apache.mina.core.filterchain.IoFilterAdapter.inputClosed(IoFilterAdapter.java:137)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.inputClosed(DefaultIoFilterChain.java:938)
at
org.apache.mina.core.filterchain.IoFilterAdapter.inputClosed(IoFilterAdapter.java:137)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireInputClosed(DefaultIoFilterChain.java:604)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:729)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:668)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:657)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:67)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1121)
at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
... skipped 1 stack elements
ERROR org.apache.ftpserver.impl.DefaultFtpHandler - Exception caught, closing
session
WARN org.apache.ftpserver.listener.nio.FtpLoggingFilter - EXCEPTION :
AbstractMethodError:
org.apache.ftpserver.listener.nio.FtpHandlerAdapter.inputClosed(Lorg/apache/mina/core/session/IoSession;)V
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.inputClosed(DefaultIoFilterChain.java:834)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.inputClosed(DefaultIoFilterChain.java:938)
at
org.apache.mina.core.filterchain.IoFilterAdapter.inputClosed(IoFilterAdapter.java:137)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.inputClosed(DefaultIoFilterChain.java:938)
at
org.apache.mina.core.filterchain.IoFilterAdapter.inputClosed(IoFilterAdapter.java:137)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.inputClosed(DefaultIoFilterChain.java:938)
at
org.apache.mina.core.filterchain.IoFilterAdapter.inputClosed(IoFilterAdapter.java:137)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.inputClosed(DefaultIoFilterChain.java:938)
at
org.apache.mina.core.filterchain.IoFilterAdapter.inputClosed(IoFilterAdapter.java:137)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.inputClosed(DefaultIoFilterChain.java:938)
at
org.apache.mina.core.filterchain.IoFilterAdapter.inputClosed(IoFilterAdapter.java:137)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.inputClosed(DefaultIoFilterChain.java:938)
at
org.apache.mina.core.filterchain.IoFilterAdapter.inputClosed(IoFilterAdapter.java:137)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireInputClosed(DefaultIoFilterChain.java:604)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:729)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:668)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:657)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:67)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1121)
at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
... skipped 1 stack elements
ERROR org.apache.ftpserver.impl.DefaultFtpHandler - Exception caught, closing
session
INFO org.apache.ftpserver.listener.nio.FtpLoggingFilter - CLOSED
> FtpServer implement inputClosed() or extend IoHandlerAdapter for MINA 2.0.8
> or higher
> -------------------------------------------------------------------------------------
>
> Key: FTPSERVER-461
> URL: https://issues.apache.org/jira/browse/FTPSERVER-461
> Project: FtpServer
> Issue Type: Improvement
> Components: Core
> Affects Versions: 1.0.6
> Reporter: Ulrich Kohlhase
>
> According to the Apache MINA release notes for v2.0.8:
> "There is one change that might break the build for those switching from MINA
> 2.0.7 to MINA 2.0.8 : the IoHandler interface now has a method called
> inputClosed(), so either you have to implement this method if you are
> directly implementing the IoHandler interface, or better, you can extends
> IoHandlerAdapter, which implements a placeholder for this method."
> ERROR org.apache.ftpserver.impl.DefaultFtpHandler - Exception caught,
> closing session
> WARN org.apache.ftpserver.listener.nio.FtpLoggingFilter - EXCEPTION :
> AbstractMethodError:
> org.apache.ftpserver.listener.nio.FtpHandlerAdapter.inputClosed(Lorg/apache/mina/core/session/IoSession;)V
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.inputClosed(DefaultIoFilterChain.java:834)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextInputClosed(DefaultIoFilterChain.java:611)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.inputClosed(DefaultIoFilterChain.java:938)
> at
> org.apache.mina.core.filterchain.IoFilterAdapter.inputClosed(IoFilterAdapter.java:137)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)