Hi,

I have this code

    public FtpletResult onUploadStart(FtpSession session, FtpRequest request) 
throws FtpException, IOException {
        ByteArrayOutputStream bos = null;

        try {
            bos = new ByteArrayOutputStream();
            DataConnectionFactory dcf = session.getDataConnection(); 
            DataConnection dc = dcf.openConnection();
            dc.transferFromClient(session, bos);
            
            session.write(new DefaultFtpReply(150, "Data transfer complete."));
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            session.getDataConnection().closeDataConnection();
            if (bos != null) bos.close();
        }
        
        return FtpletResult.SKIP;        
    }

and the line  dc.transferFromClient(session, bos) is throwing this exception

java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:168)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
        at java.io.FilterInputStream.read(FilterInputStream.java:90)
        at 
org.apache.ftpserver.impl.IODataConnection.transfer(IODataConnection.java:238)
        at 
org.apache.ftpserver.impl.IODataConnection.transferFromClient(IODataConnection.java:131)
        at 
com.cfm.common.metamodel.impl.es.CFMFTPLet.onUploadStart(CFMFTPLet.java:116)
        at 
com.cfm.common.metamodel.impl.es.CFMFTPLet.beforeCommand(CFMFTPLet.java:43)
        at 
org.apache.ftpserver.ftpletcontainer.impl.DefaultFtpletContainer.beforeCommand(DefaultFtpletContainer.java:163)
        at 
org.apache.ftpserver.impl.DefaultFtpHandler.messageReceived(DefaultFtpHandler.java:156)
        at 
org.apache.ftpserver.listener.nio.FtpHandlerAdapter.messageReceived(FtpHandlerAdapter.java:65)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:722)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:802)
        at 
org.apache.ftpserver.listener.nio.FtpLoggingFilter.messageReceived(FtpLoggingFilter.java:90)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:802)
        at 
org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:59)
        at 
org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:137)
        at 
org.apache.mina.filter.util.CommonEventFilter.messageReceived(CommonEventFilter.java:70)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:802)
        at 
org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:392)
        at 
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:228)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:802)
        at 
org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:59)
        at org.apache.mina.core.session.IoEvent.run(IoEvent.java:64)
        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:552)
        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:544)
        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:488)
        at java.lang.Thread.run(Thread.java:595)

At first it pauses for a while and then throws the exception above.

I am trying to execute the put <filename> from the client.

Any ideas what is causing this?

Thanks

Reply via email to