Hoy queremos compartir la solución a una excepción de tipo NullPointerException que se nos ha presentado durante el desarrollo de un proyecto en el que estamos usando Git desde JDeveloper. La versión de JDeveloper que estamos usando es la 12.2.1.0, pero es muy probable que el error se presente en otras versiones también.
Creamos una aplicación Web tipo fusión común y corriente, creamos su proyecto modelo y vista sin problemas. Luego inicializamos el repositorio local Git por medio del menú Team->Version Application. Todo funcionó correctamente. Sin embargo, cuando queremos crear una rama nueva por medio del plugin Git de JDeveloper, se nos presenta el siguiente error:
La misma ventana que usa JDeveloper para todos sus errores no controlados. Si hacemos clic en el enlace View Error Details, obtenemos el siguiente log de mensajes:
Claramente podemos observar una NullPointerException en el log, pero la clase en la que se lanza la excepción, org.netbeans.libs.git.jgit.commands.CreateBranchCommand, no está en nuestro proyecto. Nos dimos a la tarea de revisar el código de dicha clase para tratar de encontrar la razón del error y pudimos encontrar que algo pasaba al tratar de obtener la revisión desde la cual se va a crear la nueva rama. De esta manera, cuando volvimos a crear la nueva rama presionamos el botón que nos permite seleccionar el commit desde el cual queremos crearla y obtuvimos otro error, pero con un mensaje mucho más significativo:
Este mensaje de error nos dice que existe un carácter ilegal en la ruta del proyecto y si nos fijamos bien, la carpeta “Proyectos ADF” tiene un espacio en su nombre… Una vez corregimos el nombre de la carpeta para que no tuviera espacios, todo funcionó correctamente.
Así que como regla general, no creen sus proyectos dentro de carpetas en las que su nombre contenga espacios. De seguro al desarrollador que le pasó esto, después de invertir 3 horas buscando su solución, no le volverá a pasar :p