caelum / vraptor4

A web MVC action-based framework, on top of CDI, for fast and maintainable Java development.
http://vraptor.org
Apache License 2.0
350 stars 333 forks source link

GsonSerializer Erro include/exclude #933

Closed jeancrbecker closed 9 years ago

jeancrbecker commented 9 years ago

Ao retornar um json através do result, quando este objeto retornado contém uma lista e tento excluir ou incluir algum parametro da mesma ocorre o erro abaixo:

java.lang.NullPointerException
    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:191)
    at br.com.caelum.vraptor.serialization.Serializee.reflectField(Serializee.java:159)
    at br.com.caelum.vraptor.serialization.Serializee.getParentTypes(Serializee.java:140)
    at br.com.caelum.vraptor.serialization.Serializee.getParentTypesFor(Serializee.java:125)
    at br.com.caelum.vraptor.serialization.Serializee.excludeAll(Serializee.java:96)
    at br.com.caelum.vraptor.serialization.gson.GsonSerializer.exclude(GsonSerializer.java:59)

Um exemplo de objetos.

public class Resultado {
    private String nome;
    private Collection list;
}

public class Usuario {
    private String nome;
    private String login;
}

Então na controller quando tento retornar um json excluindo algum parametro da lista, ou tentando incluir apenas alguns parametros ocorre erro.

Isso não funciona

    @Get("search/{nome}")
    public void pesquisar(String nome) {
        result.use(json()).withoutRoot().from(abstractService.search(nome)).include("list").exclude("list.login").serialize();
    }

Isso também não

@Get("search/{nome}")
    public void pesquisar(String nome) {
        result.use(json()).withoutRoot().from(abstractService.search(nome)).include("list.nome").serialize();
    }
Turini commented 9 years ago

putz, acabei de ver que ele é estático (sabe se lá o pq). peraí que vou alterar e atualizar o snapshot... já te aviso

Turini commented 9 years ago

pronto, você atualiza e testa de novo? a versão é a mesma

jeancrbecker commented 9 years ago

Vou testar

Att.

Jean C. Becker (41) 9921-8625 - jeancrbecker@gmail.com JBKR - Tecnologia e Inteligência com foco no desenvolvimento de conteúdos para WEB Acesse : www.jbkr.com.br "The two most important days in your life are the day you are born and the day you find out why"

Em 2 de abril de 2015 01:19, Rodrigo Turini notifications@github.com escreveu:

pronto, você atualiza e testa de novo? a versão é a mesma

— Reply to this email directly or view it on GitHub https://github.com/caelum/vraptor4/issues/933#issuecomment-88722949.

Turini commented 9 years ago

@jeancrbecker, me avisa quando testar, ta bem? assim podemos fazer um release com essa e outras alterações :)

jeancrbecker commented 9 years ago

@Turini funcionou perfeitamente! Obrigado pelo auxilio.

Turini commented 9 years ago

excelente! logo teremos um novo release com essa alteração (tudo correndo bem ele deve acontecer ainda nessa semana)