am a770f8d4: Encode characters that java.net.URI rejects

* commit 'a770f8d4bd583e9a719af6ce314838db12003b33':
  Encode characters that java.net.URI rejects
diff --git a/src/com/android/browser/DownloadHandler.java b/src/com/android/browser/DownloadHandler.java
index 31212b4..1da6795 100644
--- a/src/com/android/browser/DownloadHandler.java
+++ b/src/com/android/browser/DownloadHandler.java
@@ -107,7 +107,7 @@
 
         boolean needed = false;
         for (char c : chars) {
-            if (c == '[' || c == ']') {
+            if (c == '[' || c == ']' || c == '|') {
                 needed = true;
                 break;
             }
@@ -118,7 +118,7 @@
 
         StringBuilder sb = new StringBuilder("");
         for (char c : chars) {
-            if (c == '[' || c == ']') {
+            if (c == '[' || c == ']' || c == '|') {
                 sb.append('%');
                 sb.append(Integer.toHexString(c));
             } else {
diff --git a/src/com/android/browser/FetchUrlMimeType.java b/src/com/android/browser/FetchUrlMimeType.java
index 845bcc7..07c9b93 100644
--- a/src/com/android/browser/FetchUrlMimeType.java
+++ b/src/com/android/browser/FetchUrlMimeType.java
@@ -27,6 +27,7 @@
 import android.net.Proxy;
 import android.net.http.AndroidHttpClient;
 import android.os.Environment;
+import android.util.Log;
 import android.webkit.MimeTypeMap;
 import android.webkit.URLUtil;
 
@@ -44,6 +45,8 @@
  */
 class FetchUrlMimeType extends Thread {
 
+    private final static String LOGTAG = "FetchUrlMimeType";
+
     private Context mContext;
     private DownloadManager.Request mRequest;
     private String mUri;
@@ -64,9 +67,16 @@
         // User agent is likely to be null, though the AndroidHttpClient
         // seems ok with that.
         AndroidHttpClient client = AndroidHttpClient.newInstance(mUserAgent);
-        HttpHost httpHost = Proxy.getPreferredHttpHost(mContext, mUri);
-        if (httpHost != null) {
-            ConnRouteParams.setDefaultProxy(client.getParams(), httpHost);
+        HttpHost httpHost;
+        try {
+            httpHost = Proxy.getPreferredHttpHost(mContext, mUri);
+            if (httpHost != null) {
+                ConnRouteParams.setDefaultProxy(client.getParams(), httpHost);
+            }
+        } catch (IllegalArgumentException ex) {
+            Log.e(LOGTAG,"Download failed: " + ex);
+            client.close();
+            return;
         }
         HttpHead request = new HttpHead(mUri);