1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-11-30 05:02:26 -05:00

Avoid StrictMode error in OpenPgpApi

E/StrictMode(9278): A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
E/StrictMode(9278): java.lang.Throwable: Explicit termination method 'close' not called
E/StrictMode(9278): 	at dalvik.system.CloseGuard.open(CloseGuard.java:184)
E/StrictMode(9278): 	at android.os.ParcelFileDescriptor.<init>(ParcelFileDescriptor.java:179)
E/StrictMode(9278): 	at android.os.ParcelFileDescriptor.<init>(ParcelFileDescriptor.java:168)
E/StrictMode(9278): 	at android.os.ParcelFileDescriptor.createPipe(ParcelFileDescriptor.java:362)
E/StrictMode(9278): 	at org.openintents.openpgp.util.ParcelFileDescriptorUtil.pipeFrom(ParcelFileDescriptorUtil.java:34)
E/StrictMode(9278): 	at org.openintents.openpgp.util.OpenPgpApi.executeApi(OpenPgpApi.java:222)
E/StrictMode(9278): 	at org.openintents.openpgp.util.OpenPgpApi$OpenPgpAsyncTask.doInBackground(OpenPgpApi.java:189)
E/StrictMode(9278): 	at org.openintents.openpgp.util.OpenPgpApi$OpenPgpAsyncTask.doInBackground(OpenPgpApi.java:1)
E/StrictMode(9278): 	at android.os.AsyncTask$2.call(AsyncTask.java:288)
E/StrictMode(9278): 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
E/StrictMode(9278): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
E/StrictMode(9278): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
E/StrictMode(9278): 	at java.lang.Thread.run(Thread.java:841)
This commit is contained in:
Joe Steele 2014-04-25 18:03:27 -04:00
parent 5cc4d7c6a9
commit 58efee8be2

View File

@ -25,6 +25,8 @@ import android.os.ParcelFileDescriptor;
import android.util.Log; import android.util.Log;
import org.openintents.openpgp.IOpenPgpService; import org.openintents.openpgp.IOpenPgpService;
import org.openintents.openpgp.OpenPgpError; import org.openintents.openpgp.OpenPgpError;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
@ -209,6 +211,7 @@ public class OpenPgpApi {
} }
public Intent executeApi(Intent data, InputStream is, OutputStream os) { public Intent executeApi(Intent data, InputStream is, OutputStream os) {
ParcelFileDescriptor input = null;
try { try {
data.putExtra(EXTRA_API_VERSION, OpenPgpApi.API_VERSION); data.putExtra(EXTRA_API_VERSION, OpenPgpApi.API_VERSION);
@ -219,7 +222,7 @@ public class OpenPgpApi {
return result; return result;
} else { } else {
// pipe the input and output // pipe the input and output
ParcelFileDescriptor input = ParcelFileDescriptorUtil.pipeFrom(is, input = ParcelFileDescriptorUtil.pipeFrom(is,
new ParcelFileDescriptorUtil.IThreadListener() { new ParcelFileDescriptorUtil.IThreadListener() {
@Override @Override
@ -255,6 +258,14 @@ public class OpenPgpApi {
result.putExtra(RESULT_ERROR, result.putExtra(RESULT_ERROR,
new OpenPgpError(OpenPgpError.CLIENT_SIDE_ERROR, e.getMessage())); new OpenPgpError(OpenPgpError.CLIENT_SIDE_ERROR, e.getMessage()));
return result; return result;
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
Log.e(OpenPgpApi.TAG, "Failed to close input file descriptor", e);
}
}
} }
} }