La revisión del código en cuanto a recomendaciones de J2EE consta de una sola categoría; también denominada Recomendaciones de J2EE.
Ciertas reglas en la revisión del código requieren análisis del flujo de datos para detectar algunos hallazgos. el Análisis del flujo de datos realiza un seguimiento de la vía de acceso a un hallazgo. En consecuencia, la revisión del código tarda más en terminar cuando se siguen estas reglas.
La tabla siguiente lista todas las categorías y subcategorías de la revisión del código en cuanto a las recomendaciones de J2EE, junto con una descripción de las reglas de cada una. En la columna de la izquierda, las categorías aparecen en negrita y las subcategorías en texto plano.
Categoría o subcategoría | Descripción |
---|---|
Recomendaciones de J2EE | Contiene reglas basadas en las recomendaciones de desarrollo de J2EE y da soporte a proyectos web destinados a servidores de WebSphere |
Corrección | Contiene reglas para detectar llamadas a métodos incorrectos |
Intentos simultáneos de acceso a datos | Contiene reglas para detectar invocaciones de métodos que pueden generar condiciones de intentos simultáneos de acceso a datos en aplicaciones J2EE |
Recopilación de información no válida (basura) | Contiene reglas para detectar invocaciones de métodos que pueden retrasar la recopilación de información no válida (basura) |
Capacidad de mantenimiento | Contiene reglas para detectar código que puede ser difícil de mantener en aplicaciones J2EE |
Rendimiento y escalabilidad | Contiene reglas para detectar invocaciones de método que obstaculizan el rendimiento o limitan la escalabilidad de una aplicación J2EE |
Gestión de recursos | Contiene reglas de recomendaciones J2EE para utilizar recursos en aplicaciones J2EE |
La revisión del código en cuanto a las recomendaciones de J2EE aplica reglas que son de dos tipos: reglas rápidas y reglas detalladas. Las características que diferencian los tipos de regla son el tiempo que tarda la regla en aplicarse y el tipo de información que presenta la regla en un hallazgo.
Reglas J2EE rápidas
Las reglas J2EE rápidas tardan menos tiempo en aplicarse en la revisión del código en cuanto a las recomendaciones de J2EE que las reglas detalladas. Las reglas rápidas presentan la misma información para un hallazgo que las reglas de las otras revisiones del código.
Reglas J2EE detalladas
Las reglas J2EE detalladas requieren un análisis del flujo de datos por lo que tardan más tiempo en generar hallazgos que las reglas rápidas. Las reglas detalladas de J2EE no generan hallazgos, pero también muestran las vías de acceso de las que provienen los hallazgos. Estas reglas requieren un análisis del flujo de datos, el método que realiza el seguimientos de las vías de acceso, por lo que pueden tardar más en generar hallazgos que las reglas rápidas. Las reglas detalladas proporcionan la siguiente información adicional:Hay 36 reglas J2EE detalladas. La columna izquierda de la tabla siguiente lista las subcategorías que las contienen. La columna de la derecha lista o describe las reglas de la subcategoría que son reglas J2EE detalladas.
Categoría o subcategoría | Regla J2EE detallada |
---|---|
Corrección | Evite almacenar objetos que no implementen java.io.Serializable en javax.servlet.http.HttpSession |
Intentos simultáneos de acceso a datos | Evite asignar a cualquier campo estático desde javax.servlet.Service.service() sin utilizar un bloqueo compartido Evite asignar al servlet campos de instancia, desde javax.servlet.Service.service(), sin utilizar un bloqueo compartido |
Rendimiento y escalabilidad | Siempre llame a javax.servlet.http.HttpSession.invalidate() después de javax.servlet.http.HttpServletRequest.getSession() |
Gestión de recursos | Las 32 reglas de esta subcategoría son reglas J2EE detalladas. |
Este apartado contiene un ejemplo de cada tipo de regla que se aplica en la revisión del código en cuanto a las recomendaciones de J2EE.
Regla rápida de ejemplo
La siguiente regla es una regla rápida de ejemplo que está en la subcategoría Rendimiento y escalabilidad.
Evite llamar java.lang.Runtime desde cualquier servlet
Regla detallada de ejemplo
Siempre llame a java.io.FileInputStream.close() después del nuevo java.io.FileInputStream(java.io.File)
Este apartado ofrece información sobre problemas conocidos relacionados con la revisión del código en cuanto a las recomendaciones de J2EE.
Falso positivo: Una corriente de datos de entrada que no se ha cerrado
Resumen: La revisión del código en cuanto a las recomendaciones de J2EE genera un hallazgo que indica que una corriente de datos de entrada no se ha cerrado. En realidad, no hay ninguna corriente de datos de entrada para cerrar.
public static int readFirstByte(String fileName) { int firstByte = -1; FileInputStream fis=null; BufferedInputStream bis = null; try { fis = new FileInputStream(fileName); bis = new BufferedInputStream(fis); firstByte = bis.read(); } catch (FileNotFoundException fnfe) { LogUtility.log(fnfe); } catch (IOException ioe) { LogUtility.log(ioe); } finally { if (bis!=null){ try { bis.close(); } catch (IOException ioe){ LogUtility.log(ioe); } } } return firstByte; }
Solución provisional: Pulse el botón derecho del ratón sobre el hallazgo falso positivo y pulse Ignorar.
Información insuficiente: Se informa del hallazgo con relación a un archivo .classpath
Resumen: La revisión del código en cuanto a las recomendaciones de J2EE genera un hallazgo en el archivo .classpath y no en un recurso del área de trabajo.
Descripción: La revisión del código encuentra un problema con un tipo binario y ese tipo no tiene ningún recurso correspondiente en el área de trabajo porque lo contiene una JAR externo.
Referencia: RFE RATLC00038795
Solución provisional:
Filtros del recurso: No funcionan con las reglas detalladas
Resumen: En la página Filtros del recurso especifique los archivos que no desea que sigan una regla detallada durante una revisión del código. Sin embargo, el filtro no funciona y la regla se continúa aplicando a los archivos especificados.
Descripción: Las reglas detalladas de J2EE funcionan de forma distinta cuando sucede que el usuario ha especificado que no desea aplicar una regla durante una revisión del código. Las reglas detallas no reorganizan los archivos especificados en la página Filtros del recurso pero sí reconocen los archivos de la página Excluido, en la que por omisión se listan los archivos JAR. Estas reglas reconocen dos tipos de archivo para excluir, un servlet con nombre completo o un archivo JAR, e ignoran todo lo demás.