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/10/15 03:38:17 UTC
svn commit: r464093 -
/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/CayenneDataObject.java
Author: aadamchik
Date: Sat Oct 14 18:38:15 2006
New Revision: 464093
URL: http://svn.apache.org/viewvc?view=rev&rev=464093
Log:
CAY-692: Extra argument needed in ObjectContext.prepareForAccess - whether the property is a fault or not.
(reverting CayenneDataObject back to its initial strategy of not relying on ObjectContext for fault resolving. This should provide better performance)
Modified:
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/CayenneDataObject.java
Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/CayenneDataObject.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/CayenneDataObject.java?view=diff&rev=464093&r1=464092&r2=464093
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/CayenneDataObject.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/CayenneDataObject.java Sat Oct 14 18:38:15 2006
@@ -191,15 +191,22 @@
return object;
}
- public Object readProperty(String propName) {
+ public Object readProperty(String propertyName) {
if (objectContext != null) {
+ // will resolve faults ourselves below as checking class descriptors for the
+ // "lazyFaulting" flag is inefficient. Passing "false" here to suppress fault
+ // processing
+ objectContext.prepareForAccess(this, propertyName, false);
+ }
+
+ Object object = readPropertyDirectly(propertyName);
- // TODO: andrus, 10/14/2006 - ensure "lazyFaulting" flag is not set to true if
- // this is a simple property to improve ObjectContext performance
- objectContext.prepareForAccess(this, propName, true);
+ if (object instanceof Fault) {
+ object = ((Fault) object).resolveFault(this, propertyName);
+ writePropertyDirectly(propertyName, object);
}
- return readPropertyDirectly(propName);
+ return object;
}
public Object readPropertyDirectly(String propName) {
@@ -208,12 +215,12 @@
public void writeProperty(String propName, Object val) {
if (objectContext != null) {
+ // pass "false" to avoid unneeded fault processing
+ objectContext.prepareForAccess(this, propName, false);
- // this calls "prepareForAccess" internally
- Object oldValue = readProperty(propName);
-
- // note how we notify DataContext of change BEFORE the object is actually
+ // note how we notify ObjectContext of change BEFORE the object is actually
// changed... this is needed to take a valid current snapshot
+ Object oldValue = readPropertyDirectly(propName);
objectContext.propertyChanged(this, propName, oldValue, val);
}