arminw
Mon, 28 Jan 2008 17:56:23 -0800
Author: arminw Date: Mon Jan 28 17:55:58 2008 New Revision: 616136 URL: http://svn.apache.org/viewvc?rev=616136&view=rev Log: minor improvement, avoid needless code within sync blocks Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/cache/ObjectCacheDefaultImpl.java Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/cache/ObjectCacheDefaultImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/cache/ObjectCacheDefaultImpl.java?rev=616136&r1=616135&r2=616136&view=diff ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/cache/ObjectCacheDefaultImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/cache/ObjectCacheDefaultImpl.java Mon Jan 28 17:55:58 2008 @@ -219,10 +219,12 @@ if((obj != null)) { traceIdentity(oid); + Object key = buildKey(oid); + CacheEntry entry = buildEntry(obj, oid); + if(log.isDebugEnabled()) log.debug("Cache object " + oid); synchronized(lock) { - if(log.isDebugEnabled()) log.debug("Cache object " + oid); - objectTable.put(buildKey(oid), buildEntry(obj, oid)); + objectTable.put(key, entry); } } } @@ -239,14 +241,15 @@ public boolean cacheIfNew(Identity oid, Object obj) { - //processQueue(); boolean result = false; Object key = buildKey(oid); if((obj != null)) { - synchronized(objectTable) + CacheEntry entry; + synchronized(lock) { - if(!objectTable.containsKey(key)) + entry = (CacheEntry) objectTable.get(key); + if(entry == null || entry.get() == null) { objectTable.put(key, buildEntry(obj, oid)); result = true; @@ -307,12 +310,13 @@ //processQueue(); if(oid != null) { + if(log.isDebugEnabled()) log.debug("Remove object " + oid); removeTracedIdentity(oid); + Object key = buildKey(oid); synchronized(lock) { - objectTable.remove(buildKey(oid)); + objectTable.remove(key); } - if(log.isDebugEnabled()) log.debug("Remove object " + oid); } } @@ -347,9 +351,10 @@ for(Iterator iterator = identitiesInWork.iterator(); iterator.hasNext();) { oid = (Identity) iterator.next(); + Object key = buildKey(oid); synchronized(lock) { - objectTable.remove(buildKey(oid)); + objectTable.remove(key); } } } @@ -413,7 +418,6 @@ private void processQueue() { - // TODO: check this code block. if(counter++ > 500) { counter = 0; @@ -422,7 +426,6 @@ CacheEntry sv; while((sv = (CacheEntry) queue.poll()) != null) { - removeTracedIdentity(sv.getOid()); objectTable.remove(buildKey(sv.getOid())); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]