Opa 
Tenho a seguinte chamada no meu método:
if((temp.getCdGrupoRemarcacao() != null && produtoNaoControladoTO.getCdGrupoRemarcacao() != null &&
temp.getCdGrupoRemarcacao() == produtoNaoControladoTO.getCdGrupoRemarcacao()) ||
temp.getCdProduto() != null && produtoNaoControladoTO.getCdProduto() != null &&
temp.getCdProduto() == produtoNaoControladoTO.getCdProduto())
{
Nessa linha: temp.getCdProduto() == produtoNaoControladoTO.getCdProduto(), os valores são iguais ( eu debuguei e observei ) mas o compilador encara como um valor diferente.
Como resolver isso?