Erro GlassFish

Alguém me da uma luz ?

Segue o erro:

[#|2013-05-20T17:20:50.044-0300|WARNING|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=38;_ThreadName=Thread-2;|StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception java.lang.NullPointerException at repositorio.TimeRepository.getLista(TimeRepository.java:44) at controle.TimeBean.getTimes(TimeBean.java:55) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at javax.el.BeanELResolver.getValue(BeanELResolver.java:363) at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) at com.sun.el.parser.AstValue.getValue(AstValue.java:138) at com.sun.el.parser.AstValue.getValue(AstValue.java:183) at com.sun.el.parser.AstEmpty.getValue(AstEmpty.java:66) at com.sun.el.parser.AstNot.getValue(AstNot.java:63) at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224) at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109) at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:413) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1751) at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1757) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760) at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402) at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:722) |#]

Não tenha medo de ler a mensagem de erro, ela está mostrando a classe e a linha onde o erro ocorre:

[quote]java.lang.NullPointerException
at repositorio.TimeRepository.getLista(TimeRepository.java:44) [/quote]

Dá medo !
O problema é (eu acho) que o query.getResultList(); retorna uma LISTA, e precisa retorna uma LISTA, o que eu posso fazer ?
TimeRepository.class

[code]package repositorio;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import entity.Jogador;
import entity.Time;

public class TimeRepository {
private EntityManager manager;

public TimeRepository(EntityManager manager) {
	this.manager = manager;
}

public void adiciona(Time time){
	this.manager.persist(time);
}

public void remove(Long id){
	Time time = this.procura(id);
	Query query = this.manager.createQuery("select x from Jogador x where x.time = time");
	query.setParameter("time", time);
	@SuppressWarnings("unchecked")
	List<Jogador> jogadores = query.getResultList();
	for(Jogador jogador : jogadores){
		jogador.setTime(null);
	}
	this.manager.remove(time);
}

public Time atualiza(Time time){
	return this.manager.merge(time);
}

public Time procura(Long id){
	return this.manager.find(Time.class, id);
}

public List<Time> getLista(){
	Query query = this.manager.createQuery("select x from Time x");
	return query.getResultList();
}

public EntityManager getManager() {
	return manager;
}

public void setManager(EntityManager manager) {
	this.manager = manager;
}

}[/code]

TimeBean.class

[code]package controle;

import java.util.List;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletRequest;

import repositorio.TimeRepository;

import entity.Time;

@ManagedBean
public class TimeBean {
private Time time = new Time();
private List times;

public void adiciona(){
	EntityManager manager = this.getManager();
	TimeRepository repository = new TimeRepository(manager);
	if(this.time.getId() == null){
		repository.adiciona(this.time);
	}else{
		repository.atualiza(this.time);
	}
	this.time = new Time();
	this.times = null;
	
}

public void preparaAlteracao(){
	Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
	Long id = Long.parseLong(params.get("id"));
	EntityManager manager = this.getManager();
	TimeRepository repository = new TimeRepository(manager);
	this.time = repository.procura(id);
}

public void remove() {
	Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
	Long id = Long.parseLong (params.get("id"));
	EntityManager manager = this.getManager();
	TimeRepository repository = new TimeRepository(manager);
	repository.remove(id);
	this.times = null ;
}

public List <Time> getTimes() {
	if(this.times == null) {
	EntityManager manager = this.getManager();
	TimeRepository repository = new TimeRepository(manager);
	this.times = repository.getLista();
	}
	return this.times;
}

private EntityManager getManager(){
	FacesContext fc = FacesContext.getCurrentInstance();
	ExternalContext ec = fc.getExternalContext();
	HttpServletRequest request = (HttpServletRequest) ec.getRequest();
	return (EntityManager) request.getAttribute("EntityManager");
}

public Time getTime() {
	return time;
}

public void setTime(Time time) {
	this.time = time;
}

public void setTimes(List<Time> times) {
	this.times = times;
}

}[/code]

[quote=caosfast]Dá medo !
O problema é (eu acho) que o query.getResultList(); retorna uma LISTA, e precisa retorna uma LISTA, o que eu posso fazer ?
[/quote]
Faça o debug e veja quem está null.

Provavelmente o erro está aqui:

private EntityManager getManager(){ FacesContext fc = FacesContext.getCurrentInstance(); ExternalContext ec = fc.getExternalContext(); HttpServletRequest request = (HttpServletRequest) ec.getRequest(); return (EntityManager) request.getAttribute("EntityManager"); }

Seu EntityManager não deveria vir do request.