Author: aadamchik
Date: Tue May 23 21:51:00 2006
New Revision: 409070
URL: http://svn.apache.org/viewvc?rev=409070&view=rev
Log:
caching state in a local var - this method is called in the loop when the
objects are fetched, thus its impact registers in the query profile
Modified:
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/access/DataContext.java
Modified:
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/access/DataContext.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/access/DataContext.java?rev=409070&r1=409069&r2=409070&view=diff
==============================================================================
---
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/access/DataContext.java
(original)
+++
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/access/DataContext.java
Tue May 23 21:51:00 2006
@@ -1914,10 +1914,12 @@
// merge into an existing object
if (cachedObject != null) {
+ int state = cachedObject.getPersistenceState();
+
// TODO: Andrus, 1/24/2006 implement smart merge for modified
objects...
if (cachedObject != prototype
- && cachedObject.getPersistenceState() !=
PersistenceState.MODIFIED
- && cachedObject.getPersistenceState() !=
PersistenceState.DELETED) {
+ && state != PersistenceState.MODIFIED
+ && state != PersistenceState.DELETED) {
descriptor.injectValueHolders(cachedObject);
@@ -1926,7 +1928,7 @@
descriptor.shallowMerge(prototype, cachedObject);
- if (cachedObject.getPersistenceState() ==
PersistenceState.HOLLOW) {
+ if (state == PersistenceState.HOLLOW) {
cachedObject.setPersistenceState(PersistenceState.COMMITTED);
}
}