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);
           }
  
  
  

Reply via email to