[RESOLVIDO] Interceptador controle de acesso

10 respostas
kivervinicius

Bom dia,

Estou fazendo um controle simples de acesso, para inicialmente gerenciar o login, mas como meu sistema tem mais opções a serem bloqueadas fiz o processo inverso liberando somente os métodos que eu tenho livre acesso.

O que acontece é que quando vou fazer a validação de login e senha, ao retornar o uniqueresult do hibernate.

Me retorna o seguinte erro.

br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:96)
,
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
	java.lang.String.charAt(Unknown Source)

Só que isso só acontece quando tem o dado correto no banco, pois quando não tenho, retorna minha mensagem normalmente.

Segue

Interceptador
package br.com.tga.juridico.login;

import javax.servlet.http.HttpServletRequest;

import br.com.caelum.vraptor.InterceptionException;
import br.com.caelum.vraptor.Intercepts;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.core.InterceptorStack;
import br.com.caelum.vraptor.interceptor.Interceptor;
import br.com.caelum.vraptor.ioc.RequestScoped;
import br.com.caelum.vraptor.resource.ResourceMethod;
import br.com.tga.juridico.controller.diversos.LoginController;
import br.com.tga.juridico.diversos.AcessoLiberado;

@Intercepts
@RequestScoped
public class LoginInterceptor implements Interceptor {

	private final HttpServletRequest request;
    private final Result result;
    private final Login login;
    
    
	public LoginInterceptor(HttpServletRequest request,Result result, Login login) {
		this.request = request;
		this.result = result;
		this.login = login;
		
	}

	@Override
	public boolean accepts(ResourceMethod method) {
		return (this.login == null || !this.login.estaLogado()) && (!method.containsAnnotation(AcessoLiberado.class));
	}

	@Override
	public void intercept(InterceptorStack stack, ResourceMethod method,
			Object resourceInstance) throws InterceptionException {
			String uri = request.getRequestURI();
            result.redirectTo(LoginController.class).login(uri);
            
    }
      // stack.next(method, resourceInstance); caso queira que continue normalmente.
	
	
	
}

LoginController

package br.com.tga.juridico.controller.diversos;

import javax.servlet.http.HttpServletRequest;

import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.tga.juridico.dao.cadastros.UsuarioDao;
import br.com.tga.juridico.diversos.AcessoLiberado;
import br.com.tga.juridico.entidades.cadastros.Usuario;
import br.com.tga.juridico.login.Login;
import static br.com.caelum.vraptor.view.Results.json;

@Resource
public class LoginController {

	private HttpServletRequest request;
	private final Result result;
	private final Login login;
	private final UsuarioDao usuarioDao;
	
	public LoginController(HttpServletRequest request, Result result,
			Login login,UsuarioDao usuarioDao) {
		this.request = request;
		this.result = result;
		this.login = login;
		this.usuarioDao = usuarioDao;
	}

	@AcessoLiberado
	@Get("/login")
	public void login(String url) {
		System.out.println(url);
		result.include(url);
	}

	@AcessoLiberado
	@Post("/login")
	public void login(String login, String senha, String url) {
		String retorno = "false";
		Usuario usuario = usuarioDao.verificaLoginSenha(login, senha);
		if (usuario != null) {
			this.login.setUsuario(usuario);
			retorno = "true";
		}
		result.use(json()).from(retorno).serialize();
	}

	@Path("/logoff")
	public void logoff() {
		request.getSession().invalidate();
		result.redirectTo(LoginController.class).login("/login");
	}

}

UsuarioDao

@AcessoLiberado
	public Usuario verificaLoginSenha(String login, String senha){
		
		Criteria crt = this.session.createCriteria(Usuario.class);
		crt.add(Restrictions.sqlRestriction("login = '"+login+"' and senha = '"+senha+"'"));
		
		Usuario usuario = /*new Usuario();*/ (Usuario)crt.uniqueResult();
		//usuario.setNome("kiver");
		return usuario;
		
	}

OBS*:

Fiz um teste e instanciando um Usuario, tudo me retorna certo, o que acredito que seja um problema com o hibernate no interceptador, mas não imagino como resolver.

10 Respostas

Lucas_Cavalcanti

tenta olhar mais a stacktrace do root cause… olhe qual é a linha do seu sistema que está dando o erro… não adianta mto saber que o erro aconteceu no charAt do String, e sim quem chamou isso.

kivervinicius

Segue em anexo o erro completo, to tentando olhar mas não soube identificar, a não ser o ParametersFilter que é

br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:96)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:87)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	br.com.tga.juridico.diversos.ParametersFilter.doFilter(ParametersFilter.java:30)
root cause

java.lang.StringIndexOutOfBoundsException: String index out of range: 0
	java.lang.String.charAt(Unknown Source)
	org.hibernate.type.descriptor.java.BooleanTypeDescriptor.wrap(BooleanTypeDescriptor.java:115)
	org.hibernate.type.descriptor.java.BooleanTypeDescriptor.wrap(BooleanTypeDescriptor.java:36)
	org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$2.doExtract(VarcharTypeDescriptor.java:61)
	org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64)
	org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
	org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:249)
	org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:229)
	org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:330)
	org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2283)
	org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1527)
	org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1455)
	org.hibernate.loader.Loader.getRow(Loader.java:1355)
	org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:611)
	org.hibernate.loader.Loader.doQuery(Loader.java:829)
	org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
	org.hibernate.loader.Loader.doList(Loader.java:2533)
	org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
	org.hibernate.loader.Loader.list(Loader.java:2271)
	org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:119)
	org.hibernate.impl.SessionImpl.list(SessionImpl.java:1716)
	org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:347)
	org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:369)
	br.com.tga.juridico.dao.cadastros.UsuarioDao.verificaLoginSenha(UsuarioDao.java:52)
	br.com.tga.juridico.controller.diversos.LoginController.login(LoginController.java:43)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:87)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	br.com.tga.juridico.diversos.ParametersFilter.doFilter(ParametersFilter.java:30)
