[RESOLVIDO]arrayList Null

Pessoal , meu arrayList esta vindo nullo, alguem Pode me ajudar ???

	private List<AnaliseContratada> analisesContratadas = new ArrayList<AnaliseContratada>();


@Entity
@Domain( { "Analise", "Orcamento", "ExecucaoAnalise" })
public class AnaliseContratada extends Entidade {

	private static final long serialVersionUID = -4124578908606135742L;

	@OneToOne(fetch = FetchType.EAGER)
	private Analise analise;

	@OneToOne(fetch = FetchType.EAGER)
	private Unidade unidade;

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
	private List<ExecucaoAnalise> execucoes = new ArrayList<ExecucaoAnalise>();

	/**
	 * Especificacoes que esta analise esta seguindo
	 */
	@ManyToMany
	private List<AnaliseEspecificada> analisesEspecificadas = new ArrayList<AnaliseEspecificada>();

	protected AnaliseContratada() {
	}

	public AnaliseContratada(Analise analise) {
		this(analise, analise.getUnidadePadrao());
	}

	public AnaliseContratada(Analise analise, Unidade unidade) {
		this.analise = analise;
		this.unidade = unidade;
	}

	public boolean especificadaPor(AnaliseEspecificada analiseEspecificada) {
		return this.analisesEspecificadas.contains(analiseEspecificada);
	}

	public void removerEspecificacao(AnaliseEspecificada analiseEspecificada) {
		this.analisesEspecificadas.remove(analiseEspecificada);
	}

	public List<AnaliseEspecificada> getAnalisesEspecificadas() {
		return analisesEspecificadas;
	}

	public AnaliseEspecificada getPrimeiraAnaliseEspecificada() {
		if (this.analisesEspecificadas.size() == 0) {
			return null;
		}
		return this.analisesEspecificadas.get(0);
	}

	public void adicionarEspecificacao(AnaliseEspecificada analiseEspecificada) {
		if (!analisesEspecificadas.contains(analiseEspecificada)) {
			this.analisesEspecificadas.add(analiseEspecificada);
		}
	}

	public boolean isEspecificada() {
		return !this.analisesEspecificadas.isEmpty();
	}

	public List<ExecucaoAnalise> getExecucoes() {
		return execucoes;
	}

	public void setExecucoes(List<ExecucaoAnalise> resultados) {
		this.execucoes = resultados;
	}

	public boolean isExecucaoAprovada(Amostra amostra) {
		ExecucaoAnalise execucao = this.getExecucao(amostra);
		return execucao == null || execucao.isResultadoAprovado();
	}

	public ExecucaoAnalise getExecucao(Amostra amostra) {
		for (ExecucaoAnalise execucaoAnalise : execucoes) {
			if (execucaoAnalise.getAmostra().equals(amostra)) {
				return execucaoAnalise;
			}
		}
		return null;
	}

	public ExecucaoAnalise criarExecucao(Amostra amostra) {
		ExecucaoAnalise execucaoAnalise = new ExecucaoAnalise(this, amostra);
		return execucaoAnalise;
	}

	public void adicionaExecucao(ExecucaoAnalise execucaoAnalise) {
		this.execucoes.add(execucaoAnalise);
	}

	public boolean possuePeloMenosUmEnsaioComExecucaoIniciada() {
		for (ExecucaoAnalise execucaoAnalise : this.execucoes) {
			if (execucaoAnalise.isIniciada()) {
				return true;
			}
		}
		return false;
	}

	public void voltarExecucoesParaAprovacao() {
		for (ExecucaoAnalise execucaoAnalise : execucoes) {
			if (execucaoAnalise.isResultadoAprovado()) {
				execucaoAnalise.voltarParaAprovacao();
			}
		}
	}

	public Unidade getUnidade() {
		return unidade;
	}

	public void setUnidade(Unidade unidade) {
		this.unidade = unidade;
	}

	public void accept(Visitor<AnaliseContratada> visitor) {
		visitor.visit(this);
	}

	public void setAnalisesEspecificadas(
			List<AnaliseEspecificada> analisesEspecificadas) {
		this.analisesEspecificadas = analisesEspecificadas;
	}

	public boolean isConcorrente(AnaliseContratada outra) {
		return this.analise.equals(outra.analise)
				&& this.unidade.equals(outra.unidade);
	}

