### Eclipse Workspace Patch 1.0 #P Apache Ivy Index: src/java/org/apache/ivy/util/url/HttpClientHandler.java =================================================================== --- src/java/org/apache/ivy/util/url/HttpClientHandler.java (revision 995400) +++ src/java/org/apache/ivy/util/url/HttpClientHandler.java (working copy) @@ -18,7 +18,6 @@ package org.apache.ivy.util.url; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; @@ -42,9 +41,9 @@ import org.apache.commons.httpclient.auth.AuthScope; import org.apache.commons.httpclient.auth.CredentialsNotAvailableException; import org.apache.commons.httpclient.auth.CredentialsProvider; +import org.apache.commons.httpclient.methods.FileRequestEntity; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.HeadMethod; -import org.apache.commons.httpclient.methods.InputStreamRequestEntity; import org.apache.commons.httpclient.methods.PutMethod; import org.apache.commons.httpclient.params.HttpMethodParams; import org.apache.ivy.Ivy; @@ -100,10 +99,10 @@ throw new IOException("The HTTP response code for " + url + " did not indicate a success." + " See log for more detail."); } - + Header encoding = get.getResponseHeader("Content-Encoding"); return getDecodingInputStream(encoding == null ? null : encoding.getValue(), - get.getResponseBodyAsStream()); + get.getResponseBodyAsStream()); } public void download(URL src, File dest, CopyProgressListener l) throws IOException { @@ -114,10 +113,10 @@ throw new IOException("The HTTP response code for " + src + " did not indicate a success." + " See log for more detail."); } - + Header encoding = get.getResponseHeader("Content-Encoding"); InputStream is = getDecodingInputStream(encoding == null ? null : encoding.getValue(), - get.getResponseBodyAsStream()); + get.getResponseBodyAsStream()); FileUtil.copy(is, dest, l); dest.setLastModified(getLastModified(get)); } finally { @@ -130,20 +129,11 @@ PutMethod put = new PutMethod(normalizeToString(dest)); put.setDoAuthentication(useAuthentication(dest) || useProxyAuthentication()); - FileInputStream fileStream = null; try { - fileStream = new FileInputStream(src); - put.setRequestEntity(new InputStreamRequestEntity(fileStream)); + put.setRequestEntity(new FileRequestEntity(src, "")); int statusCode = client.executeMethod(put); validatePutStatusCode(dest, statusCode, null); } finally { - if (fileStream != null) { - try { - fileStream.close(); - } catch (IOException e) { - /* ignored */ - } - } put.releaseConnection(); } } @@ -269,8 +259,7 @@ private HttpClient getClient(URL url) { if (httpClient == null) { - final MultiThreadedHttpConnectionManager connManager = - new MultiThreadedHttpConnectionManager(); + final MultiThreadedHttpConnectionManager connManager = new MultiThreadedHttpConnectionManager(); httpClient = new HttpClient(connManager); Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { @@ -299,8 +288,8 @@ "Apache Ivy/" + Ivy.getIvyVersion()); // authentication - httpClient.getParams().setParameter(CredentialsProvider.PROVIDER, - new IvyCredentialsProvider()); + httpClient.getParams().setParameter(CredentialsProvider.PROVIDER, + new IvyCredentialsProvider()); } return httpClient; @@ -367,27 +356,27 @@ int getHttpClientMajorVersion(); } - + private static class IvyCredentialsProvider implements CredentialsProvider { public Credentials getCredentials(AuthScheme scheme, String host, int port, boolean proxy) throws CredentialsNotAvailableException { String realm = scheme.getRealm(); - - org.apache.ivy.util.Credentials c = (org.apache.ivy.util.Credentials) - CredentialsStore.INSTANCE.getCredentials(realm, host); + + org.apache.ivy.util.Credentials c = (org.apache.ivy.util.Credentials) CredentialsStore.INSTANCE + .getCredentials(realm, host); if (c != null) { return createCredentials(c.getUserName(), c.getPasswd()); } - + return null; } } - + private static Credentials createCredentials(String username, String password) { String user; String domain; - + int backslashIndex = username.indexOf('\\'); if (backslashIndex >= 0) { user = username.substring(backslashIndex + 1); @@ -396,7 +385,7 @@ user = username; domain = System.getProperty("http.auth.ntlm.domain", ""); } - + return new NTCredentials(user, password, HostUtil.getLocalHostName(), domain); } }