diff options
author | Christopher Vogt <oss.nsp@cvogt.org> | 2017-02-09 21:20:11 -0500 |
---|---|---|
committer | Christopher Vogt <oss.nsp@cvogt.org> | 2017-02-09 22:43:00 -0500 |
commit | e8673866b79f7473391dcee26243eee80d5d3cb6 (patch) | |
tree | 16146affeebdb58cd302a1f8527220c906818c96 /nailgun_launcher/CbtURLClassLoader.java | |
parent | bee13ba7a4458482ce00a5c6bae4cd64328c4e5e (diff) | |
download | cbt-e8673866b79f7473391dcee26243eee80d5d3cb6.tar.gz cbt-e8673866b79f7473391dcee26243eee80d5d3cb6.tar.bz2 cbt-e8673866b79f7473391dcee26243eee80d5d3cb6.zip |
idempotent change propagation
using lastModified instead of a non-idempotent needsUpdate flag
this fixes a bug where dependees would not be rebuilt if cbt exited
or was killed after dependencies were already rebuilt.
Diffstat (limited to 'nailgun_launcher/CbtURLClassLoader.java')
-rw-r--r-- | nailgun_launcher/CbtURLClassLoader.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/nailgun_launcher/CbtURLClassLoader.java b/nailgun_launcher/CbtURLClassLoader.java index 43d07f4..fac7050 100644 --- a/nailgun_launcher/CbtURLClassLoader.java +++ b/nailgun_launcher/CbtURLClassLoader.java @@ -15,7 +15,7 @@ public class CbtURLClassLoader extends java.net.URLClassLoader{ + "\n)" ); } - JavaCache<Class> cache = new JavaCache<Class>( new ConcurrentHashMap<Object,Object>() ); + ConcurrentHashMap<String,Class> cache = new ConcurrentHashMap<String,Class>(); public Class loadClass(String name) throws ClassNotFoundException{ Class _class = super.loadClass(name); if(_class == null) throw new ClassNotFoundException(name); @@ -24,11 +24,11 @@ public class CbtURLClassLoader extends java.net.URLClassLoader{ public Class loadClass(String name, Boolean resolve) throws ClassNotFoundException{ //System.out.println("loadClass("+name+") on \n"+this); synchronized( cache ){ - if(!cache.contains(name)) + if(!cache.containsKey(name)) try{ - cache.put(super.loadClass(name, resolve), name); + cache.put(name, super.loadClass(name, resolve)); } catch (ClassNotFoundException e){ - cache.put(Object.class, name); + cache.put(name, Object.class); } Class _class = cache.get(name); if(_class == Object.class){ |