Problema ao receber lista ordenada no controller do VRaptor

Boa tarde, conforme issue https://github.com/caelum/vraptor/issues/479, o problema ao receber lista ordenada no controller foi resolvido e fixado no iogi 0.9.2. Porém depois de atualizar ainda estou tendo problemas com esse caso, por acaso o bug ainda continua? Segue abaixo o exemplo utilizado:

JSP:

var dados = new Array();
$("#table td").each(function(index) {
      dados[index] = ($(this).html());
});

ou

var dados = new Array();
$("#table td").each(function(index) {
      dados.push($(this).html());
});

Controller:

@Post
public void XPTO(List<String> dados) {
	...
}

No exemplo citado, os parâmetros são ordenados na lista do controller pela ordem de recebimento e não pelo índice dos mesmos. Versão VRaptor 3.4.1, iogi 0.9.2 (atualizei apenas o jar).

e como vc tá mandando isso pro controller?

Oi Lucas, desculpe a demora, estou pegando o Array e mandando via Ajax/Jquery dessa forma:

$.ajax({
		type: "POST",
		url: url,
		dataType: "html",
		data: {
			'dados': dados
		},
		success: function(data) {
  		if(data.length > 0) {
			...
		}
	}
});

A lista chega perfeitamente até o controller, porém ordenada pela ordem de recebimento (creio eu) e não pela ordem do índice do Array.

Não lembro o que fiz pra contornar essa situação. Mas este bug continuava acontecendo comigo. Podem verificar no projeto que postei na issue acima.

isso não é um bug… é o esperado…

qdo vc faz:

data: {  
            'dados': dados  
        }

eles vão na ordem em que vc colocou na variável dados do javascript… que pelo que vc disse é a ordem de inserção mesmo…

Esses dados vem de um formulário?

Neste caso vem de um formulário: https://github.com/fredericomaia10/vraptor-test/blob/master/src/main/webapp/WEB-INF/views/cliente/novoCliente.ftl

faça assim:

...
data: $('form').serialize(),
...

assim vai na ordem dos índices que vc colocou nos nomes dos inputs

Lucas,

No meu caso os dados vem de uma tabela, onde o índice do Array é o número da linha da mesma (código citado na pergunta). Quando eu debugo o javascript via browser, observo que ele envia na requisição os dados ordenados perfeitamente conforme foram inseridos na tabela, porém ao construir a lista no controller ele perde a ordem. Porque isso ocorre?

tenta mudar para:

data: {    
            'dados[]': dados    
        }  

assim o vraptor vai inserir os índices automaticamente…

se vc faz um console.log(dados) ele mostra os dados na ordem correta?

Lucas,

Fiz a alteração mas ainda não funcionou, lembrando que eu recebo essa variável ‘dados[]’ em um List no controller está correto isso né? Fiz outro teste, dessa vez com um select multiple e dá o mesmo problema. Respondendo sua pergunta, quando faço um console.log(dados), eles vem na ordem correta, parece que o problema está na construção da lista no controller.