Return-Path: X-Original-To: apmail-commons-issues-archive@minotaur.apache.org Delivered-To: apmail-commons-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D57AFC100 for ; Wed, 13 Jun 2012 11:13:44 +0000 (UTC) Received: (qmail 42392 invoked by uid 500); 13 Jun 2012 11:13:44 -0000 Delivered-To: apmail-commons-issues-archive@commons.apache.org Received: (qmail 42311 invoked by uid 500); 13 Jun 2012 11:13:43 -0000 Mailing-List: contact issues-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: issues@commons.apache.org Delivered-To: mailing list issues@commons.apache.org Received: (qmail 41630 invoked by uid 99); 13 Jun 2012 11:13:43 -0000 Received: from issues-vm.apache.org (HELO issues-vm) (140.211.11.160) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 13 Jun 2012 11:13:43 +0000 Received: from isssues-vm.apache.org (localhost [127.0.0.1]) by issues-vm (Postfix) with ESMTP id CCF2A141BF8 for ; Wed, 13 Jun 2012 11:13:42 +0000 (UTC) Date: Wed, 13 Jun 2012 11:13:42 +0000 (UTC) From: "Alexander Schuetz (JIRA)" To: issues@commons.apache.org Message-ID: <1406009876.12120.1339586022841.JavaMail.jiratomcat@issues-vm> In-Reply-To: <877693944.11770.1339577203099.JavaMail.jiratomcat@issues-vm> Subject: [jira] [Commented] (NET-470) DataConnection-Socket hangs on InputStream.read() MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/NET-470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13294353#comment-13294353 ] Alexander Schuetz commented on NET-470: --------------------------------------- Here you are: {color:blue} {{220 PSFTPd. Secure FTP Server ready}} {{Connected to ******** on 990}} {{USER *******}} {{331 Password required for *******}} {{PASS *******}} {{230 User ******* logged in}} {{SYST}} {{215 UNIX Type: L8}} {{Remote system is UNIX Type: L8}} {{PBSZ 0}} {{200 PBSZ 0 successful}} {{PROT P}} {{200 Data connection set to: Private}} {{TYPE I}} {{200 TYPE set to BINARY}} {{PASV}} {{227 Entering passive mode (217,70,161,93,39,12)}} {{LIST}} {{150 Opening ASCII mode data connection}} {color} {color:red} java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:150) at java.net.SocketInputStream.read(SocketInputStream.java:121) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.BufferedReader.fill(BufferedReader.java:154) at java.io.BufferedReader.readLine(BufferedReader.java:317) at java.io.BufferedReader.readLine(BufferedReader.java:382) at org.apache.commons.net.ftp.FTPFileEntryParserImpl.readNextEntry(FTPFileEntryParserImpl.java:52) at org.apache.commons.net.ftp.FTPListParseEngine.readStream(226 Directory send OK FTPListParseEngine.java:133) at org.apache.commons.net.ftp.FTPListParseEngine.readServerList(FTPListParseEngine.java:102) at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:3103) at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:3072) at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2731) at testapplication.ftp.FTPClientExample.main(FTPClientExample.java:335) {color} This was produced using Netbeans 7, JDK 1.7 and a slightly changed version of {http://www.google.de/url?sa=t&rct=j&q=ftpclientexample%20java&source=web&cd=1&ved=0CFIQFjAA&url=http%3A%2F%2Fcommons.apache.org%2Fnet%2Fexamples%2Fftp%2FFTPClientExample.java&ei=83LYT7iSH4TKsgaA_ejjDw&usg=AFQjCNHYEWShtZ-WVhvvFvmnjmsfWanevg&cad=rja] I'll attach a diff with the modifications. Arguments are "-l -b -p SSL,true" and of course the login and server preferences. > DataConnection-Socket hangs on InputStream.read() > ------------------------------------------------- > > Key: NET-470 > URL: https://issues.apache.org/jira/browse/NET-470 > Project: Commons Net > Issue Type: Bug > Components: FTP > Affects Versions: 3.1 > Environment: Windows 7 (x86), Netbeans 7, JDK 1.6 and JDK 1.7 > Reporter: Alexander Schuetz > > I'm using ftps (SSL/implicit) and passive mode. connect(), login() and cwd() commands work well. > But if I have to open a data connection (for example for LIST) the socket is opened successfully using one of the desired "dataports". The underlying InputStream is created as well without any Exception. > But then every attempt to read from the InputStream will eventually time out or hang forever (depending on the DataTimeout-value). > If I use the FileZilla client, everything works successfully and fast. FileZilla issues the following commands: > {color:blue} > {{C: SYST}} > {{A: 215 UNIX Type: L8}} > {{C: FEAT}} > {{A: 211-Extensions supported}} > {{A: SIZE}} > {{A: REST}} > {{A: MDTM}} > {{A: MFMT YYYYMMDDHHMMSS filename}} > {{A: MDTM YYYYMMDDHHMMSS filename}} > {{A: MDTM YYYYMMDDHHMMSS[+-TZ] filename}} > {{A: XCRC filename}} > {{A: XMD5 filename}} > {{A: AUTH TLS}} > {{A: AUTH SSL}} > {{A: MODE Z}} > {{A: PBSZ}} > {{A: PROT}} > {{A: 211 End of FEAT}} > {{C: USER ********}} > {{A: 331 Password required for ********}} > {{C: PASS ********}} > {{A: 230 User ******** logged in}} > {{C: PBSZ 0}} > {{A: 200 PBSZ 0 successful}} > {{C: PROT P}} > {{A: 200 Data connection set to: Private}} > {{C: TYPE I}} > {{A: 200 TYPE set to BINARY}} > {{C: PASV}} > {{A: 227 Entering passive mode (217,70,161,93,39,15)}} > {{C: LIST}} > {{A: 150 Opening ASCII mode data connection}} > {{A: 226 Directory send OK}} > {color} > Issueing the commands "PBSZ 0" and "PROT P" before and calling enterLocalPassiveMode() and setFileType(FTP.BINARY_FILE_TYPE) will produce the same commandsequence (without SYST and FEAT), but with the error described above. > > On top of that: disconnect() will block forever, originating from socket.close() which is blocking. The only way to avoid this is calling logout() (even if login() wasn't issued). Then disconnect will return as expected. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira