You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2008/01/29 02:55:59 UTC
svn commit: r616136 -
/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/cache/ObjectCacheDefaultImpl.java
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: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org