+
+ public void mergeRecipients(final RecipientId recipientId, final RecipientId toBeMergedRecipientId) {
+ final var toBeMergedMessageCachePath = getMessageCachePath(toBeMergedRecipientId);
+ if (!toBeMergedMessageCachePath.exists()) {
+ return;
+ }
+
+ for (var file : Objects.requireNonNull(toBeMergedMessageCachePath.listFiles())) {
+ if (!file.isFile()) {
+ continue;
+ }
+
+ try {
+ final var cacheFile = getMessageCacheFile(recipientId, file.getName());
+ Files.move(file.toPath(), cacheFile.toPath());
+ } catch (IOException e) {
+ logger.warn("Failed to move cache file “{}”, ignoring: {}", file, e.getMessage());
+ }
+ }
+ }