	/**
	 * Delega a obten&ccedil;&atilde;o do
	 * {@link br.com.cqa.lims.funcionario.Departamento} para a
	 * {@link br.com.cqa.lims.analise.Analise} encapsulada
	 *
	 * @see br.com.cqa.lims.analise.Analise#getDepartamento()
	 */
	public Departamento getDepartamento() {
		return this.analise.getDepartamento();
	}

	/**
	 * Delega a obten&ccedil;&atilde;o do {@link br.com.cqa.lims.analise.Ensaio}
	 * para a {@link br.com.cqa.lims.analise.Analise} encapsulada
	 *
	 * @see br.com.cqa.lims.analise.Analise#getEnsaio()
	 */
	public Ensaio getEnsaio() {
		return this.analise.getEnsaio();
	}

	public List<Especificacao> getEspecificacoes() {
		Set<Especificacao> especificacoes = new HashSet<Especificacao>();

		for (AnaliseEspecificada analiseEspecificada : analisesEspecificadas) {
			especificacoes.add(analiseEspecificada.getEspecificacao());
		}

		return new ArrayList<Especificacao>(especificacoes);
	}

	/**
	 * Delega a obten&ccedil;&atilde;o da informa&ccedil;&atilde;o de <i>LD</i>
	 * para a {@link br.com.cqa.lims.analise.Analise} encapsulada e aplica o
	 * convers&atilde;o de unidades
	 *
	 * @return {@link I18NBigDecimal} gerado a partir do <i>LD</i> convertido na
	 *         unidade contratada
	 *
	 * @throws LimsRuntimeException
	 *             caso haja erro de convers&atilde;o de unidades (gerada por um
	 *             {@link ConversaoInvalidaException})
	 *
	 * @see br.com.cqa.lims.analise.Analise#getLd()
	 */
	public I18NBigDecimal getLd() throws LimsRuntimeException {
		if (this.analise.getLd() == null) {
			return null;
		}
		if (!this.analise.getUnidadePadrao().isConversivel(this.unidade)) {
			return analise.getLd();
		}

		try {
			ValorUnidade valor = new ValorUnidade(
					(UnidadeQuantitativa) this.analise.getUnidadePadrao(),
					this.analise.getLd());
			return valor.getValorConvertido((UnidadeQuantitativa) this.unidade);
		} catch (ConversaoInvalidaException e) {
			return analise.getLd();
		}
	}

	/**
	 * Delega a obten&ccedil;&atilde;o da informa&ccedil;&atilde;o de <i>LQ</i>
	 * para a {@link br.com.cqa.lims.analise.Analise} encapsulada e aplica o
	 * convers&atilde;o de unidades
	 *
	 * @return {@link I18NBigDecimal} gerado a partir do <i>LQ</i> convertido na
	 *         unidade contratada
	 *
	 * @throws LimsRuntimeException
	 *             caso haja erro de convers&atilde;o de unidades (gerada por um
	 *             {@link ConversaoInvalidaException})
	 *
	 * @see br.com.cqa.lims.analise.Analise#getLq()
	 */
	public I18NBigDecimal getLq() throws LimsRuntimeException {
		if (this.analise.getLq() == null) {
			return null;
		}
		if (!this.analise.getUnidadePadrao().isConversivel(this.unidade)) {
			return analise.getLq();
		}
		try {
			ValorUnidade valor = new ValorUnidade(
					(UnidadeQuantitativa) this.analise.getUnidadePadrao(),
					this.analise.getLq());
			return valor.getValorConvertido((UnidadeQuantitativa) this.unidade);
		} catch (ConversaoInvalidaException e) {
			return this.analise.getLq();
		}
	}

	/**
	 * Delega a obten&ccedil;&atilde;o do {@link br.com.cqa.lims.analise.Matriz}
	 * para a {@link br.com.cqa.lims.analise.Analise} encapsulada
	 *
	 * @see br.com.cqa.lims.analise.Analise#getMatriz()
	 */
	public Matriz getMatriz() {
		return this.analise.getMatriz();
	}

	/**
	 * Delega a obten&ccedil;&atilde;o do {@link br.com.cqa.lims.analise.Metodo}
	 * para a {@link br.com.cqa.lims.analise.Analise} encapsulada
	 *
	 * @see br.com.cqa.lims.analise.Analise#getMetodo()
	 */
	public Metodo getMetodo() {
		return this.analise.getMetodo();
	}

