- 
        1. 50% performance hit in ClonedObjectResolver.resolveClonedsamkwitty May 9, 2011 6:56 PM (in response to samkwitty)Actually on a moderately loaded machine it is more like 70%. So no one knows what this code is all about? 
- 
        2. 50% performance hit in ClonedObjectResolver.resolveClonedjbalunas May 13, 2011 8:22 AM (in response to samkwitty)Hi Sam, Thanks for debugging the issue, and letting us know. Could you create a RichFaces jira https://issues.jboss.org/browse/RF to cover this issue and we'll review it closer. It looks like there could certainly be some optimizations here! Thanks, -Jay 
- 
        3. 50% performance hit in ClonedObjectResolver.resolveClonedalexsmirnov May 13, 2011 4:21 PM (in response to samkwitty)Good catch. I created JIRA issue for that https://issues.jboss.org/browse/RF-10987 , going to take closer look next week 
- 
        4. 50% performance hit in ClonedObjectResolver.resolveClonedsamkwitty May 17, 2011 1:36 AM (in response to alexsmirnov)Great thanks for looking into this. We are experiencing this in the 3.x code line. Looking at the JIRA item it is set for the 4.x code line. Does this mean it is not going to be fixed in 3.x? -Sam 
- 
        5. Re: 50% performance hit in ClonedObjectResolver.resolveClonedevdelst2 Aug 16, 2011 4:47 PM (in response to samkwitty)What are the consequences if I disable this code? Is it only used if (for example) a rich:graphValidator is used? - Edwin 
- 
        6. Re: 50% performance hit in ClonedObjectResolver.resolveClonedsamkwitty Aug 19, 2011 1:48 PM (in response to evdelst2)We have had it disabled ever since I posted the issue. Seems to have no impact and it runs way faster. 
- 
        7. Re: 50% performance hit in ClonedObjectResolver.resolveClonedprarora803 Feb 6, 2013 4:01 PM (in response to samkwitty)We seem to be facing the same issue in RichFaces 3.3.3. Since there is no patch for this defect in 3.x and we cannot upgrade to 4.x in the near future, we wanted to try out your solution of commenting out the culprit code. Could you please tell us exactly what part of the code did you comment out? Was it just the UIGraphValidator or the entire resolveCloned method? Also, did it have any impact on the application functionality? Really appreciate your help! 
- 
        8. Re: 50% performance hit in ClonedObjectResolver.resolveClonedevdelst Feb 7, 2013 3:14 AM (in response to prarora803)Hi, I created a new class org.richfaces.component.ClonedObjectResolver. I haven't met any problems yet. Edwin /** * */ package org.richfaces.component; import java.beans.FeatureDescriptor; import java.util.Iterator; import javax.el.ELContext; import javax.el.ELResolver; /** * @author asmirnov * */ public class ClonedObjectResolver extends ELResolver { /* (non-Javadoc) * @see javax.el.ELResolver#getCommonPropertyType(javax.el.ELContext, java.lang.Object) */ @Override public Class<?> getCommonPropertyType(ELContext context, Object base) { // Do nothing return null; } /* (non-Javadoc) * @see javax.el.ELResolver#getFeatureDescriptors(javax.el.ELContext, java.lang.Object) */ @Override public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base) { // do nothing return null; } /* (non-Javadoc) * @see javax.el.ELResolver#getType(javax.el.ELContext, java.lang.Object, java.lang.Object) */ @Override public Class<?> getType(ELContext context, Object base, Object property) { Object cloned = resolveCloned(context, base, property); if(null != cloned){ context.setPropertyResolved(true); return cloned.getClass(); } return null; } /* (non-Javadoc) * @see javax.el.ELResolver#getValue(javax.el.ELContext, java.lang.Object, java.lang.Object) */ @Override public Object getValue(ELContext context, Object base, Object property) { Object cloned = resolveCloned(context, base, property); if(null != cloned){ context.setPropertyResolved(true); } return cloned; } /* (non-Javadoc) * @see javax.el.ELResolver#isReadOnly(javax.el.ELContext, java.lang.Object, java.lang.Object) */ @Override public boolean isReadOnly(ELContext context, Object base, Object property) { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see javax.el.ELResolver#setValue(javax.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object) */ @Override public void setValue(ELContext context, Object base, Object property, Object value) { // TODO Auto-generated method stub } public static Object resolveCloned(ELContext context, Object base, Object property){ return null; // if(null != base || null != property){ // FacesContext facesContext = FacesContext.getCurrentInstance(); // Map<String, Object> requestMap = facesContext.getExternalContext().getRequestMap(); // for (String key : requestMap.keySet()) { // if(null != key && key.startsWith(UIGraphValidator.STATE_ATTRIBUTE_PREFIX)){ // UIGraphValidator.GraphValidatorState state = (GraphValidatorState) requestMap.get(key); // System.out.println(""+key); // if(state.isSame(base, property)){ // return state.getCloned(); // } // } // } // } // return null; } } 
- 
        9. Re: 50% performance hit in ClonedObjectResolver.resolveClonedprarora803 Feb 7, 2013 9:05 AM (in response to evdelst)Thank you so much Edwin! Really appreciate the help! -Priyanka 
 
     
     
     
     
    