private void migrateIdentitiesIfNeeded(Configuration configuration, PasswordHolder passwordHolder) throws FileNotFoundException, IOException, GeneralSecurityException, PasswordException { File identitiesFile = configuration.getIdentitiesFile(); if (!identitiesFile.exists()) return; BufferedReader input = null; try { InputStream encryptedStream = new EncryptedInputStream(new FileInputStream(identitiesFile), passwordHolder); input = new BufferedReader(new InputStreamReader(encryptedStream)); // No PasswordException occurred, so read the input stream and call migrateIdentities() if needed List<String> lines = Util.readLines(encryptedStream); if (!isIdentitiesFileMigrated(lines)) migrateIdentities(lines, configuration, passwordHolder); } finally { if (input != null) input.close(); } }
identitiesSet.iterator().next().setDefaultIdentity(true); Identities identities = new Identities(configuration.getIdentitiesFile(), passwordHolder); for (EmailIdentity identity: identitiesSet) identities.add(identity);
files.add(configuration.getIdentitiesFile()); files.add(configuration.getAddressBookFile()); File[] emailFolders = new File[] {configuration.getInboxDir(), configuration.getOutboxDir(), configuration.getSentFolderDir(), configuration.getTrashFolderDir()};;
File oldIdentitiesFile = new File(configuration.getIdentitiesFile().getParentFile(), "identities.txt"); if (oldIdentitiesFile.exists()) { log.debug("Migrating identities file: <" + oldIdentitiesFile + ">"); File newIdentitiesFile = configuration.getIdentitiesFile(); encrypt(oldIdentitiesFile, newIdentitiesFile); oldIdentitiesFile.delete();
identities = new Identities(configuration.getIdentitiesFile(), passwordCache); addressBook = new AddressBook(configuration.getAddressBookFile(), passwordCache); initializeFolderAccess(passwordCache);