servicemix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alper Sogukpinar (JIRA)" <j...@apache.org>
Subject [jira] Created: (SM-921) FTPClientPool does not have dataTimeout and controlEncoding properties.
Date Wed, 04 Apr 2007 13:34:35 GMT
FTPClientPool does not  have dataTimeout  and controlEncoding properties.
-------------------------------------------------------------------------

                 Key: SM-921
                 URL: https://issues.apache.org/activemq/browse/SM-921
             Project: ServiceMix
          Issue Type: Bug
          Components: servicemix-components
    Affects Versions: 3.1
            Reporter: Alper Sogukpinar


FTPClientPool does not  set FtpClient __dataTimeout  property and If timeout value is not
set, infinite timeout  will be the case.
As a result of that not only the thread which is in infinite timeout condition is affected
and ftp connection remains open forever but also the file which is put into the workingSet
by the thread  will not be processed by latter FtpPoller threads.

I tried both FtpClient.setDataTimeout and FtpClient.setSoTimeout properties in my tests and
only FtpClient.setDataTimeout was worked.
Creating a DEFAULT_TIMEOUT property and setting dataTimeout just after opening the ftp connection
will solve the problem.
In addition to this a bean property  which overrides DEFAULT_TIMEOUT should be created for
user configuration.

In ddition to these, DEFAULT_CONTROL_ENCODING property should also be created on FTPClientPool
 for setting controlEncoding property of FtpClient object. Otherwise, non US ASCII characters
which are used in the name of a target file causes problems. For example Default encoding
does not support  Turkish characters.  When non US ASCII characters like Turkish charachers
(&#351;, &#305;, &#287;....) are used in the fileName, each of them is converted
to '?' character and '?' is not acceptable for a fileName. As a result of that an exception
is thrown...

*******************************************

Sample Code...

public class FTPClientPool {
private static int DEFAULT_TIMEOUT = 600*1000; 
private static String DEFAULT_CONTROL_ENCODING = "Cp1254";
	
	public SocketClient borrowClient() throws Exception {
		
		FTPClient client = null;
        try {        	
        	client = new FTPClient();        	        	
        	client.setControlEncoding(DEFAULT_CONTROL_ENCODING);
			
        	if (getConfig() != null) {
        		client.configure(getConfig());
            }
            super.connect(client);
            client.setDataTimeout(DEFAULT_TIMEOUT);
                              .....................




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message