public void messageReceived(final FtpIoSession session, final FtpRequest request)
      throws Exception {
    SocketAddress sa = session.getServiceAddress();
    log.debug("message received: " + sa.toString());
    if (actionListener != null) {
      actionListener.onAction(
          new Runnable() {

            public void run() {
              try {
                wrapped.messageReceived(session, request);
              } catch (Exception ex) {
                throw new RuntimeException(ex);
              }
            }
          });
    } else {
      wrapped.messageReceived(session, request);
    }
  }
 public void messageSent(FtpIoSession ioSession, FtpReply ftpReply) throws Exception {
   wrapped.messageSent(ioSession, ftpReply);
 }
 public void exceptionCaught(FtpIoSession arg0, Throwable arg1) throws Exception {
   wrapped.exceptionCaught(arg0, arg1);
 }
 public void sessionIdle(FtpIoSession arg0, IdleStatus arg1) throws Exception {
   wrapped.sessionIdle(arg0, arg1);
 }
 public void sessionClosed(FtpIoSession arg0) throws Exception {
   wrapped.sessionClosed(arg0);
 }
 public void init(FtpServerContext arg0, Listener arg1) {
   wrapped.init(arg0, arg1);
 }