aboutsummaryrefslogtreecommitdiffstats
path: root/AndroidAsync
diff options
context:
space:
mode:
authorKoushik Dutta <koushd@gmail.com>2015-03-16 16:16:11 -0700
committerKoushik Dutta <koushd@gmail.com>2015-03-16 16:16:11 -0700
commit904fe689364b0ad25a7a7ce531230ef18de61bc8 (patch)
tree793707f7b7d62b7f4f714738dfa802ae64e6c3db /AndroidAsync
parentaabefa293391d35e112c6f14f7a53ef5e2259956 (diff)
downloadAndroidAsync-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
Diffstat (limited to 'AndroidAsync')
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/util/FileCache.java26
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());
}