X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Flibrary%2FCacheLibrary.java;h=a3c3b5e3b7bb6f5a61962e8837158e28692feb56;hb=4d9e85d00d491422eb436d05b5de5af0cb326cdb;hp=23f19a9ed323de88cb2202c6cde7462bf53219de;hpb=67b8ce74c4277c894aba234a7a493a93f6225a69;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/library/CacheLibrary.java b/src/be/nikiroo/fanfix/library/CacheLibrary.java index 23f19a9..a3c3b5e 100644 --- a/src/be/nikiroo/fanfix/library/CacheLibrary.java +++ b/src/be/nikiroo/fanfix/library/CacheLibrary.java @@ -67,6 +67,7 @@ public class CacheLibrary extends BasicLibrary { pg = new Progress(); } + List copy; synchronized (metasLock) { // We make sure that cached metas have precedence if (metasMixed == null) { @@ -86,10 +87,12 @@ public class CacheLibrary extends BasicLibrary { } } } + + copy = new ArrayList(metasMixed); } pg.done(); - return new ArrayList(metasMixed); + return copy; } @Override @@ -326,7 +329,7 @@ public class CacheLibrary extends BasicLibrary { } @Override - public void delete(String luid) throws IOException { + public synchronized void delete(String luid) throws IOException { if (isCached(luid)) { cacheLib.delete(luid); } @@ -404,9 +407,7 @@ public class CacheLibrary extends BasicLibrary { MetaData meta = lib.imprt(url, pgImprt); updateMetaCache(metasReal, meta); - synchronized (metasLock) { - metasMixed = null; - } + metasMixed = null; clearFromCache(meta.getLuid());