diff options
author | Koushik Dutta <koushd@gmail.com> | 2015-03-16 16:16:11 -0700 |
---|---|---|
committer | Koushik Dutta <koushd@gmail.com> | 2015-03-16 16:16:11 -0700 |
commit | 904fe689364b0ad25a7a7ce531230ef18de61bc8 (patch) | |
tree | 793707f7b7d62b7f4f714738dfa802ae64e6c3db | |
parent | aabefa293391d35e112c6f14f7a53ef5e2259956 (diff) | |
download | AndroidAsync-904fe689364b0ad25a7a7ce531230ef18de61bc8.tar.gz AndroidAsync-904fe689364b0ad25a7a7ce531230ef18de61bc8.tar.bz2 AndroidAsync-904fe689364b0ad25a7a7ce531230ef18de61bc8.zip |
Another approach to the message digest fix.
Keep a static instance
Wrap in synchronized block
Reset on every use
-rw-r--r-- | AndroidAsync/src/com/koushikdutta/async/util/FileCache.java | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/AndroidAsync/src/com/koushikdutta/async/util/FileCache.java b/AndroidAsync/src/com/koushikdutta/async/util/FileCache.java index d117108..0d20462 100644 --- a/AndroidAsync/src/com/koushikdutta/async/util/FileCache.java +++ b/AndroidAsync/src/com/koushikdutta/async/util/FileCache.java @@ -62,18 +62,24 @@ public class FileCache { return null; } - public static String toKeyString(Object... parts) { - MessageDigest messageDigest; - synchronized (FileCache.class) { - try { - messageDigest = MessageDigest.getInstance(hashAlgorithm); - } catch (NoSuchAlgorithmException e) { - messageDigest = findAlternativeMessageDigest(); - if (null == messageDigest) - throw new RuntimeException(e); - } + static MessageDigest messageDigest; + static { + try { + messageDigest = MessageDigest.getInstance(hashAlgorithm); + } catch (NoSuchAlgorithmException e) { + messageDigest = findAlternativeMessageDigest(); + if (null == messageDigest) + throw new RuntimeException(e); + } + try { + messageDigest = (MessageDigest)messageDigest.clone(); + } + catch (CloneNotSupportedException e) { } + } + public static synchronized String toKeyString(Object... parts) { + messageDigest.reset(); for (Object part : parts) { messageDigest.update(part.toString().getBytes()); } |