### Question:
AtomicLoadKeyStore extends KeyStore { public static AtomicLoadKeyStore atomize(KeyStore keyStore) throws CertificateException, NoSuchAlgorithmException, IOException { final String type = keyStore.getType(); final Provider provider = keyStore.getProvider(); AtomicLoadKeyStoreSpi keyStoreSpi = new AtomicLoadKeyStoreSpi(() -> KeyStore.getInstance(type, provider)); AtomicLoadKeyStore result = new AtomicLoadKeyStore(keyStoreSpi, provider, type); result.load(null, null); result.setKeyStore(keyStore); return result; } private  AtomicLoadKeyStore(AtomicLoadKeyStoreSpi keyStoreSpi, Provider provider, String type); static AtomicLoadKeyStore newInstance(final String type, final Provider provider); static AtomicLoadKeyStore newInstance(final String type, final String provider); static AtomicLoadKeyStore newInstance(final String type); static AtomicLoadKeyStore atomize(KeyStore keyStore); LoadKey revertibleLoad(final InputStream inputStream, final char[] password); void revert(LoadKey key);  }### Answer:
@Test public void testAtomize() throws Exception { KeyStore keyStoreOne = KeyStore.getInstance(KEY_STORE_TYPE); keyStoreOne.load(new FileInputStream(this.keyStoreOne), STORE_PASSWORD); AtomicLoadKeyStore theStore = AtomicLoadKeyStore.atomize(keyStoreOne); assertTrue(theStore.containsAlias(ALIAS_ONE)); assertFalse(theStore.containsAlias(ALIAS_TWO)); LoadKey key = load(theStore, keyStoreTwo); assertFalse(theStore.containsAlias(ALIAS_ONE)); assertTrue(theStore.containsAlias(ALIAS_TWO)); theStore.revert(key); assertTrue(theStore.containsAlias(ALIAS_ONE)); assertFalse(theStore.containsAlias(ALIAS_TWO)); }