From 3f12f5cc45fda34d1a7595f25366c0049dc787a7 Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Fri, 29 Jan 2016 11:12:07 +0100 Subject: [PATCH] changed name of function to turn of GBC in DBBean and some refactoring in the GBC --- Zutil.jar | Bin 1191908 -> 1194886 bytes src/zutil/db/bean/DBBean.java | 6 +-- src/zutil/db/bean/DBBeanSQLResultHandler.java | 48 ++++++++++-------- 3 files changed, 29 insertions(+), 25 deletions(-) diff --git a/Zutil.jar b/Zutil.jar index 866b1250195f2883f6f0b6f68389faf93bba97ae..c3de400c046601d3c460130292f81b73f8e66080 100755 GIT binary patch delta 21332 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 WjFv}b5@r%Uzz`5fmqYMQ^#1|zgE~Y2 diff --git a/src/zutil/db/bean/DBBean.java b/src/zutil/db/bean/DBBean.java index ad75c8a..b127fb3 100755 --- a/src/zutil/db/bean/DBBean.java +++ b/src/zutil/db/bean/DBBean.java @@ -449,8 +449,8 @@ public abstract class DBBean { /** * This function cancels the internal cache garbage collector in DBBean */ - public static void cancelGBC(){ - DBBeanSQLResultHandler.cancelGBC(); + public static void enableBeanGBC(boolean enable){ + DBBeanSQLResultHandler.enableBeanGBC(enable); } @@ -461,5 +461,5 @@ public abstract class DBBean { /** * Will be called whenever the bean has been updated from the database. */ - protected void updatePerformed(){} + protected void postUpdateAction(){} } diff --git a/src/zutil/db/bean/DBBeanSQLResultHandler.java b/src/zutil/db/bean/DBBeanSQLResultHandler.java index f06c8dd..c58a921 100755 --- a/src/zutil/db/bean/DBBeanSQLResultHandler.java +++ b/src/zutil/db/bean/DBBeanSQLResultHandler.java @@ -116,20 +116,25 @@ public class DBBeanSQLResultHandler implements SQLResultHandler{ this.bean_config = DBBeanConfig.getBeanConfig( cl ); // Initiate DBBeanGarbageCollector - if( timer == null ){ - timer = new Timer( true ); // Run as daemon - timer.schedule( new DBBeanGarbageCollector(), 10000, CACHE_TTL ); - } + } /** * This function cancels the internal cache garbage collector in DBBean */ - public static void cancelGBC(){ - if( timer != null ){ - timer.cancel(); - timer = null; - } + public static void enableBeanGBC(boolean enable){ + if(enable){ + if( timer == null ){ + timer = new Timer( true ); // Run as daemon + timer.schedule( new DBBeanGarbageCollector(), 10000, CACHE_TTL*2 ); + } + } + else { + if (timer != null) { + timer.cancel(); + timer = null; + } + } } /** @@ -148,27 +153,26 @@ public class DBBeanSQLResultHandler implements SQLResultHandler{ int removed = 0; long time = System.currentTimeMillis(); - Object[] class_keys = cache.keySet().toArray(); - for(Object key : class_keys){ - if( key == null ) continue; + for(Object classKey : cache.keySet()){ + if( classKey == null ) continue; - Map class_cache = cache.get(key); - Object[] bean_keys = class_cache.keySet().toArray(); - for(Object sub_key : bean_keys){ - if( sub_key == null ) continue; + Map class_cache = cache.get(classKey); + for(Object objKey : class_cache.keySet()){ + if( objKey == null ) continue; - DBBeanCache beanCache = class_cache.get(sub_key); + DBBeanCache beanCache = class_cache.get(objKey); // Check if session is still valid - if( beanCache.timestamp + CACHE_TTL*2 < time ){ - class_cache.remove(sub_key); + if( beanCache.timestamp + CACHE_TTL < time ){ + class_cache.remove(objKey); removed++; - logger.finer("Removing old DBBean(id: "+beanCache.bean.getId()+") from cache."); + logger.finer("Removing old DBBean(class: "+beanCache.bean.getClass().getName() + +", id: "+beanCache.bean.getId()+") from cache."); } } } if( removed > 0 ) - logger.info("DBBeanGarbageCollector has cleared "+removed+" beans from cache."); + logger.info("DBBean GarbageCollector has cleared "+removed+" beans from cache."); } } @@ -281,7 +285,7 @@ public class DBBeanSQLResultHandler implements SQLResultHandler{ obj.processing_update = false; } - obj.updatePerformed(); + obj.postUpdateAction(); } /**