You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
include/exclude lança exception quando a Collection/List está dentro de outra classe.
Ex:
public class Grid<T> {
private final int page;
private final int total;
private final int limit;
private final boolean success;
private final Collection<T> list;
No controller na hora de serializar gostaria de retirar alguns campos da lista, pegar somente o que for necessário.
Com include tentei assim:
result.use(json()).withoutRoot()
.from(new Grid<Bairro>(page, this.repository.count(), limit, true, "get", bairroList))
.include("list.id", "list.nome" etc....)//para pegar apenas alguns campos da lista
.serialize();
Com exclude:
result.use(json()).withoutRoot()
.from(new Grid<Bairro>(page, this.repository.count(), limit, true, "get", bairroList))
.include("list")//para incluir a lista
.exclude("list.id", "list.nome" etc....)//para tentar remover alguns campos da lista.
.serialize();
Nas duas tentativas, é lançada a exception:
09:23:04,113 DEBUG [XStreamConverters ] registered Xstream converter forbr.com.caelum.vraptor.validator.MessageConverter
09:23:04,113 DEBUG [XStreamConverters ] registered Xstream converter forbr.com.caelum.vraptor.serialization.xstream.XStreamConverters$NullConverter
09:23:04,130 DEBUG [DefaultExceptionMapper] find for exception class java.lang.IllegalArgumentException
09:23:04,130 DEBUG [DefaultExceptionMapper] find for exception class java.lang.NullPointerException
17/05/2012 09:23:04 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [default] in context with path [/siscompras] threw exception
br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.IllegalArgumentException: Field path 'list.nome' doesn't exists in interface java.util.Collection
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:96)
Um comentário a fazer é que se eu uso a collection/List como argumento para o from(List) ele permite fazer exclude/include.
The text was updated successfully, but these errors were encountered:
Escrevi algumas linhas para testar este cenário e não consegui reproduzir o bug. Inclusive o utilitário para Ext-JS usa este mesmo tipo de classe e funciona corretamente. https://gist.github.com/garcia-jj/5381386
Oi Otávio não haviam testes, achei que tinha algo parecido em um projeto mas não achei. No seu teste dá certo porque o Grid tem o tipo genérico definido Flight, no caso do amigo o tipo não é definido. É T, portando realmente ainda acontece o erro.
include/exclude lança exception quando a Collection/List está dentro de outra classe.
Ex:
No controller na hora de serializar gostaria de retirar alguns campos da lista, pegar somente o que for necessário.
Com include tentei assim:
Com exclude:
Nas duas tentativas, é lançada a exception:
09:23:04,113 DEBUG [XStreamConverters ] registered Xstream converter forbr.com.caelum.vraptor.validator.MessageConverter
09:23:04,113 DEBUG [XStreamConverters ] registered Xstream converter forbr.com.caelum.vraptor.serialization.xstream.XStreamConverters$NullConverter
09:23:04,130 DEBUG [DefaultExceptionMapper] find for exception class java.lang.IllegalArgumentException
09:23:04,130 DEBUG [DefaultExceptionMapper] find for exception class java.lang.NullPointerException
17/05/2012 09:23:04 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [default] in context with path [/siscompras] threw exception
br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.IllegalArgumentException: Field path 'list.nome' doesn't exists in interface java.util.Collection
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:96)
Um comentário a fazer é que se eu uso a collection/List como argumento para o from(List) ele permite fazer exclude/include.
The text was updated successfully, but these errors were encountered: