From 06fe0d3cf2d140afadc6bebbb10998ce02d10b97 Mon Sep 17 00:00:00 2001 From: Peter Sorotokin Date: Mon, 22 Jan 2024 16:07:01 -0800 Subject: [PATCH] Fix for a NullPointerException on first run. (#453) Signed-off-by: Peter Sorotokin --- .../android/storage/AndroidStorageEngine.java | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/identity-android/src/main/java/com/android/identity/android/storage/AndroidStorageEngine.java b/identity-android/src/main/java/com/android/identity/android/storage/AndroidStorageEngine.java index 72968d4bb..36abc5e66 100644 --- a/identity-android/src/main/java/com/android/identity/android/storage/AndroidStorageEngine.java +++ b/identity-android/src/main/java/com/android/identity/android/storage/AndroidStorageEngine.java @@ -194,7 +194,11 @@ public void delete(@NonNull String key) { @Override public void deleteAll() { - for (File file : mStorageDirectory.listFiles()) { + File[] fileList = mStorageDirectory.listFiles(); + if (fileList == null) { + return; + } + for (File file : fileList) { String name = file.getName(); if (!name.startsWith(PREFIX)) { continue; @@ -207,16 +211,19 @@ public void deleteAll() { @NonNull public Collection enumerate() { ArrayList ret = new ArrayList<>(); - for (File file : mStorageDirectory.listFiles()) { - String name = file.getName(); - if (!name.startsWith(PREFIX)) { - continue; - } - try { - String decodedName = URLDecoder.decode(name.substring(PREFIX.length()), "UTF-8"); - ret.add(decodedName); - } catch (UnsupportedEncodingException e) { - throw new IllegalStateException(e); + File[] fileList = mStorageDirectory.listFiles(); + if (fileList != null) { + for (File file : fileList) { + String name = file.getName(); + if (!name.startsWith(PREFIX)) { + continue; + } + try { + String decodedName = URLDecoder.decode(name.substring(PREFIX.length()), "UTF-8"); + ret.add(decodedName); + } catch (UnsupportedEncodingException e) { + throw new IllegalStateException(e); + } } } return ret;