CB-6928: Open output stream only if it's necessary.

This commit is contained in:
Javier Puerto
2014-06-12 10:34:42 +02:00
committed by Ian Clelland
parent 4e5f10c3a3
commit 22f1ea573c
+1 -2
View File
@@ -716,7 +716,6 @@ public class FileTransfer extends CordovaPlugin {
OutputStream outputStream = null; OutputStream outputStream = null;
try { try {
OpenForReadResult readResult = null; OpenForReadResult readResult = null;
outputStream = resourceApi.openOutputStream(targetUri);
file = resourceApi.mapUriToFile(targetUri); file = resourceApi.mapUriToFile(targetUri);
context.targetFile = file; context.targetFile = file;
@@ -787,6 +786,7 @@ public class FileTransfer extends CordovaPlugin {
// write bytes to file // write bytes to file
byte[] buffer = new byte[MAX_BUFFER_SIZE]; byte[] buffer = new byte[MAX_BUFFER_SIZE];
int bytesRead = 0; int bytesRead = 0;
outputStream = resourceApi.openOutputStream(targetUri);
while ((bytesRead = inputStream.read(buffer)) > 0) { while ((bytesRead = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, bytesRead); outputStream.write(buffer, 0, bytesRead);
// Send a progress event. // Send a progress event.
@@ -854,7 +854,6 @@ public class FileTransfer extends CordovaPlugin {
Log.e(LOG_TAG, error.toString(), e); Log.e(LOG_TAG, error.toString(), e);
result = new PluginResult(PluginResult.Status.IO_EXCEPTION, error); result = new PluginResult(PluginResult.Status.IO_EXCEPTION, error);
} finally { } finally {
safeClose(outputStream);
synchronized (activeRequests) { synchronized (activeRequests) {
activeRequests.remove(objectId); activeRequests.remove(objectId);
} }