]> nmode's Git Repositories - signal-cli/commitdiff
Improve message cache behavior in case of io error
authorAsamK <asamk@gmx.de>
Sat, 23 Sep 2023 10:25:30 +0000 (12:25 +0200)
committerAsamK <asamk@gmx.de>
Sat, 23 Sep 2023 10:25:30 +0000 (12:25 +0200)
lib/src/main/java/org/asamk/signal/manager/storage/messageCache/MessageCache.java

index e78928a8d41e419355b8dce5f3883f2bf51f13ee..30452fbb8cdbd17e027428bffba0ccbb2692c5eb 100644 (file)
@@ -51,13 +51,21 @@ public class MessageCache {
     public CachedMessage cacheMessage(SignalServiceEnvelope envelope, RecipientId recipientId) {
         final var now = System.currentTimeMillis();
 
+        File cacheFile;
+        try {
+            cacheFile = getMessageCacheFile(recipientId, now, envelope.getTimestamp());
+        } catch (IOException e) {
+            logger.warn("Failed to create recipient folder in disk cache: {}", e.getMessage());
+            throw new RuntimeException(e);
+        }
+
+        final var cachedMessage = new CachedMessage(cacheFile, envelope);
         try {
-            var cacheFile = getMessageCacheFile(recipientId, now, envelope.getTimestamp());
             MessageCacheUtils.storeEnvelope(envelope, cacheFile);
-            return new CachedMessage(cacheFile, envelope);
+            return cachedMessage;
         } catch (IOException e) {
             logger.warn("Failed to store encrypted message in disk cache, ignoring: {}", e.getMessage());
-            return null;
+            return cachedMessage;
         }
     }