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 ol...@apache.org on 2004/01/05 02:10:09 UTC
cvs commit: db-ojb/src/java/org/apache/ojb/broker/core QueryReferenceBroker.java
olegnitz 2004/01/04 17:10:09
Modified: src/java/org/apache/ojb/broker/core
QueryReferenceBroker.java
Log:
Fixed bug: materialization listeners for proxy prefetching were not removed
during transaction commit (thanks to Andy Malakov for finding it)
Revision Changes Path
1.7 +17 -15 db-ojb/src/java/org/apache/ojb/broker/core/QueryReferenceBroker.java
Index: QueryReferenceBroker.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/core/QueryReferenceBroker.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- QueryReferenceBroker.java 30 Dec 2003 21:09:19 -0000 1.6
+++ QueryReferenceBroker.java 5 Jan 2004 01:10:09 -0000 1.7
@@ -171,9 +171,8 @@
&& (cld.getProxyPrefetchingLimit() > 0)
&& addRetrievalTask(candidate, this))
{
- handler.addListener(
- new PBMaterializationListener(m_retrievalTasks, this,
- cld.getProxyPrefetchingLimit()));
+ new PBMaterializationListener(handler, m_retrievalTasks,
+ this, cld.getProxyPrefetchingLimit());
}
}
}
@@ -312,7 +311,7 @@
continue;
}
- prefetcher = RelationshipPrefetcherFactory.createRelationshipPrefetcher(pb, ord);
+ prefetcher = RelationshipPrefetcherFactory.createRelationshipPrefetcher(pb, ord);
prefetcher.prefetchRelationship(owners);
it.remove();
}
@@ -372,8 +371,8 @@
if ((handler != null)
&& addRetrievalTask(obj, rds))
{
- handler.addListener(
- new PBMaterializationListener(m_retrievalTasks, rds, rds.getProxyPrefetchingLimit()));
+ new PBMaterializationListener(handler, m_retrievalTasks,
+ rds, rds.getProxyPrefetchingLimit());
}
}
}
@@ -546,9 +545,8 @@
{
if (addRetrievalTask(obj, cds))
{
- ((CollectionProxy) value).addListener(
- new PBCollectionProxyListener(m_retrievalTasks, cds,
- cds.getProxyPrefetchingLimit()));
+ new PBCollectionProxyListener((CollectionProxy) value,
+ m_retrievalTasks, cds, cds.getProxyPrefetchingLimit());
}
}
}
@@ -728,9 +726,10 @@
{
private IndirectionHandler _listenedHandler;
- PBMaterializationListener(HashMap retrievalTasks, Object key, int limit)
+ PBMaterializationListener(IndirectionHandler listenedHandler,
+ HashMap retrievalTasks, Object key, int limit)
{
- super(retrievalTasks, key, limit);
+ super(listenedHandler, retrievalTasks, key, limit);
}
protected void addThisListenerTo(Object listenedObject)
@@ -783,7 +782,8 @@
private int _limit;
protected Object _key;
- PBPrefetchingListener(HashMap retrievalTasks, Object key, int limit)
+ PBPrefetchingListener(Object listenedObject, HashMap retrievalTasks,
+ Object key, int limit)
{
_retrievalTasks = retrievalTasks;
_key = key;
@@ -792,6 +792,7 @@
{
prefetchingListeners = new ArrayList();
}
+ addThisListenerTo(listenedObject);
prefetchingListeners.add(this);
}
@@ -859,9 +860,10 @@
{
CollectionProxy _listenedCollection;
- PBCollectionProxyListener(HashMap retrievalTasks, CollectionDescriptor key, int limit)
+ PBCollectionProxyListener(CollectionProxy listenedCollection,
+ HashMap retrievalTasks, CollectionDescriptor key, int limit)
{
- super(retrievalTasks, key, limit);
+ super(listenedCollection, retrievalTasks, key, limit);
}
protected void addThisListenerTo(Object listenedObject)
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org