Lucas_Cavalcanti

br.com.tga.juridico.dao.cadastros.UsuarioDao.verificaLoginSenha(UsuarioDao.java:52)

essa é a primeira classe da sua aplicação que aparece…

mas o erro deu em algo de dentro do hibernate, provavelmente foi uma query com problemas.

Lucas_Cavalcanti

NUNCA faça isso:

crt.add(Restrictions.sqlRestriction("login = '"+login+"' and senha = '"+senha+"'"));

senão alguem consegue logar no seu site colocando como login

faça:

crt.add(Restrictions.eq("login", login));
crt.add(Restrictions.eq("senha", senha));
kivervinicius

Lucas Cavalcanti:
NUNCA faça isso:

crt.add(Restrictions.sqlRestriction("login = '"+login+"' and senha = '"+senha+"'"));

senão alguem consegue logar no seu site colocando como login

faça:

crt.add(Restrictions.eq("login", login)); crt.add(Restrictions.eq("senha", senha));

Opa, Lucas, então, eu coloquei sqlRestriction só para debug no console mesmo.

Hibernate: select this_.id as id14_1_, this_.advocacia_id as advocacia7_14_1_, this_.email as email14_1_, this_.excluido as excluido14_1_, this_.login as login14_1_, this_.nome as nome14_1_, this_.senha as senha14_1_, advocacia2_.id as id1_0_, advocacia2_.bairro as bairro1_0_, advocacia2_.bloqueado as bloqueado1_0_, advocacia2_.cnpj as cnpj1_0_, advocacia2_.complemento as compleme5_1_0_, advocacia2_.email as email1_0_, advocacia2_.endereco as endereco1_0_, advocacia2_.excluido as excluido1_0_, advocacia2_.motivoBloqueio as motivoBl9_1_0_, advocacia2_.nomeFantasia as nomeFan10_1_0_, advocacia2_.numero as numero1_0_, advocacia2_.razaoSocial as razaoSo12_1_0_, advocacia2_.telefone1 as telefone13_1_0_, advocacia2_.telefone2 as telefone14_1_0_, advocacia2_.telefone3 as telefone15_1_0_, advocacia2_.webSite as webSite1_0_ from Usuario this_ left outer join Advocacia advocacia2_ on this_.advocacia_id=advocacia2_.id where this_.login=? and this_.senha=? Fecha Sessão 23/07/2012 15:27:52 org.apache.catalina.core.StandardWrapperValve invoke GRAVE: Servlet.service() for servlet default threw exception br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:96) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:87) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44) at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92) at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58) at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at br.com.tga.juridico.diversos.ParametersFilter.doFilter(ParametersFilter.java:31) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at java.lang.String.charAt(Unknown Source) at org.hibernate.type.descriptor.java.BooleanTypeDescriptor.wrap(BooleanTypeDescriptor.java:115) at org.hibernate.type.descriptor.java.BooleanTypeDescriptor.wrap(BooleanTypeDescriptor.java:36) at org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$2.doExtract(VarcharTypeDescriptor.java:61) at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64) at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253) at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:249) at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:229) at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:330) at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2283) at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1527) at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1455) at org.hibernate.loader.Loader.getRow(Loader.java:1355) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:611) at org.hibernate.loader.Loader.doQuery(Loader.java:829) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274) at org.hibernate.loader.Loader.doList(Loader.java:2533) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276) at org.hibernate.loader.Loader.list(Loader.java:2271) at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:119) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1716) at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:347) at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:369) at br.com.tga.juridico.dao.cadastros.UsuarioDao.verificaLoginSenha(UsuarioDao.java:53) at br.com.tga.juridico.controller.diversos.LoginController.login(LoginController.java:43) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61) ... 42 more

Lucas_Cavalcanti

ele deu esse mesmo erro com a criteria do jeito que eu passei? algum outro código mexe nessa criteria?

kivervinicius

Sim, mas verifiquei agora, desabilitando o Interceptador, mesmo assim retorna o erro.

Então o erro não se limita ao Interceptador. To tentando descobrir algo mais, mas não encontro. Nada mais chama.

Só chamar o (Usuario)crt.uniqueResult();

Que já é lançada a exceção.

Lucas_Cavalcanti

outra possibilidade é algum dado zuado no banco de dados…

tipo um campo que tá mapeado como número no java e no banco está como “”

kivervinicius

Vou verificar mais a fundo, mas é mto estranho isso, rs.

Obrigado por enqnto.

kivervinicius

Lucas, obrigado e não é um campo boolean que estava vazio no banco…

@Type(type = true_false)

@Column(nullable=false)

private Boolean excluido;

estava assim e no banco estava vazio.

Obrigado e desculpa a vergonha hehe

Criado 23 de julho de 2012
Ultima resposta 23 de jul. de 2012
Respostas 10
Participantes 2