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