From 79213aa3ecc3f0be84f0380057c40799c93c3405 Mon Sep 17 00:00:00 2001 From: Branden Archer Date: Sun, 4 Mar 2018 13:10:05 -0500 Subject: [PATCH] Catch case where barcode rendering runs into an OOM There are still cases where the barcode could not be rendered because the process runs out of its memory limit. To avoid a crash, catch the failure and log it. The barcode will not be displayed, but at least the app will not crash. --- .../java/protect/card_locker/BarcodeImageWriterTask.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java index ac885de43..88e62ecd4 100644 --- a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java +++ b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java @@ -149,6 +149,12 @@ class BarcodeImageWriterTask extends AsyncTask { Log.e(TAG, "Failed to generate barcode of type " + format + ": " + cardId, e); } + catch(OutOfMemoryError e) + { + Log.w(TAG, "Insufficient memory to render barcode, " + + imageWidth + "x" + imageHeight + ", " + format.name() + + ", length=" + cardId.length(), e); + } return null; }