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