P:autocomplete erro de conversão

Boa noite pessoal.

Estou tentando utilizar o componente autocomplete do primefaces, com o atributo multiple=true, mas vem dando o seguinte erro:

java.lang.NumberFormatException: For input string: "marca" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:492) at java.lang.Integer.parseInt(Integer.java:527)

Segue componente na minha .xhtml:

<p:autoComplete value="#{marcaBeanRequest.marcasSelecionadas}" completeMethod="#{marcaBeanRequest.completaNome}" var="m" itemLabel="#{m.marca}" itemValue="#{m}" converter="marcaConverter" multiple="true"/>

Managed Bean:

[code]@ManagedBean(name = “marcaBeanRequest”)
@RequestScoped
public class MarcaBeanRequest {

private Marca marca = new Marca();
private List<Marca> list = new ArrayList<Marca>();
private List<Marca> marcasSelecionadas = new ArrayList<Marca>();

public MarcaBeanRequest() {
	this.list = new MarcaRN().listarTodos();
}

public Marca getMarca() {
	return marca;
}

public void setMarca(Marca marca) {
	this.marca = marca;
}

public List<Marca> getList() {
	return list;
}

public void setList(List<Marca> list) {
	this.list = list;
}

public String consultar() {
	return null;
}

public String incluir() {
	this.marca = new Marca();
	return null;
}

public String salvar() {
	return null;
}

public List<Marca> getMarcasSelecionadas() {
	return marcasSelecionadas;
}

public void setMarcasSelecionadas(List<Marca> marcasSelecionadas) {
	this.marcasSelecionadas = marcasSelecionadas;
}

public List<Marca> completaNome(String query) {
	List<Marca> sugestoes = new ArrayList<Marca>();
	for (Marca m : this.list) {
		if (m.getMarca().startsWith(query)) {
			sugestoes.add(m);
		}
	}
	return sugestoes;
}

}
[/code]

Converter:

[code]@FacesConverter(value = “marcaConverter”)
public class MarcaConverter implements Converter {

@Override
public Object getAsObject(FacesContext fc, UIComponent uic, String string) {
		MarcaRN marcaRN = new MarcaRN();
		Marca marca = marcaRN.consultarPorMarca(string);
		return marca;
	}

@Override
public String getAsString(FacesContext fc, UIComponent uic, Object o) {
	if (o == null || o.equals("")) {
		return "";
	} else {
		return String.valueOf(((Marca) o).getMarca());
	}
}

}[/code]

Alguém sabe o que pode ser?

Obrigadão pela atenção, pessoal!

Abraço!

Carinha, olhe a causa raiz: você passou pra gente 3 linhas do stack trace: duvido que seja só isso. Olha no stacktrace do erro porque que você está tentando converter um texto, “marca” em um valor numérico. Veja onde isto acontece e resolva o problema.

[quote=leandrors]Boa noite pessoal.

Estou tentando utilizar o componente autocomplete do primefaces, com o atributo multiple=true, mas vem dando o seguinte erro:

java.lang.NumberFormatException: For input string: "marca" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:492) at java.lang.Integer.parseInt(Integer.java:527)

Segue componente na minha .xhtml:

<p:autoComplete value="#{marcaBeanRequest.marcasSelecionadas}" completeMethod="#{marcaBeanRequest.completaNome}" var="m" itemLabel="#{m.marca}" itemValue="#{m}" converter="marcaConverter" multiple="true"/>

Managed Bean:

[code]@ManagedBean(name = “marcaBeanRequest”)
@RequestScoped
public class MarcaBeanRequest {

private Marca marca = new Marca();
private List<Marca> list = new ArrayList<Marca>();
private List<Marca> marcasSelecionadas = new ArrayList<Marca>();

public MarcaBeanRequest() {
	this.list = new MarcaRN().listarTodos();
}

public Marca getMarca() {
	return marca;
}

public void setMarca(Marca marca) {
	this.marca = marca;
}

public List<Marca> getList() {
	return list;
}

public void setList(List<Marca> list) {
	this.list = list;
}

public String consultar() {
	return null;
}

public String incluir() {
	this.marca = new Marca();
	return null;
}

public String salvar() {
	return null;
}

public List<Marca> getMarcasSelecionadas() {
	return marcasSelecionadas;
}

public void setMarcasSelecionadas(List<Marca> marcasSelecionadas) {
	this.marcasSelecionadas = marcasSelecionadas;
}

public List<Marca> completaNome(String query) {
	List<Marca> sugestoes = new ArrayList<Marca>();
	for (Marca m : this.list) {
		if (m.getMarca().startsWith(query)) {
			sugestoes.add(m);
		}
	}
	return sugestoes;
}

}
[/code]

Converter:

[code]@FacesConverter(value = “marcaConverter”)
public class MarcaConverter implements Converter {

@Override
public Object getAsObject(FacesContext fc, UIComponent uic, String string) {
		MarcaRN marcaRN = new MarcaRN();
		Marca marca = marcaRN.consultarPorMarca(string);
		return marca;
	}

@Override
public String getAsString(FacesContext fc, UIComponent uic, Object o) {
	if (o == null || o.equals("")) {
		return "";
	} else {
		return String.valueOf(((Marca) o).getMarca());
	}
}

}[/code]

Alguém sabe o que pode ser?

Obrigadão pela atenção, pessoal!

Abraço!
[/quote]