Erro em Session - [RESOLVIDO]

Pessoal, me ajudem aí… meu projeto esta apresentando um erro que não estou conseguindo resolver! Estou usando Hibernate e VRaptor
Olhem o erro que aparece no browser:

Classe CriadorDeFactory

package br.com.caelum.goodbuy.infra;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

import br.com.caelum.vraptor.ioc.ApplicationScoped;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.ComponentFactory;

@Component
@ApplicationScoped
public class CriadorDeSessionFactory implements ComponentFactory<SessionFactory>{

	private SessionFactory factory;
	
	@PostConstruct
	public void abre(){
		AnnotationConfiguration configuration = new AnnotationConfiguration();
		configuration.configure();
		
		this.factory = configuration.buildSessionFactory();
	}
	
	public SessionFactory getInstance() {
		return factory;
	}
	
	@PreDestroy
	public void fecha(){
		this.factory.close();
	}
}

Classe CriadorDeSession

package br.com.caelum.goodbuy.infra;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.ComponentFactory;

@Component
public class CriadorDeSession implements ComponentFactory<Session>{
	
	private final SessionFactory factory;
	private Session session;

	public CriadorDeSession(SessionFactory factory){
		this.factory = factory;
	}
	
	@PostConstruct
	public void abre(){
		this.session = factory.openSession();
	}
	
	public Session getInstance() {
		return null;
	}
	
	@PreDestroy
	public void fecha(){
		this.session.close();
	}
	
}

Classe ProdutoController

package br.com.caelum.goodbuy.controller;

import java.util.List;

import org.hibernate.Session;

import br.com.caelum.goodbuy.dao.ProdutoDao;
import br.com.caelum.goodbuy.modelo.Produto;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;

@Resource
public class ProdutosController {
	
	private final ProdutoDao dao;
	private final Result result;
	
	public ProdutosController(ProdutoDao dao, Result result){
		this.dao = dao;
		this.result = result;
	}
	
	public List<Produto> lista(){
		return dao.listaTudo();
	}
	
	public void adiciona(Produto produto){
		dao.salva(produto);
		result.redirectTo(ProdutosController.class).lista();
	}
	
	public void formulario(){
	
	}

	public Produto edita(Long id){
		return dao.carrega(id);
	}
	
	public void altera(Produto produto){
		dao.atualiza(produto);
		result.redirectTo(ProdutosController.class).lista();
	}
	
	public void remove(Long id){
		Produto produto = dao.carrega(id);
		dao.remove((Session) produto);
		result.redirectTo(ProdutosController.class).lista();
	}
	
}	

Help…

Achei o problema.

Na Classe CriadorDeSession meu método getInstance estava nulo. Coloquei para ele retornar uma Session e voltou.

Antes…

public Session getInstance() {  
        return null;  
    }  

Depois…

public Session getInstance() {
		return this.session;
	}