Skip to content

Commit aabefa2

Browse files
committed
Revert "fix issue 461"
This reverts commit 98a9d50.
1 parent 4b12f4b commit aabefa2

2 files changed

Lines changed: 17 additions & 36 deletions

File tree

AndroidAsync/src/com/koushikdutta/async/http/cache/ResponseCacheMiddleware.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public Cancellable getSocket(final GetSocketData data) {
104104
return null;
105105
}
106106

107-
String key = cache.toKeyString(data.request.getUri());
107+
String key = FileCache.toKeyString(data.request.getUri());
108108
FileInputStream[] snapshot = null;
109109
long contentLength;
110110
Entry entry;
@@ -267,7 +267,7 @@ public void onBodyDecoder(OnBodyDataOnRequestSentData data) {
267267
return;
268268
}
269269

270-
String key = cache.toKeyString(data.request.getUri());
270+
String key = FileCache.toKeyString(data.request.getUri());
271271
RawHeaders varyHeaders = requestHeaders.getHeaders().getAll(networkResponse.getVaryFields());
272272
Entry entry = new Entry(data.request.getUri(), varyHeaders, data.request, networkResponse.getHeaders());
273273
BodyCacher cacher = new BodyCacher();

AndroidAsync/src/com/koushikdutta/async/util/FileCache.java

Lines changed: 15 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@
1919
* Created by koush on 4/12/14.
2020
*/
2121
public class FileCache {
22-
23-
private MessageDigest messageDigest;
24-
2522
class CacheEntry {
2623
final long size;
2724
public CacheEntry(File file) {
@@ -65,16 +62,23 @@ private static MessageDigest findAlternativeMessageDigest() {
6562
return null;
6663
}
6764

68-
public String toKeyString(Object... parts) {
69-
synchronized (FileCache.class) { // I spreaded synchronized block to whole method to assure
70-
// that only one thread deals with our copy of MessageDigest
71-
// instance
72-
for (Object part : parts) {
73-
messageDigest.update(part.toString().getBytes());
65+
public static String toKeyString(Object... parts) {
66+
MessageDigest messageDigest;
67+
synchronized (FileCache.class) {
68+
try {
69+
messageDigest = MessageDigest.getInstance(hashAlgorithm);
70+
} catch (NoSuchAlgorithmException e) {
71+
messageDigest = findAlternativeMessageDigest();
72+
if (null == messageDigest)
73+
throw new RuntimeException(e);
7474
}
75-
byte[] md5bytes = messageDigest.digest();
76-
return new BigInteger(1, md5bytes).toString(16);
7775
}
76+
77+
for (Object part : parts) {
78+
messageDigest.update(part.toString().getBytes());
79+
}
80+
byte[] md5bytes = messageDigest.digest();
81+
return new BigInteger(1, md5bytes).toString(16);
7882
}
7983

8084
boolean loadAsync;
@@ -271,33 +275,10 @@ public FileCache(File directory, long size, boolean loadAsync) {
271275
this.loadAsync = loadAsync;
272276
cache = new InternalCache();
273277

274-
try {
275-
messageDigest = (MessageDigest) MessageDigest.getInstance(hashAlgorithm);
276-
cloneMessageDigest(messageDigest);
277-
} catch (NoSuchAlgorithmException e1) {
278-
messageDigest = findAlternativeMessageDigest();
279-
if (null == messageDigest)
280-
throw new RuntimeException(e1);
281-
cloneMessageDigest(messageDigest);
282-
}
283-
284278
directory.mkdirs();
285279
doLoad();
286280
}
287281

288-
// taken from https://github.com/candrews/HttpResponseCache/commit/a93c92d1d8b87778ac7bb2fa2fe2759e7ca06219
289-
private void cloneMessageDigest(MessageDigest messageDigest){
290-
try {
291-
// clone the messageDigest instance as a workaround for
292-
// java.security.MessageDigest.getInstance(String) not being thread safe in Android
293-
// see https://code.google.com/p/android/issues/detail?id=37937
294-
messageDigest = (MessageDigest) messageDigest.clone();
295-
} catch (CloneNotSupportedException e) {
296-
// ignore the exception and use the original messageDigest.
297-
// hopefully whatever platform we're on doesn't have the bug that requires the cloning workaround
298-
}
299-
}
300-
301282
public long size() {
302283
return cache.size();
303284
}

0 commit comments

Comments
 (0)