	/**
	 * Delega a obten&ccedil;&atilde;o da informa&ccedil;&atilde;o de prazo para
	 * a {@link br.com.cqa.lims.analise.Analise} encapsulada
	 *
	 * @see br.com.cqa.lims.analise.Analise#getPrazo()
	 */
	public int getPrazo() {
		return this.analise.getPrazo();
	}

	/**
	 * Delega a obten&ccedil;&atilde;o da informa&ccedil;&atilde;o de
	 * pre&ccedil;o para a {@link br.com.cqa.lims.analise.Analise} encapsulada
	 *
	 * @see br.com.cqa.lims.analise.Analise#getPreco()
	 */
	public Dinheiro getPreco() {
		return this.analise.getPreco();
	}

	public AnaliseContratada clone() {
		AnaliseContratada result = new AnaliseContratada();
		result.setAnalise(this.analise);
		result.setUnidade(this.unidade);
		return result;
	}

	/**
	 * @deprecated Este m&eacute;todo deveria ser <b><code>protected</code></b>.<br>
	 *             &Eacute; utilizado em alguns testes. <b>N&Atilde;O deve ser
	 *             mais utilizado.</b>
	 */
	public Analise getAnalise() {
		return analise;
	}

	protected void setAnalise(Analise analise) {
		this.analise = analise;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = super.hashCode();
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		result = prime * result + ((analise == null) ? 0 : analise.hashCode());
		result = prime * result + ((unidade == null) ? 0 : unidade.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (!super.equals(obj))
			return false;
		if (getClass() != obj.getClass())
			return false;
		AnaliseContratada other = (AnaliseContratada) obj;
		if (id != null && other.id != null) {
			return id.equals(other.id);
		} else {
			if (analise == null) {
				if (other.analise != null)
					return false;
			} else if (!analise.equals(other.analise))
				return false;
			if (unidade == null) {
				if (other.unidade != null)
					return false;
			} else if (!unidade.equals(other.unidade))
				return false;

			return true;
		}
	}

}

*****************************************************************************************************************
@Stateless
public class ItemOrcamentoHelper{

	InitialContext ini;

		
	private Integer numeroAmostras = 0;
	
	@Embedded
	private AjusteFinanceiro ajusteFinanceiro = new AjusteFinanceiro();
	
