Close resources properly

This commit is contained in:
edpeur 2011-12-31 17:38:41 +00:00
parent ff08fdcdf5
commit daeedc2222
5 changed files with 45 additions and 21 deletions

View File

@ -500,14 +500,20 @@ public class Utility {
try {
FileInputStream in = new FileInputStream(from);
FileOutputStream out = new FileOutputStream(to);
byte[] buffer = new byte[1024];
int count = -1;
while ((count = in.read(buffer)) > 0) {
out.write(buffer, 0, count);
try {
FileOutputStream out = new FileOutputStream(to);
try {
byte[] buffer = new byte[1024];
int count = -1;
while ((count = in.read(buffer)) > 0) {
out.write(buffer, 0, count);
}
} finally {
out.close();
}
} finally {
try { in.close(); } catch (Throwable ignore) {}
}
out.close();
in.close();
from.delete();
return true;
} catch (Exception e) {

View File

@ -46,8 +46,11 @@ public class BinaryTempFileBody implements Body {
public void writeTo(OutputStream out) throws IOException, MessagingException {
InputStream in = getInputStream();
Base64OutputStream base64Out = new Base64OutputStream(out);
IOUtils.copy(in, base64Out);
base64Out.close();
try {
IOUtils.copy(in, base64Out);
} finally {
base64Out.close();
}
mFile.delete();
}

View File

@ -1092,8 +1092,11 @@ public class MimeUtility {
BinaryTempFileBody tempBody = new BinaryTempFileBody();
OutputStream out = tempBody.getOutputStream();
IOUtils.copy(in, out);
out.close();
try {
IOUtils.copy(in, out);
} finally {
out.close();
}
return tempBody;
}

View File

@ -2357,11 +2357,17 @@ public class LocalStore extends Store implements Serializable {
* so we copy the data into a cached attachment file.
*/
InputStream in = attachment.getBody().getInputStream();
tempAttachmentFile = File.createTempFile("att", null, attachmentDirectory);
FileOutputStream out = new FileOutputStream(tempAttachmentFile);
size = IOUtils.copy(in, out);
in.close();
out.close();
try {
tempAttachmentFile = File.createTempFile("att", null, attachmentDirectory);
FileOutputStream out = new FileOutputStream(tempAttachmentFile);
try {
size = IOUtils.copy(in, out);
} finally {
out.close();
}
} finally {
try { in.close(); } catch (Throwable ignore) {}
}
}
}
@ -3357,8 +3363,11 @@ public class LocalStore extends Store implements Serializable {
public void writeTo(OutputStream out) throws IOException, MessagingException {
InputStream in = getInputStream();
Base64OutputStream base64Out = new Base64OutputStream(out);
IOUtils.copy(in, base64Out);
base64Out.close();
try {
IOUtils.copy(in, base64Out);
} finally {
base64Out.close();
}
}
public Uri getContentUri() {

View File

@ -180,11 +180,14 @@ public class AttachmentProvider extends ContentProvider {
if (thumbnail != null) {
thumbnail = Bitmap.createScaledBitmap(thumbnail, width, height, true);
FileOutputStream out = new FileOutputStream(file);
thumbnail.compress(Bitmap.CompressFormat.PNG, 100, out);
out.close();
try {
thumbnail.compress(Bitmap.CompressFormat.PNG, 100, out);
} finally {
out.close();
}
}
} finally {
in.close();
try { in.close(); } catch (Throwable ignore) {}
}
} catch (IOException ioe) {
return null;