EEEE depois de enfrentar muitos dragoes … eu consegui hauhau
… eh simples tem 2 maneiras …
1 - se voce nao estiver usando BridgeFacesContext
implementa Renderable no seu bean ... fica tipo assim
public class UploadBean implements Renderable
… blz …
ai vc tem q colocar o PersistentFacesState nele …
fica assim …
private PersistentFacesState state;
public PersistentFacesState getState() {
return state;
}
tem q ser state … pq ele tem q implementar da classe Renderable … .
ai vc tem q criar um renderManager … assim :
private RenderManager renderManager;
public void setRenderManager(RenderManager renderManager) {
this.renderManager = renderManager;
}
public RenderManager getRenderManager() {
if (this.renderManager == null){
this.renderManager = new RenderManager();
}
return this.renderManager;
}
public void renderingException(RenderingException renderingException) {
renderingException.printStackTrace();
}
e no faces-config … vc coloca
<managed-bean>
<managed-bean-name>uploadBean</managed-bean-name>
<managed-bean-class>UploadBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>renderManager</property-name>
<value>#{renderManager}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>renderManager</managed-bean-name>
<managed-bean-class>
com.icesoft.faces.async.render.RenderManager
</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
</managed-bean>
essa eh c vc NAO estiver usando BridgeFacesContext
c vc estiver usando … eh so vc setar
<context-param>
<param-name>com.icesoft.faces.synchronousUpdate</param-name>
<param-value>false</param-value>
</context-param>
no seu web.xml … e pronto 
ai quando vc usa o
<ice:inputFile progressListener="#{uploadBean.progress}"
actionListener="#{uploadBean.bEnviarAction}"
/>
ele renderiza os outros componentes tb 
facil neh … e eu me matando aki hauhauhau … .flw pessoal