RichFaces + Ajax - métodos invocados sem sincronização (RESOLVIDO)

Boa tarde!Estou tendo problemas com o componente FileUpload do RichFaces, preciso que o método conteudoDigitalAction.salvarImagemAmazon() seja invocado depois do método conteudoDigitalAction.salvarArquivoInstance(), pois a tela quebra…
Coloquei acho eu nos eventos certos do componente, alguém tem alguma solução pra isso?


<rich:fileUpload id="idArquivoUpload"
									fileUploadListener="#{conteudoDigitalAction.salvarArquivoInstance}"
									addControlLabel="Selecionar novo arquivo"
									clearAllControlLabel="Limpar tudo" clearControlLabel="excluir"
									doneLabel="carregado" cancelEntryControlLabel="cancelar"
									stopControlLabel="Parar" stopEntryControlLabel="parar"
									transferErrorLabel="Erro na transferência do arquivo - Função não suportada pelo IE9"
									
									onupload="#{rich:component('panelUploadImagem')}.show();"
									
									onclear="javascript:reRenderUploadArquivos()"
									onufileploadcomplete="#{conteudoDigitalAction.salvarImagemAmazon()};
														  javascript:reRenderComboArquivos();"
									immediateUpload="false" listHeight="60px" listWidth="901px"
									style="height: 150px;" />


							</s:decorate>

							<a4j:jsFunction name="reRenderComboArquivos"
								reRender="comboArquivos"
								oncomplete="#{rich:component('panelUploadImagem')}.hide();"></a4j:jsFunction>

Desde já agradeço.

Alguém que tenha vivência em RichFaces e Ajax??

Bom dia!

Tem um método escrito errado. Tente onfileuploadcomplete ao invés de onufileploadcomplete.

Abraço!

Boa tarde elio.cruz!

Agora eu mudei meu componente fileUpload, mas mesmo assim o erro permanece, e pior nem está chamando o primeiro método.

Estou usando JBoss Seam.

<rich:fileUpload id="idArquivoUpload"
									addControlLabel="Selecionar novo arquivo"
									clearAllControlLabel="Limpar tudo" clearControlLabel="excluir"
									doneLabel="carregado" cancelEntryControlLabel="cancelar"
									stopControlLabel="Parar" stopEntryControlLabel="parar"
									transferErrorLabel="Erro na transferência do arquivo 
														- Função não suportada pelo IE9"
														
									fileUploadListener="#{conteudoDigitalAction.salvarArquivoInstance()}"
									
									onclear="javascript:reRenderUploadArquivos()"
									
									onupload="#{conteudoDigitalAction.salvarArquivoAmazon()};
											#{rich:component('panelUploadImagem')}.show();"
									
							
									onuploadcomplete="javascript:reRenderComboArquivos();"
									immediateUpload="false" listHeight="60px" listWidth="901px"
									style="height: 150px;" />

Tem alguma idéia?

Já tentei de tudo praticamente…

Achei a solução!

Para executar métodos de forma sincronizada, é preciso usar o atributo eventQueue, com isso posso enfileirar meus métodos, fazendo com que eles sejam executados separadamente e na ordem imposta.

Como no exemplo,

Apenas, declaro o atributo eventsQueue=“Fila”:

  <a4j:jsFunction name="reRenderComboArquivos"
                                               eventsQueue="Fila"
                                               reRender="comboArquivos" 
                                               oncomplete="      #{conteudoDigitalAction.salvarArquivoAmazon()};
                                                                 #{rich:component('panelUploadImagem')}.hide();"
                                         />