diff --git a/source/net/filebot/Cache.java b/source/net/filebot/Cache.java index 6c9dc2ff..11a18310 100644 --- a/source/net/filebot/Cache.java +++ b/source/net/filebot/Cache.java @@ -128,8 +128,13 @@ public class Cache { } } + @Override + public String toString() { + return cache.getName(); + } + public static Predicate isStale(Duration expirationTime) { - return (element) -> System.currentTimeMillis() - element.getLatestOfCreationAndUpdateTime() > expirationTime.toMillis(); + return element -> System.currentTimeMillis() - element.getLatestOfCreationAndUpdateTime() > expirationTime.toMillis(); } @FunctionalInterface diff --git a/source/net/filebot/CachedResource.java b/source/net/filebot/CachedResource.java index 5f43762d..748274fc 100644 --- a/source/net/filebot/CachedResource.java +++ b/source/net/filebot/CachedResource.java @@ -107,7 +107,11 @@ public class CachedResource implements Resource { } }); - return cast.transform(value); + try { + return cast.transform(value); + } catch (Exception e) { + throw new IllegalStateException(String.format("Failed to cast cached value: %s => %s (%s)", key, value, cache), e); + } } protected T retry(Callable callable, int retryCount, Duration retryWaitTime) throws Exception { @@ -134,7 +138,7 @@ public class CachedResource implements Resource { } public static Transform getBytes() { - return (data) -> { + return data -> { byte[] bytes = new byte[data.remaining()]; data.get(bytes, 0, bytes.length); return bytes; @@ -142,7 +146,7 @@ public class CachedResource implements Resource { } public static Transform getBytes(Transform decompressor) { - return (data) -> { + return data -> { ByteBufferOutputStream buffer = new ByteBufferOutputStream(data.remaining()); try (InputStream in = decompressor.transform(new ByteBufferInputStream(data))) { buffer.transferFully(in); @@ -154,11 +158,11 @@ public class CachedResource implements Resource { } public static Transform getText(Charset charset) { - return (data) -> charset.decode(data).toString(); + return data -> charset.decode(data).toString(); } public static Transform validateXml(Transform parse) { - return (object) -> { + return object -> { String xml = parse.transform(object); WebRequest.validateXml(xml); return xml; @@ -166,7 +170,7 @@ public class CachedResource implements Resource { } public static Transform validateJson(Transform parse) { - return (object) -> { + return object -> { String json = parse.transform(object); JsonUtilities.readJson(json); return json; @@ -174,13 +178,13 @@ public class CachedResource implements Resource { } public static Transform getXml(Transform parse) { - return (object) -> { + return object -> { return WebRequest.getDocument(parse.transform(object)); }; } public static Transform getJson(Transform parse) { - return (object) -> { + return object -> { return JsonUtilities.readJson(parse.transform(object)); }; } @@ -238,7 +242,7 @@ public class CachedResource implements Resource { } private static Consumer>> storeETag(URL url, BiConsumer etagStore, Predicate etagFilter) { - return (responseHeaders) -> { + return responseHeaders -> { WebRequest.getETag(responseHeaders).filter(etagFilter).ifPresent(etag -> { debug.finest(format("Store ETag: %s", etag)); etagStore.accept(url, etag);