gdamour 2004/11/27 05:55:14
Modified: modules/openejb-builder/src/java/org/openejb/deployment
CMPContainerBuilder.java
Log:
CMR field accessors associated to virtual CMRField need to be filtered out
as the entity bean class does not define a getter and setter couple for them.
Revision Changes Path
1.3 +11 -2
openejb/modules/openejb-builder/src/java/org/openejb/deployment/CMPContainerBuilder.java
Index: CMPContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/CMPContainerBuilder.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- CMPContainerBuilder.java 11 Nov 2004 13:27:44 -0000 1.2
+++ CMPContainerBuilder.java 27 Nov 2004 10:55:12 -0000 1.3
@@ -299,7 +299,16 @@
Map instanceMap = null;
CMP1Bridge cmp1Bridge = null;
if (cmp2) {
- instanceMap = buildInstanceMap(beanClass, cmpFieldAccessors,
cmrFieldAccessors);
+ // filter out the accessors associated to virtual CMR fields.
+ LinkedHashMap existingCMRFieldAccessores = new
LinkedHashMap(cmrFieldAccessors);
+ for (Iterator iter =
existingCMRFieldAccessores.entrySet().iterator(); iter.hasNext();) {
+ Map.Entry entry = (Map.Entry) iter.next();
+ String name = (String) entry.getKey();
+ if ( ejb.getAssociationEnd(name).isVirtual() ) {
+ iter.remove();
+ }
+ }
+ instanceMap = buildInstanceMap(beanClass, cmpFieldAccessors,
existingCMRFieldAccessores);
} else {
cmp1Bridge = new CMP1Bridge(beanClass, cmpFieldAccessors);
}