< prev index next >

src/java.base/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java

Print this page
rev 14210 : 8154231: Simplify access to System properties from JDK code
Reviewed-by: rriggs


  29 
  30 package sun.net.www.protocol.ftp;
  31 
  32 import java.io.IOException;
  33 import java.io.InputStream;
  34 import java.io.OutputStream;
  35 import java.io.BufferedInputStream;
  36 import java.io.FilterInputStream;
  37 import java.io.FilterOutputStream;
  38 import java.io.FileNotFoundException;
  39 import java.net.URL;
  40 import java.net.SocketPermission;
  41 import java.net.UnknownHostException;
  42 import java.net.InetSocketAddress;
  43 import java.net.URI;
  44 import java.net.Proxy;
  45 import java.net.ProxySelector;
  46 import java.util.StringTokenizer;
  47 import java.util.Iterator;
  48 import java.security.Permission;

  49 import sun.net.NetworkClient;
  50 import sun.net.www.MessageHeader;
  51 import sun.net.www.MeteredStream;
  52 import sun.net.www.URLConnection;
  53 import sun.net.www.protocol.http.HttpURLConnection;
  54 import sun.net.ftp.FtpClient;
  55 import sun.net.ftp.FtpProtocolException;
  56 import sun.net.ProgressSource;
  57 import sun.net.ProgressMonitor;
  58 import sun.net.www.ParseUtil;
  59 import sun.security.action.GetPropertyAction;
  60 
  61 
  62 /**
  63  * This class Opens an FTP input (or output) stream given a URL.
  64  * It works as a one shot FTP transfer :
  65  * <UL>
  66  * <LI>Login</LI>
  67  * <LI>Get (or Put) the file</LI>
  68  * <LI>Disconnect</LI>


 260         } else { // per connection proxy specified
 261             p = instProxy;
 262             if (p.type() == Proxy.Type.HTTP) {
 263                 http = new HttpURLConnection(url, instProxy);
 264                 http.setDoInput(getDoInput());
 265                 http.setDoOutput(getDoOutput());
 266                 if (connectTimeout >= 0) {
 267                     http.setConnectTimeout(connectTimeout);
 268                 }
 269                 if (readTimeout >= 0) {
 270                     http.setReadTimeout(readTimeout);
 271                 }
 272                 http.connect();
 273                 connected = true;
 274                 return;
 275             }
 276         }
 277 
 278         if (user == null) {
 279             user = "anonymous";
 280             String vers = java.security.AccessController.doPrivileged(
 281                     new GetPropertyAction("java.version"));
 282             password = java.security.AccessController.doPrivileged(
 283                     new GetPropertyAction("ftp.protocol.user",
 284                                           "Java" + vers + "@"));
 285         }
 286         try {
 287             ftp = FtpClient.create();
 288             if (p != null) {
 289                 ftp.setProxy(p);
 290             }
 291             setTimeouts();
 292             if (port != -1) {
 293                 ftp.connect(new InetSocketAddress(host, port));
 294             } else {
 295                 ftp.connect(new InetSocketAddress(host, FtpClient.defaultPort()));
 296             }
 297         } catch (UnknownHostException e) {
 298             // Maybe do something smart here, like use a proxy like iftp.
 299             // Just keep throwing for now.
 300             throw e;
 301         } catch (FtpProtocolException fe) {
 302             if (ftp != null) {
 303                 try {
 304                     ftp.close();




  29 
  30 package sun.net.www.protocol.ftp;
  31 
  32 import java.io.IOException;
  33 import java.io.InputStream;
  34 import java.io.OutputStream;
  35 import java.io.BufferedInputStream;
  36 import java.io.FilterInputStream;
  37 import java.io.FilterOutputStream;
  38 import java.io.FileNotFoundException;
  39 import java.net.URL;
  40 import java.net.SocketPermission;
  41 import java.net.UnknownHostException;
  42 import java.net.InetSocketAddress;
  43 import java.net.URI;
  44 import java.net.Proxy;
  45 import java.net.ProxySelector;
  46 import java.util.StringTokenizer;
  47 import java.util.Iterator;
  48 import java.security.Permission;
  49 import java.util.Properties;
  50 import sun.net.NetworkClient;
  51 import sun.net.www.MessageHeader;
  52 import sun.net.www.MeteredStream;
  53 import sun.net.www.URLConnection;
  54 import sun.net.www.protocol.http.HttpURLConnection;
  55 import sun.net.ftp.FtpClient;
  56 import sun.net.ftp.FtpProtocolException;
  57 import sun.net.ProgressSource;
  58 import sun.net.ProgressMonitor;
  59 import sun.net.www.ParseUtil;
  60 import sun.security.action.GetPropertyAction;
  61 
  62 
  63 /**
  64  * This class Opens an FTP input (or output) stream given a URL.
  65  * It works as a one shot FTP transfer :
  66  * <UL>
  67  * <LI>Login</LI>
  68  * <LI>Get (or Put) the file</LI>
  69  * <LI>Disconnect</LI>


 261         } else { // per connection proxy specified
 262             p = instProxy;
 263             if (p.type() == Proxy.Type.HTTP) {
 264                 http = new HttpURLConnection(url, instProxy);
 265                 http.setDoInput(getDoInput());
 266                 http.setDoOutput(getDoOutput());
 267                 if (connectTimeout >= 0) {
 268                     http.setConnectTimeout(connectTimeout);
 269                 }
 270                 if (readTimeout >= 0) {
 271                     http.setReadTimeout(readTimeout);
 272                 }
 273                 http.connect();
 274                 connected = true;
 275                 return;
 276             }
 277         }
 278 
 279         if (user == null) {
 280             user = "anonymous";
 281             Properties props = GetPropertyAction.getProperties();
 282             String vers = props.getProperty("java.version");
 283             password = props.getProperty("ftp.protocol.user",
 284                     "Java" + vers + "@");

 285         }
 286         try {
 287             ftp = FtpClient.create();
 288             if (p != null) {
 289                 ftp.setProxy(p);
 290             }
 291             setTimeouts();
 292             if (port != -1) {
 293                 ftp.connect(new InetSocketAddress(host, port));
 294             } else {
 295                 ftp.connect(new InetSocketAddress(host, FtpClient.defaultPort()));
 296             }
 297         } catch (UnknownHostException e) {
 298             // Maybe do something smart here, like use a proxy like iftp.
 299             // Just keep throwing for now.
 300             throw e;
 301         } catch (FtpProtocolException fe) {
 302             if (ftp != null) {
 303                 try {
 304                     ftp.close();


< prev index next >