/** * Deserialize the wallet extension with the supplied data and then install it, replacing any existing extension * that may have existed with the same ID. If an exception is thrown then the extension is removed from the wallet, * if already present. */ public void deserializeExtension(WalletExtension extension, byte[] data) throws Exception { lock.lock(); keyChainGroupLock.lock(); try { // This method exists partly to establish a lock ordering of wallet > extension. extension.deserializeWalletExtension(this, data); extensions.put(extension.getWalletExtensionID(), extension); } catch (Throwable throwable) { log.error("Error during extension deserialization", throwable); extensions.remove(extension.getWalletExtensionID()); Throwables.propagate(throwable); } finally { keyChainGroupLock.unlock(); lock.unlock(); } }
/** * Deserialize the wallet extension with the supplied data and then install it, replacing any existing extension * that may have existed with the same ID. If an exception is thrown then the extension is removed from the wallet, * if already present. */ public void deserializeExtension(WalletExtension extension, byte[] data) throws Exception { lock.lock(); keyChainGroupLock.lock(); try { // This method exists partly to establish a lock ordering of wallet > extension. extension.deserializeWalletExtension(this, data); extensions.put(extension.getWalletExtensionID(), extension); } catch (Throwable throwable) { log.error("Error during extension deserialization", throwable); extensions.remove(extension.getWalletExtensionID()); Throwables.propagate(throwable); } finally { keyChainGroupLock.unlock(); lock.unlock(); } }
/** * Deserialize the wallet extension with the supplied data and then install it, replacing any existing extension * that may have existed with the same ID. If an exception is thrown then the extension is removed from the wallet, * if already present. */ public void deserializeExtension(WalletExtension extension, byte[] data) throws Exception { lock.lock(); keyChainGroupLock.lock(); try { // This method exists partly to establish a lock ordering of wallet > extension. extension.deserializeWalletExtension(this, data); extensions.put(extension.getWalletExtensionID(), extension); } catch (Throwable throwable) { log.error("Error during extension deserialization", throwable); extensions.remove(extension.getWalletExtensionID()); Throwables.propagate(throwable); } finally { keyChainGroupLock.unlock(); lock.unlock(); } }
/** * Deserialize the wallet extension with the supplied data and then install it, replacing any existing extension * that may have existed with the same ID. If an exception is thrown then the extension is removed from the wallet, * if already present. */ public void deserializeExtension(WalletExtension extension, byte[] data) throws Exception { lock.lock(); keyChainGroupLock.lock(); try { // This method exists partly to establish a lock ordering of wallet > extension. extension.deserializeWalletExtension(this, data); extensions.put(extension.getWalletExtensionID(), extension); } catch (Throwable throwable) { log.error("Error during extension deserialization", throwable); extensions.remove(extension.getWalletExtensionID()); Throwables.propagate(throwable); } finally { keyChainGroupLock.unlock(); lock.unlock(); } }