Eclipse Servers

Conversión de cadenas vacías en tipos no primitivos

Hace poco actualizando Eclipse me encontraba con el problema de que a pesar de que las aplicaciones se desplegaban en el servidor correctamente (Tomcat en este caso), los formularios de las vistas no funcionaban como se esperaba. En concreto, había campos de formulario vacíos que se convertían en valores reales (no nulos) al trasladarse al backing bean. Por ejemplo, un elemento de texto que estaba vacío en el formulario, al trasladarse a una propiedad de tipo Long del backing bean se convertía en 0L en lugar de en el valor null esperado.

El problema parece estar causado en un cambio en la especificación EL.

Para solucionar este problema en Tomcat, que se comporta de esta manera a partir de la versión 6.0.16, podemos arrancar el servidor añadiendo en el arranque la opción: -Dorg.apache.el.parser.COERCE_TO_ZERO=false

En eclipse haremos doble click sobre el servidor tomcat en la pestaña de servidores:

Accederemos a la configuración de arranque pulsando sobre el enlace “Open launch configuration”:

Eclipse Servers

Eclipse Servers

Overview del servidor

Overview del servidor

Añadiremos la opción mencionada anteriormente en el cuadro de texto “VM Arguments” de la pestaña “Arguments”:

Argumentos de arranque

Argumentos de arranque

Fuente