You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2006/05/26 00:25:04 UTC
svn commit: r409489 -
/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/access/DataRowStore.java
Author: aadamchik
Date: Thu May 25 15:25:03 2006
New Revision: 409489
URL: http://svn.apache.org/viewvc?rev=409489&view=rev
Log:
Fixing even sender. Related to:
"CAY-525 - speeding up snapshot lookups when converting rows to objects on select"
Modified:
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/access/DataRowStore.java
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/access/DataRowStore.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/access/DataRowStore.java?rev=409489&r1=409488&r2=409489&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/access/DataRowStore.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/access/DataRowStore.java Thu May 25 15:25:03 2006
@@ -74,6 +74,7 @@
import org.objectstyle.cayenne.DataRow;
import org.objectstyle.cayenne.ObjectId;
import org.objectstyle.cayenne.PersistenceState;
+import org.objectstyle.cayenne.Persistent;
import org.objectstyle.cayenne.access.event.SnapshotEvent;
import org.objectstyle.cayenne.event.EventBridge;
import org.objectstyle.cayenne.event.EventBridgeFactory;
@@ -245,11 +246,11 @@
startListeners();
}
}
-
+
/**
* Updates cached snapshots for the list of objects.
*
- * @since 1.2
+ * @since 1.2
*/
void snapshotsUpdatedForObjects(List objects, List snapshots, boolean refresh) {
@@ -264,12 +265,13 @@
}
Map modified = null;
+ Object eventPostedBy = null;
synchronized (this) {
int size = objects.size();
for (int i = 0; i < size; i++) {
- DataObject object = (DataObject) objects.get(i);
+ Persistent object = (Persistent) objects.get(i);
// skip HOLLOW objects as they likely were created from partial snapshots
if (object.getPersistenceState() == PersistenceState.HOLLOW) {
@@ -288,8 +290,10 @@
if (cachedSnapshot != null) {
// use old snapshot if no changes occurred
- if (cachedSnapshot.equals(newSnapshot)) {
- object.setSnapshotVersion(cachedSnapshot.getVersion());
+ if (object instanceof DataObject
+ && cachedSnapshot.equals(newSnapshot)) {
+ ((DataObject) object).setSnapshotVersion(cachedSnapshot
+ .getVersion());
continue;
}
else {
@@ -299,6 +303,7 @@
if (modified == null) {
modified = new HashMap();
+ eventPostedBy = object.getObjectContext().getGraphManager();
}
modified.put(oid, newSnapshot);
@@ -307,7 +312,7 @@
if (modified != null) {
processSnapshotChanges(
- this,
+ eventPostedBy,
modified,
Collections.EMPTY_LIST,
Collections.EMPTY_LIST,