X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2FCache.java;h=6233082742606f72538fb5ccb2a3ffd4c64e9136;hp=ff2859eb44403062a5186abd78aa0233316a4926;hb=50df0f093afbc78a1d120bbc7c1233fa704688b1;hpb=7194ac50b29064a013f177fc9cfc5aaa131a8ec4 diff --git a/src/be/nikiroo/utils/Cache.java b/src/be/nikiroo/utils/Cache.java index ff2859e..6233082 100644 --- a/src/be/nikiroo/utils/Cache.java +++ b/src/be/nikiroo/utils/Cache.java @@ -281,13 +281,15 @@ public class Cache { * @param uniqueID * a unique ID used to locate the cached resource * + * @return the number of bytes written + * * @throws IOException * in case of I/O error */ - public void save(InputStream in, String uniqueID) throws IOException { + public long save(InputStream in, String uniqueID) throws IOException { File cached = getCached(uniqueID); cached.getParentFile().mkdirs(); - save(in, cached); + return save(in, cached); } /** @@ -298,12 +300,14 @@ public class Cache { * @param url * the {@link URL} used to locate the cached resource * + * @return the number of bytes written + * * @throws IOException * in case of I/O error */ - public void save(InputStream in, URL url) throws IOException { + public long save(InputStream in, URL url) throws IOException { File cached = getCached(url); - save(in, cached); + return save(in, cached); } /** @@ -316,13 +320,19 @@ public class Cache { * @param cached * the cached {@link File} to save to * + * @return the number of bytes written + * * @throws IOException * in case of I/O error */ - private void save(InputStream in, File cached) throws IOException { - // We delete AFTER so not to remove the subdir we will use... - IOUtils.write(in, cached); + private long save(InputStream in, File cached) throws IOException { + // We want to force at least an immediate SAVE/LOAD to work for some + // workflows, even if we don't accept cached files (times set to "0" + // -- and not "-1" or a positive value) clean(true, dir, 10); + cached.getParentFile().mkdirs(); // in case we deleted our own parent + long bytes = IOUtils.write(in, cached); + return bytes; } /**