0

Hola tengo el siguiente mensaje de error:

 java.lang.NullPointerException
    at TestGestors.tanca(TestGestors.java:350)
    at TestGestors.classEnds(TestGestors.java:90)

Alguien sabe que puede significar? El programa es muy extenso y no quiero tener que colapsar esto.. sialguien me da una ayuda o me indica que puede ser..

gracias!

---- edito

linea 350:

  private void tanca(){  //tanquem l'EntityManager
        em.close();
        emf.close();
    }
Montse Mkd
  • 1,229
  • 4
  • 13
  • 35
  • 1
    Una referencia `null` – Klaimmore Mar 20 '18 at 12:22
  • 1
    Hola @MontseMkd, como se ve en el error que has puesto (NullPointerException) estás intentando llamar a un método o propiedad de un objeto que es nulo y eso te pasa en la línea 350 de la clase TestGestors, sin ver el código poco más se puede decir. Puedes ver esta sección donde se indica lo que te pasa: https://es.stackoverflow.com/questions/42977/cu%C3%A1l-es-la-soluci%C3%B3n-a-todos-los-errores-nullpointerexception-presentes-pasados – Pablo Simon DiEstefano Mar 20 '18 at 12:23
  • editado.. no se si subir todo el programa.. quizás es una tontería pero no lo sé – Montse Mkd Mar 20 '18 at 12:26
  • 1
    ese error sale cuando no iniciaste un objeto o este ha sido eliminado. – Shassain Mar 20 '18 at 12:46
  • 2
    Yo creo que debes depurar antes de preguntar. Mira en tu codigo el porque el `em` esta en `null`. Agrega puntos de interrupción, luego, si estas convencida de que deberia ser distinto a `null` pregunta el porque no se inicializa correctamente poniendo el codigo *relevante* – Klaimmore Mar 20 '18 at 12:49
  • tambien podrias mortrar la **linea 90** que indica ahi. – Shassain Mar 20 '18 at 13:49

1 Answers1

1

NullPointerException: es una excepcion de java que indica que un objeto se encuentra sin objeto, valga la redundancia.

Caso 1:(Objeto no inicializado) Es decir un objeto ha sido creado pero no inicializado, en java se inicializa un objeto con la palabra reservada new, seguido del nombre del objeto que se desea instanciar.

Ejemplo:

import java.util.ArrayList;
public class TestNullException {
    public static void main (String [] Args) {
        ArrayList<Integer> Numeros;
        Integer suma = 0;
        for (Integer numero : Numeros) {//error de java.lang.NullPointerException, por no iniciar Numeros con new ArrayList<Integer>(),
            suma = suma + numero;
        }
        System.out.println ("El sumatorio actual es: " + suma);    
    }     
}

caso 2:(Objeto eliminado) Es decir en algún momento el objeto se ha inicializado e instanciado, pero este fue eliminado, es decir fue apuntado a null.

Ejemplo:

import java.util.ArrayList;
public class TestNullException {
    class EjemploNull{
        String nombre;
        EjemploNull(String nombre){
            this.nombre=nombre;
        }
        public static String GetNombre(){
            return this.nombre
        }   
    }
    public static void main (String [] Args) {
        EjemploNull nom=new EjemploNull("Juan");
        ...
        ...//mucho codigo utilizando nom sin problemas
        ...
        nom=null;//por algun motivo lo pusiste en null, tal vez sin querer
        ...// mas codigo sin darte cuenta del error
        String nuevo_nombre=nom.GetNombre();//error de java.lang.NullPointerException
        ...//el resto del codigo

    }     
}

Creo que el segundo caso puede replicar tu problema.

Espero que algo de esto te sirva.

Shassain
  • 5,440
  • 6
  • 31
  • 61