I am adding a composite component dynamically from Java and passing an object as the cc attr,
Code Snippet:
FacesContext context = FacesContext.getCurrentInstance();
Application application = context.getApplication();
FaceletContext faceletContext= 
(FaceletContext)context.getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY);
Resource resource = application.getResourceHandler().createResource(resourceName);
UIComponent composite = application.createComponent(context, resource);
composite.setId("mycomp");
UIComponent implementation = application.createComponent(UIPanel.COMPONENT_TYPE);
implementation.setRendererType("javax.faces.Group");
composite.getFacets().put(UIComponent.COMPOSITE_FACET_NAME,implementation);
Map<String, String> valueExpressions = new HashMap<String, String>();
CustomObject obj = new CustomObject();    
valueExpressions.put("customobj", "#{obj}");
ELContext ctx = context.getELContext();
ValueExpression expr;
for (Map.Entry<String, String> entry : valueExpressions.entrySet()) {
   expr = factory.createValueExpression(ctx, entry.getValue(),Object.class);
   composite.setValueExpression(entry.getKey(), expr);
}
parent.getChildren().add(composite);
parent.pushComponentToEL(context, composite);
try {
    faceletContext.includeFacelet(implementation, resource.getURL());
} catch (Exception e) {
    throw new FacesException(e);
} finally {
    parent.popComponentFromEL(context);
}
I am seeing StackOverflowError if I pass object as cc attr. 
Please help me to find what I am doing wrong.
Below is the exception I received:
java.lang.StackOverflowError
    at
    com.sun.faces.context.FacesContextImpl.assertNotReleased(FacesContextImpl.java:701)
    at 
    com.sun.faces.context.FacesContextImpl.getAttributes(FacesContextImpl.java:237)
    at
com.sun.faces.component.CompositeComponentStackManager.getManager(CompositeComponentStackManager.java:103)
    at 
com.sun.faces.facelets.el.ContextualCompositeValueExpression.pushCompositeComponent(ContextualCompositeValueExpression.java:266)
    at 
com.sun.faces.facelets.el.ContextualCompositeValueExpression.getValue(ContextualCompositeValueExpression.java:156)
    at 
    com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
    at 
    javax.faces.component.UIComponentBase$AttributesMap.get(UIComponentBase.java:2409)
    at 
com.sun.faces.el.CompositeComponentAttributesELResolver$ExpressionEvalMap.get(CompositeComponentAttributesELResolver.java:393)
    at 
    javax.el.MapELResolver.getValue(MapELResolver.java:196)