Repository: cordova-plugin-file-transfer Updated Branches: refs/heads/master 9dc41bd4e -> 3ccf9f846
CB-9022 Resolve source URI on background thread We should call remapUri on background thread otherwise it throws IllegalStateException when trying to remap 'cdvfile://localhost/content/...' URIs via ContentFilesystem Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/commit/3ccf9f84 Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/tree/3ccf9f84 Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/diff/3ccf9f84 Branch: refs/heads/master Commit: 3ccf9f8462c1de61c15c3841f77010b25fd6de58 Parents: 9dc41bd Author: Vladimir Kotikov <[email protected]> Authored: Thu Aug 18 16:30:19 2016 +0300 Committer: Vladimir Kotikov <[email protected]> Committed: Thu Aug 18 16:34:18 2016 +0300 ---------------------------------------------------------------------- src/android/FileTransfer.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/blob/3ccf9f84/src/android/FileTransfer.java ---------------------------------------------------------------------- diff --git a/src/android/FileTransfer.java b/src/android/FileTransfer.java index 86176a2..6c5b883 100644 --- a/src/android/FileTransfer.java +++ b/src/android/FileTransfer.java @@ -305,10 +305,6 @@ public class FileTransfer extends CordovaPlugin { Log.d(LOG_TAG, "httpMethod: " + httpMethod); final Uri targetUri = resourceApi.remapUri(Uri.parse(target)); - // Accept a path or a URI for the source. - Uri tmpSrc = Uri.parse(source); - final Uri sourceUri = resourceApi.remapUri( - tmpSrc.getScheme() != null ? tmpSrc : Uri.fromFile(new File(source))); int uriType = CordovaResourceApi.getUriType(targetUri); final boolean useHttps = uriType == CordovaResourceApi.URI_TYPE_HTTPS; @@ -329,6 +325,14 @@ public class FileTransfer extends CordovaPlugin { if (context.aborted) { return; } + + // We should call remapUri on background thread otherwise it throws + // IllegalStateException when trying to remap 'cdvfile://localhost/content/...' URIs + // via ContentFilesystem (see https://issues.apache.org/jira/browse/CB-9022) + Uri tmpSrc = Uri.parse(source); + final Uri sourceUri = resourceApi.remapUri( + tmpSrc.getScheme() != null ? tmpSrc : Uri.fromFile(new File(source))); + HttpURLConnection conn = null; HostnameVerifier oldHostnameVerifier = null; SSLSocketFactory oldSocketFactory = null; @@ -686,7 +690,7 @@ public class FileTransfer extends CordovaPlugin { if(body != null) { error.put("body", body); - } + } if (httpStatus != null) { error.put("http_status", httpStatus); } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
