Hola Rubén, Are you sure your description of the problem is correct?
[ INFO] 2013-01-25 12:05:07,599 [xxx] [127.0.0.1] RECEIVED: STOR xxxxxxxxxxxxxx [ WARN] 2013-01-25 12:05:28,477 [xxx] [127.0.0.1] Exception during data transfer, closing data connection socket According to you, this error occurs when you cancel the upload . But you can see that the warn message is written 11 seconds after the STOR command is received. There's a slight chance that the error is caused by a bug in the way FileZilla closes the SSL connection - I've noticed this before in some other FTP clients like WinSCP. Java is very picky in this topic and a malformed shutdown message will cause an Exception. 2013/1/28 Rubén Páez <ruben.p...@itac.com.co> > > > Hi! > > > I have configured an standalone ftp server (Apache FTPServer) using this > config file: > > > > > START ---------- ---------- ---------- ---------- ---------- ---------- > ---------- > > <?xml version="1.0" encoding="UTF-8"?> > <server xmlns="http://mina.apache.org/ftpserver/spring/v1" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation=" > http://mina.apache.org/ftpserver/spring/v1 > http://mina.apache.org/ftpserver/ftpserver-1.0.xsd > " > id="myServer"> > <listeners> > <nio-listener name="default" port="2122"> > <ssl> > <keystore file="./res/ftpserver.jks" password="password" /> > </ssl> > </nio-listener> > <nio-listener name="sdefault" port="21991" implicit-ssl="true"> > <ssl> > <keystore file="./res/ftpserver.jks" password="password" /> > </ssl> > </nio-listener> > </listeners> > <file-user-manager file="./res/conf/users.properties" /> > </server> > END ---------- ---------- ---------- ---------- ---------- ---------- > ---------- > > > > > I use FileZilla Client to log in (either using FTPES or FTPS, I've tried > both, I accept the certificate FileZilla displays to me) and try to upload > a file. Everything seems ok, but the upload always stalls (around 300 kB). > The log of FileZilla Client is: > > > > > START ---------- ---------- ---------- ---------- ---------- ---------- > ---------- > > Status: Resolving address of localhost > Status: Connecting to 127.0.0.1:2122... > Status: Connection established, waiting for welcome message... > Response: 220 Service ready for new user. > Command: AUTH TLS > Response: 234 Command AUTH okay; starting TLS connection. > Status: Initializing TLS... > Status: Verifying certificate... > Command: USER xxx > Status: TLS/SSL connection established. > Response: 331 User name okay, need password for xxx > Command: PASS ***** > Response: 230 User logged in, proceed. > Command: OPTS UTF8 ON > Response: 200 Command OPTS okay. > Command: PBSZ 0 > Response: 200 Command PBSZ okay. > Command: PROT P > Response: 200 Command PROT okay. > Command: OPTS MLST size;modify;type; > Response: 200 Command OPTS okay. > Status: Connected > Status: Starting upload of xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx > Command: CWD / > Response: 250 Directory changed to / > Command: PWD > Response: 257 "/" is current directory. > Command: TYPE I > Response: 200 Command TYPE okay. > Command: PASV > Response: 227 Entering Passive Mode (127,0,0,1,199,113) > Command: STOR xxxxxxxxxxxxxxxxxxxxxxx > Response: 150 File status okay; about to open data connection. > Error: Connection timed out > Error: File transfer failed after transferring 278.6 KB in 21 seconds > Response: 551 xxxxxxxxxxxxxxxxxxxxxx: Error on output file. > Status: Disconnected from server > Error: Connection closed by server > END ---------- ---------- ---------- ---------- ---------- ---------- > ---------- > > > > > and the Apache FTP Sever log is: > > > > > START ---------- ---------- ---------- ---------- ---------- ---------- > ---------- > > [ INFO] 2013-01-25 12:04:31,940 [] [] Refreshing > org.springframework.context.support.FileSystemXmlApplicationContext@ed0338: > display name > [org.springframework.context.support.FileSystemXmlApplicationContext@ed0338]; > startup date [Fri Jan 25 12:04:31 COT 2013]; root of context hierarchy > [ INFO] 2013-01-25 12:04:32,030 [] [] Loading XML bean definitions from > file [xxxxxxxxxxxx/apache-ftpserver-1.0.6/res/conf/ftpd-typical.xml] > [ INFO] 2013-01-25 12:04:32,370 [] [] Bean factory for application context > [org.springframework.context.support.FileSystemXmlApplicationContext@ed0338]: > org.springframework.beans.factory.support.DefaultListableBeanFactory@19bb25a > [ INFO] 2013-01-25 12:04:32,402 [] [] Pre-instantiating singletons in > org.springframework.beans.factory.support.DefaultListableBeanFactory@19bb25a: > defining beans > [org.apache.ftpserver.listener.ListenerFactory#0,org.apache.ftpserver.listener.ListenerFactory#1,org.apache.ftpserver.usermanager.PropertiesUserManagerFactory#0,org.apache.ftpserver.FtpServerFactory#0,myServer]; > root of factory hierarchy > [ INFO] 2013-01-25 12:04:32,744 [] [] FTP server started > > > [ INFO] 2013-01-25 12:05:06,927 [] [127.0.0.1] CREATED > [ INFO] 2013-01-25 12:05:06,929 [] [127.0.0.1] OPENED > [ INFO] 2013-01-25 12:05:06,930 [] [127.0.0.1] SENT: 220 Service ready for > new user. > > > [ INFO] 2013-01-25 12:05:07,051 [] [127.0.0.1] RECEIVED: AUTH TLS > [ INFO] 2013-01-25 12:05:07,163 [] [127.0.0.1] SENT: 234 Command AUTH > okay; starting TLS connection. > > > [ INFO] 2013-01-25 12:05:07,164 [] [127.0.0.1] RECEIVED: USER xxx > [ INFO] 2013-01-25 12:05:07,167 [xxx] [127.0.0.1] SENT: 331 User name > okay, need password for xxx. > > > [ INFO] 2013-01-25 12:05:07,208 [xxx] [127.0.0.1] RECEIVED: PASS ***** > [ INFO] 2013-01-25 12:05:07,209 [xxx] [127.0.0.1] Login success - xxx > [ INFO] 2013-01-25 12:05:07,210 [xxx] [127.0.0.1] SENT: 230 User logged > in, proceed. > > > [ INFO] 2013-01-25 12:05:07,258 [xxx] [127.0.0.1] RECEIVED: OPTS UTF8 ON > [ INFO] 2013-01-25 12:05:07,261 [xxx] [127.0.0.1] SENT: 200 Command OPTS > okay. > > > [ INFO] 2013-01-25 12:05:07,318 [xxx] [127.0.0.1] RECEIVED: PBSZ 0 > [ INFO] 2013-01-25 12:05:07,319 [xxx] [127.0.0.1] SENT: 200 Command PBSZ > okay. > > > [ INFO] 2013-01-25 12:05:07,343 [xxx] [127.0.0.1] RECEIVED: PROT P > [ INFO] 2013-01-25 12:05:07,344 [xxx] [127.0.0.1] SENT: 200 Command PROT > okay. > > > [ INFO] 2013-01-25 12:05:07,384 [xxx] [127.0.0.1] RECEIVED: OPTS MLST > size;modify;type; > [ INFO] 2013-01-25 12:05:07,386 [xxx] [127.0.0.1] SENT: 200 Command OPTS > okay. > > > [ INFO] 2013-01-25 12:05:07,421 [xxx] [127.0.0.1] RECEIVED: CWD / > [ INFO] 2013-01-25 12:05:07,422 [xxx] [127.0.0.1] SENT: 250 Directory > changed to / > > > [ INFO] 2013-01-25 12:05:07,452 [xxx] [127.0.0.1] RECEIVED: PWD > [ INFO] 2013-01-25 12:05:07,454 [xxx] [127.0.0.1] SENT: 257 "/" is current > directory. > > > [ INFO] 2013-01-25 12:05:07,499 [xxx] [127.0.0.1] RECEIVED: TYPE I > [ INFO] 2013-01-25 12:05:07,503 [xxx] [127.0.0.1] SENT: 200 Command TYPE > okay. > > > [ INFO] 2013-01-25 12:05:07,553 [xxx] [127.0.0.1] RECEIVED: PASV > [ INFO] 2013-01-25 12:05:07,556 [xxx] [127.0.0.1] SENT: 227 Entering > Passive Mode (127,0,0,1,199,113) > > > [ INFO] 2013-01-25 12:05:07,599 [xxx] [127.0.0.1] RECEIVED: STOR > xxxxxxxxxxxxxx > [ WARN] 2013-01-25 12:05:28,477 [xxx] [127.0.0.1] Exception during data > transfer, closing data connection socket > javax.net.ssl.SSLException: SSL peer shut down incorrectly > at > com.sun.net.ssl.internal.ssl.InputRecord.readV3Record(InputRecord.java:408) > at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:360) > at > com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:863) > at > com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:820) > at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75) > at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) > at java.io.BufferedInputStream.read1(BufferedInputStream.java:258) > at java.io.BufferedInputStream.read(BufferedInputStream.java:317) > at java.io.FilterInputStream.read(FilterInputStream.java:90) > at > org.apache.ftpserver.impl.IODataConnection.transfer(IODataConnection.java:243) > at > org.apache.ftpserver.impl.IODataConnection.transferFromClient(IODataConnection.java:136) > at org.apache.ftpserver.command.impl.STOR.execute(STOR.java:146) > at > org.apache.ftpserver.impl.DefaultFtpHandler.messageReceived(DefaultFtpHandler.java:210) > at > org.apache.ftpserver.listener.nio.FtpHandlerAdapter.messageReceived(FtpHandlerAdapter.java:61) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:716) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796) > at > org.apache.ftpserver.listener.nio.FtpLoggingFilter.messageReceived(FtpLoggingFilter.java:85) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796) > at > org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:75) > at > org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:136) > 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:46) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796) > at > org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:427) > at > org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:245) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796) > at > org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:75) > at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63) > at > org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:780) > at > org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:772) > at > org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:714) > at java.lang.Thread.run(Thread.java:662) > [ WARN] 2013-01-25 12:05:28,479 [xxx] [127.0.0.1] Releasing unreserved > passive port: 51057 > END ---------- ---------- ---------- ---------- ---------- ---------- > ---------- > > > > > The SSLException is thrown when I cancel the upload. Can anybody help me? > What am I configuring wrong that does not let me use FTPS? > > > The system I'm running the tests in is Linux (ubuntu 12), jdk 6. > > > I appreciate any hint you can give me! > > > > Rubén Darío Páez Rivera >