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 2007/05/16 01:01:57 UTC
svn commit: r538364 - in
/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker:
accesslayer/RsIterator.java cache/ObjectCacheDefaultImpl.java
Author: arminw
Date: Tue May 15 16:01:56 2007
New Revision: 538364
URL: http://svn.apache.org/viewvc?view=rev&rev=538364
Log:
optimize source
Modified:
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/RsIterator.java
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/accesslayer/RsIterator.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/RsIterator.java?view=diff&rev=538364&r1=538363&r2=538364
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/RsIterator.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/RsIterator.java Tue May 15 16:01:56 2007
@@ -158,21 +158,21 @@
*/
public RsIterator(RsQueryObject queryObject, final PersistenceBrokerImpl broker)
{
- setCache(broker.getInternalCache());
- setRow(new HashMap());
- setBroker(broker);
- setQueryObject(queryObject);
+ m_cache = broker.getInternalCache();
+ m_row = new HashMap();
+ m_broker = broker;
+ m_queryObject = queryObject;
if(queryObject.getClassDescriptor() != null)
{
Class classToPrefetch = broker.getReferenceBroker().getClassToPrefetch();
if ((classToPrefetch != null) && classToPrefetch.isAssignableFrom(queryObject.getClassDescriptor().getClassOfObject()))
{
- setItemProxyClass(null);
+ m_itemProxyClass = null;
}
else
{
- setItemProxyClass(queryObject.getClassDescriptor().getProxyClass());
+ m_itemProxyClass = queryObject.getClassDescriptor().getProxyClass();
}
}
@@ -181,7 +181,7 @@
* events and set the target object on every use TODO: Find a better
* solution
*/
- setAfterLookupEvent(new PBLifeCycleEvent(getBroker(), PBLifeCycleEvent.Type.AFTER_LOOKUP));
+ afterLookupEvent = new PBLifeCycleEvent(getBroker(), PBLifeCycleEvent.Type.AFTER_LOOKUP);
try
{
@@ -215,7 +215,7 @@
{
if (m_itemTopLevelClass == null)
{
- m_itemTopLevelClass = getQueryObject().getClassDescriptor().getTopLevelClass();
+ m_itemTopLevelClass = m_queryObject.getClassDescriptor().getTopLevelClass();
}
return m_itemTopLevelClass;
}
@@ -228,12 +228,12 @@
{
try
{
- if (!isHasCalledCheck())
+ if (!m_hasCalledCheck)
{
- setHasCalledCheck(true);
- setHasNext(getRsAndStmt().m_rs.next());
+ m_hasCalledCheck = true;
+ hasNext = getRsAndStmt().m_rs.next();
m_current_row++;
- if (!getHasNext())
+ if (!hasNext)
{
autoReleaseDbResources();
}
@@ -241,7 +241,7 @@
}
catch (Exception ex)
{
- setHasNext(false);
+ hasNext = false;
autoReleaseDbResources();
if(ex instanceof ResourceClosedException)
{
@@ -257,9 +257,9 @@
}
}
if (logger.isDebugEnabled())
- logger.debug("hasNext() -> " + getHasNext());
+ logger.debug("hasNext() -> " + hasNext);
- return getHasNext();
+ return hasNext;
}
/**
@@ -270,12 +270,12 @@
{
try
{
- if (!isHasCalledCheck())
+ if (!m_hasCalledCheck)
{
hasNext();
}
- setHasCalledCheck(false);
- if (getHasNext())
+ m_hasCalledCheck = false;
+ if (hasNext)
{
Object obj = getObjectFromResultSet();
//m_current_row++;
@@ -284,9 +284,9 @@
// set target object
if (!disableLifeCycleEvents)
{
- getAfterLookupEvent().setTarget(obj);
- getBroker().fireBrokerEvent(getAfterLookupEvent());
- getAfterLookupEvent().setTarget(null);
+ afterLookupEvent.setTarget(obj);
+ getBroker().fireBrokerEvent(afterLookupEvent);
+ afterLookupEvent.setTarget(null);
}
return obj;
}
@@ -352,7 +352,7 @@
}
// prevent releasing of DBResources
- setInBatchedMode(true);
+ m_inBatchedMode = true;
prefetchedRel = query.getPrefetchedRelationships();
prefetchers = new RelationshipPrefetcher[prefetchedRel.size()];
@@ -362,7 +362,7 @@
{
relName = (String) prefetchedRel.get(i);
prefetchers[i] = getBroker().getRelationshipPrefetcherFactory()
- .createRelationshipPrefetcher(getQueryObject().getClassDescriptor(), relName);
+ .createRelationshipPrefetcher(m_queryObject.getClassDescriptor(), relName);
prefetchers[i].prepareRelationshipSettings();
}
@@ -390,8 +390,8 @@
logger.error("beforeFirst failed !", e);
}
- setInBatchedMode(false);
- setHasCalledCheck(false);
+ m_inBatchedMode = false;
+ m_hasCalledCheck = false;
}
/**
@@ -401,18 +401,18 @@
{
// fill primary key values from Resultset
FieldDescriptor fld;
- FieldDescriptor[] pkFields = getQueryObject().getClassDescriptor().getPkFields();
+ FieldDescriptor[] pkFields = m_queryObject.getClassDescriptor().getPkFields();
Object[] pkValues = new Object[pkFields.length];
for (int i = 0; i < pkFields.length; i++)
{
fld = pkFields[i];
- pkValues[i] = getRow().get(fld.getColumnName());
+ pkValues[i] = m_row.get(fld.getColumnName());
}
// return identity object build up from primary keys
return getBroker().serviceIdentity().buildIdentity(
- getQueryObject().getClassDescriptor().getClassOfObject(), getTopLevelClass(), pkValues);
+ m_queryObject.getClassDescriptor().getClassOfObject(), getTopLevelClass(), pkValues);
}
/**
@@ -423,7 +423,7 @@
*/
protected Object getObjectFromResultSet() throws PersistenceBrokerException
{
- Map row = getRow();
+ Map row = m_row;
PersistenceBrokerInternal pb = getBroker();
row.clear();
/**
@@ -436,12 +436,12 @@
* itemProxyClass should NOT be a member variable.
*/
- RowReader rowReader = getQueryObject().getClassDescriptor().getRowReader();
+ RowReader rowReader = m_queryObject.getClassDescriptor().getRowReader();
// in any case we need the PK values of result set row
// provide m_row with primary key data of current row
rowReader.readPkValuesFrom(getRsAndStmt(), row);
- if (getItemProxyClass() != null)
+ if (m_itemProxyClass != null)
{
// assert: m_row is filled with primary key values from db
return getProxyFromResultSet();
@@ -453,7 +453,7 @@
Object result;
// 2. check if Object is in cache. if so return cached version.
- result = getCache().lookup(oid);
+ result = m_cache.lookup(oid);
if (result == null)
{
@@ -472,10 +472,10 @@
*/
synchronized (result)
{
- getCache().enableMaterializationCache();
+ m_cache.enableMaterializationCache();
try
{
- getCache().doInternalCache(oid, result, ObjectCacheInternal.TYPE_NEW_MATERIALIZED);
+ m_cache.doInternalCache(oid, result, ObjectCacheInternal.TYPE_NEW_MATERIALIZED);
/**
* MBAIRD if you have multiple classes mapped to a
* table, and you query on the base class you could get
@@ -490,12 +490,12 @@
pb.getReferenceBroker().retrieveReferences(result, cld, false);
pb.getReferenceBroker().retrieveCollections(result, cld, false);
- getCache().disableMaterializationCache();
+ m_cache.disableMaterializationCache();
}
catch(RuntimeException e)
{
// catch runtime exc. to guarantee clearing of internal buffer on failure
- getCache().doLocalClear();
+ m_cache.doLocalClear();
throw e;
}
}
@@ -554,7 +554,7 @@
Identity oid = getIdentityFromResultSet();
// 2. return a Proxy instance:
- return getBroker().createProxy(getItemProxyClass(), oid);
+ return getBroker().createProxy(m_itemProxyClass, oid);
}
/**
@@ -579,9 +579,9 @@
*/
protected int countedSize() throws PersistenceBrokerException
{
- Query countQuery = getBroker().serviceBrokerHelper().getCountQuery(getQueryObject().getQuery());
+ Query countQuery = getBroker().serviceBrokerHelper().getCountQuery(m_queryObject.getQuery());
ResultSetAndStatement rsStmt;
- ClassDescriptor cld = getQueryObject().getClassDescriptor();
+ ClassDescriptor cld = m_queryObject.getClassDescriptor();
int count = 0;
// BRJ: do not use broker.getCount() because it's extent-aware
@@ -728,9 +728,9 @@
if(row == -1)
{
int size = size();
- if(getQueryObject().usePaging())
+ if(m_queryObject.usePaging())
{
- int span = getQueryObject().getEndIndex() + 1 - getQueryObject().getStartIndex();
+ int span = m_queryObject.getEndIndex() + 1 - m_queryObject.getStartIndex();
if(span < size)
{
size = span;
@@ -749,15 +749,15 @@
if(retval) m_current_row++;
else break;
}
- setHasCalledCheck(true);
- setHasNext(retval);
+ m_hasCalledCheck = true;
+ hasNext = retval;
if(!retval) autoReleaseDbResources();
System.out.println("result: " + getRsAndStmt().m_rs.getString(1) +", "+ getRsAndStmt().m_rs.getString("Lagerbestand"));
}
catch (Exception ex)
{
- setHasCalledCheck(true);
- setHasNext(false);
+ m_hasCalledCheck = true;
+ hasNext = false;
retval = false;
autoReleaseDbResources();
}
@@ -795,8 +795,8 @@
retval = getRsAndStmt().m_rs.absolute(row);
}
if(retval) m_current_row = row;
- setHasCalledCheck(retval);
- setHasNext(retval);
+ m_hasCalledCheck = retval;
+ hasNext = retval;
}
}
catch (SQLException e)
@@ -860,7 +860,7 @@
void release(boolean removeResourceListener)
{
- if (!isInBatchedMode()) // resources are reused in batched mode
+ if (!m_inBatchedMode) // resources are reused in batched mode
{
// If we haven't released resources yet, then do so.
if (!this.resourcesAreReleased)
@@ -976,7 +976,7 @@
*/
public ClassDescriptor getClassDescriptor()
{
- return getQueryObject().getClassDescriptor();
+ return m_queryObject.getClassDescriptor();
}
protected void setBroker(PersistenceBrokerImpl broker)
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?view=diff&rev=538364&r1=538363&r2=538364
==============================================================================
--- 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 Tue May 15 16:01:56 2007
@@ -18,11 +18,11 @@
import java.lang.ref.ReferenceQueue;
import java.lang.ref.SoftReference;
import java.util.ArrayList;
-import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.HashMap;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
@@ -137,7 +137,7 @@
/**
* static Map held all cached objects
*/
- protected static final Map objectTable = new Hashtable();
+ protected static final Map objectTable = new HashMap();
private static final Object lock = new Object();
private static final ReferenceQueue queue = new ReferenceQueue();
private volatile static short counter;
@@ -201,7 +201,10 @@
public void clear()
{
//processQueue();
- objectTable.clear();
+ synchronized(lock)
+ {
+ objectTable.clear();
+ }
if(identitiesInWork.size() > 0) identitiesInWork.clear();
}
@@ -211,7 +214,7 @@
if((obj != null))
{
traceIdentity(oid);
- synchronized(objectTable)
+ synchronized(lock)
{
if(log.isDebugEnabled()) log.debug("Cache object " + oid);
objectTable.put(buildKey(oid), buildEntry(obj, oid));
@@ -300,7 +303,10 @@
if(oid != null)
{
removeTracedIdentity(oid);
- objectTable.remove(buildKey(oid));
+ synchronized(lock)
+ {
+ objectTable.remove(buildKey(oid));
+ }
if(log.isDebugEnabled()) log.debug("Remove object " + oid);
}
}
@@ -308,7 +314,7 @@
public String toString()
{
ToStringBuilder buf = new ToStringBuilder(this, ToStringStyle.DEFAULT_STYLE);
- buf.append("Count of cached objects", objectTable.keySet().size());
+ buf.append("Count of cached objects", objectTable.size());
buf.append("Lookup hits", hitCount);
buf.append("Failures", failCount);
buf.append("Reclaimed", gcCount);
@@ -336,7 +342,10 @@
for(Iterator iterator = identitiesInWork.iterator(); iterator.hasNext();)
{
oid = (Identity) iterator.next();
- objectTable.remove(buildKey(oid));
+ synchronized(lock)
+ {
+ objectTable.remove(buildKey(oid));
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org