@Override public final void startUp() throws NoSuchAlgorithmException, IOException { keyGenerator = KeyGenerator.getInstance(keyAlgo); keyGenerator.init(keyLength); threadLocalMac = new ThreadLocal<Mac>() { @Override public Mac initialValue() { try { return Mac.getInstance(keyAlgo); } catch (NoSuchAlgorithmException nsae) { throw new IllegalArgumentException("Unknown algorithm for secret keys: " + keyAlgo); } } }; doInit(); }