Perda do índice de uma rich:dataTable

Boa tarde,

Estou utilizando jsf e rich:dataTable para fazer uma lista de tarefas, sendo que esta lista (quando selecionada) é gera um arquivo para download. A primeira seleção funciona perfeitamente, porém a partir da segunda seleção a lista utiliza o próximo registro (seleciona um e internamente escolhe o segundo). Percebi que o problema ocorre no momento de gerar o arquivo, pois se eu tirar esta função (de gerar o arquivo) a seleção permanece normal, segue abaixo o código para a visualização.

				</f:facet>
				<h:outputText value="#{f.idCar}"></h:outputText>
			</h:column>

			<h:column>
				<h:commandLink accesskey="cdcarri" title="#{f.cnpjCar}" actionListener="#{cotacaoBean.gerarCsv}">
					<h:graphicImage library="imagens" name="excel.png" />
					<f:param id="cnpjCar" name="id" value="#{f.cnpjCar}" />
					<f:param id="idCotac" name="idcot" value="#{f.idCar}" />
				</h:commandLink>
			</h:column>
		</rich:dataTable>
Código do Bean public void gerarCsv(ActionEvent event) throws IOException {
	UIComponent link = event.getComponent();
	UIParameter param = (UIParameter) link.findComponent("cnpjCar");

	
	String cnpj = param.getValue().toString();
	
	UIParameter param2 = (UIParameter) link.findComponent("idCotac");
	int nrCot = Integer.parseInt(param2.getValue().toString());

	FuncoesCarrRN car = new FuncoesCarrRN();
	String nomeArquivo = car.gerarCSV(cnpj, nrCot);
	FacesContext fc = FacesContext.getCurrentInstance();
	OperacoesArquivos.downloadFile(nomeArquivo, "", "text/csv", fc);
}

No momento de gerarCSV, quando cria o arquivo para depois fazer o download ocorre o erro.
Obrigado a todos