diff --git a/bridge/src/androidTest/java/com/livefront/bridge/disk/FileDiskHandlerTest.java b/bridge/src/androidTest/java/com/livefront/bridge/disk/FileDiskHandlerTest.java index 35dc19d..36457ec 100644 --- a/bridge/src/androidTest/java/com/livefront/bridge/disk/FileDiskHandlerTest.java +++ b/bridge/src/androidTest/java/com/livefront/bridge/disk/FileDiskHandlerTest.java @@ -118,6 +118,13 @@ public void constructor() { assertNull(fileDiskHandler3.getBytes(key)); } + @Test + public void getBytes_afterCancelling() { + // Should not trigger a CancellationException + mFileDiskHandler.clearAll(); + mFileDiskHandler.getBytes("test"); + } + @Test public void getBytes_dataPresent() { // Should return the previously stored data diff --git a/bridge/src/main/java/com/livefront/bridge/disk/FileDiskHandler.java b/bridge/src/main/java/com/livefront/bridge/disk/FileDiskHandler.java index 16e4bca..bd695db 100644 --- a/bridge/src/main/java/com/livefront/bridge/disk/FileDiskHandler.java +++ b/bridge/src/main/java/com/livefront/bridge/disk/FileDiskHandler.java @@ -10,6 +10,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.util.Map; +import java.util.concurrent.CancellationException; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; @@ -228,7 +229,10 @@ private void waitForFilesToLoad() { } try { mPendingLoadFuture.get(BACKGROUND_WAIT_TIMEOUT_MS, TimeUnit.SECONDS); - } catch (InterruptedException | ExecutionException | TimeoutException e) { + } catch (CancellationException | + InterruptedException | + ExecutionException | + TimeoutException e) { // We've made a best effort to load the data in the background. We can simply proceed // here. }