	private List<AnaliseContratada> analisesContratadas = new ArrayList<AnaliseContratada>();
	
	
	public Dinheiro getTotalPorAmostra() {
		try {
			ini = new InitialContext();
			
			Map<Long, Dinheiro> metodosPrecificaveis = new HashMap <Long, Dinheiro>();
			Map <Long, GruposDoMetodo> todosOsMetodosComPrecoPorGrupoEspec = new HashMap <Long, GruposDoMetodo>();
		    Dinheiro total = new Dinheiro(0.0D);
			
			PrecoPorMetodoServiceLocal PrecoPorMetodoBean = (PrecoPorMetodoServiceLocal)ini.lookup("PrecoPorMetodoServiceBean/local");
			
			
			todosOsMetodosComPrecoPorGrupoEspec = listaTodosMetodosDaAmostraComPrecoGrupo(analisesContratadas);
	

Alguem pode me ajudar ???

Você já verificou se a sua query está retornando os valores que você está buscando?

utilizei o modo Debug e coloquei um breakpoint na linha abaixo

    private List<AnaliseContratada> analisesContratadas = new ArrayList<AnaliseContratada>();  

e verifiquei com a variavel analisesContratadas esta nulla ,

Como eu posso verificar a Query ???

Obs, habilitei meu persitence.xml a tag show_sql = true

obrigado

Evandro

Pode soar meio besta isso, mas por via das dúvidas, verifique as importações dos dois elementos:

import java.util.ArrayList;
import java.util.List;

Andre, estao todos importados :

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;


import javax.ejb.EJB;

import br.com.cqa.lims.financeiro.Dinheiro;
import br.com.cqa.lims.financeiro.AjusteFinanceiro;
import br.com.cqa.lims.orcamento.GruposDoMetodo;
import br.com.cqa.lims.analise.AnaliseContratada;
import br.com.cqa.lims.analise.Especificacao;
import br.com.cqa.lims.analise.Metodo;
import br.com.cqa.lims.orcamento.ItemOrcamento;

import org.hibernate.validator.Min;
import javax.persistence.Embedded;


import br.com.cqa.lims.orcamento.PrecoPorMetodoServiceBean;
import br.com.cqa.lims.orcamento.PrecoPorMetodoServiceLocal;

import br.com.cqa.lims.orcamento.PrecoPorMetodo;

import br.com.cqa.lims.orcamento.OrcamentoServiceLocal;
import br.com.cqa.lims.orcamento.OrcamentoServiceBean;

import br.com.cqa.lims.util.ServiceLocator;

import javax.ejb.Stateless;


import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;


import javax.naming.InitialContext;
import javax.persistence.Tuple;

import java.util.Map;
import java.util.HashMap;
import br.com.cqa.lims.analise.Metodo;

tenta iniciar a variável no construtor e veja se ela é instanciada.

private List&lt;AnaliseContratada&gt; analisesContratadas;

public AnaliseContratada(){
   analisesContratadas = new ArrayList&lt;AnaliseContratada&gt;();  
}

isso daí ta estranho :roll:

coloquei assim :

	private List<AnaliseContratada> analisesContratadas = new ArrayList<AnaliseContratada>();
	
	
	public AnaliseContratada(){  
		   analisesContratadas = new ArrayList<AnaliseContratada>();    
		} 	

esta dando o seguinte erro :

invalid method declaration; return type required

Eu vou colocar o RETURN ??? O que eu iria retornar ???

retornaria sua lista.
já tentou dar um new na lista imediatamente antes de usá-la?..

Que bixo doido o.O

Cria uma nova classe ai e implementa um método main.

public class TesteDessaBizarrice{

private List&lt;AnaliseContratada&gt; analisesContratadas;  

    public TesteDessaBizarrice(){
      this.analisesContratadas = new ArrayList&lt;AnaliseContratada&gt;();
    }

    public List&lt;AnaliseContratada&gt; getAnalisesContratadas(){
      return this.analisesContratadas;
    }

    public void setAnalisesCOntratadas(List&lt;AnalisesContratadas&gt; analisesContratadas){
      this.analisesContratadas = analisesContratadas;
    }

    public static void main(String ... args){
       TesteDessaBizarrice tdb = new TesteDessaBizarrice();
       tdb.getAnalisesContratadas().size();
    }

}

tenta isso dae, vamos ver se o que está faltando é o javabeans e veja se compila O.O

Como assim um “New”???

fiz o seguinte :

public class TesteAnaliseContratada {
	
	private List<Analisecontratada> analisesContratadas;    
	  
    public TesteAnaliseContratada(){  
      this.analisesContratadas = new ArrayList<Analisecontratada>();  
    }  
  
    public List<Analisecontratada> getAnalisesContratadas(){  
      return this.analisesContratadas;  
    }  
  
    public void setAnalisesCOntratadas(List<Analisecontratada> analisesContratadas){  
      this.analisesContratadas = analisesContratadas;  
    }  

}

main :

	public static void main(String[] args) {
	 		
		TesteAnaliseContratada tdb = new TesteAnaliseContratada();  
	       tdb.getAnalisesContratadas().size();  

Esta retornando para mim “0” no tdb.getAnalisesContratadas().size();

A variável estará nula pois o breakpoint para antes do null.

Por favor, se você está com um erro, poste o stack trace e também destaque no seu código a linha onde o erro ocorre.

Tenho certeza absoluta que não é no ponto onde você está nos dizendo.

Fiz assim :


		TesteAnaliseContratada tdb = new TesteAnaliseContratada();  
	       tdb.getAnalisesContratadas().size();  
	       
	       System.out.println("Passou");

Coloquei um breakpoint no Sytem…e mesmo assim o “tdb.getAnalisesContratadas().size()” esta zero…

Estou utilizando o DEBUG - > DEGUG AS - > JAVA APLICATION

Então deu certo uai, se o objeto estivesse nulo, não exibiria o “0”, nesse caso, o objeto foi criado com sucesso, só está vazio. Você verificou o que o Vini falou?

Pessoal,

Obrigado a todos,

resolvi da seguinte forma

	private List<AnaliseContratada> analisesContratadas;
	
	public  ItemOrcamentoHelper (ItemOrcamento itemorcamento) {
		this.analisesContratadas = itemorcamento.getAnalisesContratadas();
	}