Revisión de código - Notas de release


1.0 Problemas conocidos
   1.1 Las reglas definidas por usuario no pueden incluir explicaciones y ejemplos
   1.2 Es posible que se supriman las coincidencias de la vista de revisiones de códigos
   1.3 No se pueden crear clases nuevas para arreglos rápidos de análisis estructurales
   1.4 No se revisa el código fuente en determinados paquetes
   1.5 El número de línea no siempre se visualiza
   1.6 Las variables de datos internas de las clases JSDK o J2EE no deben aparecer en la vía de acceso de flujo de datos
   1.7 Puede establecer la profundidad en valores negativos en Principios de diseño / Reglas de complejidad
   1.8 Problema de codificación al crear una regla utilizando caracteres ASCII no ingleses en sus parámetros
   1.9 No se informa correctamente sobre el progreso de las reglas de análisis estructurales
   1.10 En la vista principal el botón Detener/Iniciar se convierte en una amalgama
   1.11 El arreglo rápido para la regla "Evitar la utilización de java.lang.String.compareTo () para comparar series sensibles al entorno local" propone una solución incorrecta
   1.12 Ocurre un problema al crear algunas instancias de la regla de plantillas J2EE: Llamar siempre [método A] después del [método B]
   1.13 Problema potencial con la regla de plantilla de J2EE: Llamar siempre al [método A] después del [método B]
   1.14 Positivo falso en la regla definida por el usuario Evitar método de definición
   1.15 Las plantillas que toman un método no funcionan al teclear un nombre de método
   L.16 La ventana del error observado aparece al intentar configurar datos de servidor
   1.17 Problemas de la página de preferencias en el sistema operativo Linux

1.0 Problemas conocidos

1.1 Las reglas definidas por usuario no pueden incluir explicaciones y ejemplos

Cuando se crean reglas definidas por usuario utilizando las plantillas de reglas, no se pueden incluir explicaciones y ejemplos.

1.2 Es posible que se supriman las coincidencias de la vista de revisiones de códigos

Si deshace las coincidencias encontradas por las reglas en la categoría de dependencias cíclicas, se suprimen las coincidencias de la vista de detalles de revisión de código. Las coincidencias no se deben suprimir sino que deben actualizarse al estado de "no resueltas". Para solucionar este problema, seleccione las reglas de la categoría de dependencia cíclica y ejecute un análisis del espacio de trabajo.

1.3 No se pueden crear clases nuevas para arreglos rápidos de análisis estructurales

Generalmente, puede resolver un problema de código de un arreglo rápido de análisis estructural de dos maneras: 1) seleccione una clase existente a la que pueda mover el código problemático o 2) cree una clase nueva a la que pueda mover el código problemático. Si selecciona la segunda opción, un error impide la finalización del arreglo rápido.

Para solucionar este problema, cree una clase nueva antes de aplicar el arreglo rápido y seleccione esta clase en el asistente de refactorización de revisión de código.

1.4 No se revisa el código fuente en determinados paquetes

El origen contenido en los paquetes siguientes no será revisado por algunas de las reglas de procedimientos recomendados de J2EE:
1. com.ibm
2. COM.ibm
3. sun
4. sunw
5. java
6. javax
7. org.apache
8. com.sun
9. org.omg
10. org.ietf
11. org.w3c
12. org.xml

1.5 El número de línea no se visualiza siempre

En la vista Revisión de código, el número de línea no se visualiza siempre para algunos de los hallazgos detectados por las reglas de prácticas recomendadas de J2EE. Si efectúa una doble pulsación sobre el hallazgo, aparecerá en el número de línea correcto.

1.6 Las variables de datos internas de las clases JSDK o J2EE no deben aparecer en la vía de acceso de flujo de datos

Una vía de acceso de flujo de datos muestra la historia de dependencia de los cambios de datos que llevan a un problema resaltado por un hallazgo de regla. Las vías de acceso de flujo de datos aparecen en la pestaña Vía de acceso. A veces, las vías de acceso de flujo de datos visualizan estructuras de datos presentes en las clases JSDK o J2EE. Por ejemplo, en lugar de decir que se ha modificado una variable de tipo java.lang.Vector, verá que se ha modificado java.lang.Object[]variable. Esto es un campo interno de la implementación de java.lang.Vector y puede inducir a confusión el hecho de ver esta información privada visualizada en la pestaña.

1.7 Puede establecer la profundidad en valores negativos en Principios de diseño / Reglas de complejidad

En la categoría de regla de Principios de diseño, puede establecer la profundidad de las reglas de complejidad. Por ejemplo, puede cambiar la regla "Evitar la anidación de más de una 1 clase(s)" por "Evitar la anidación de más de 3 clas(es)." Para que la regla funcione correctamente, debe utilizar un número positivo para la profundidad. Sin embargo, las reglas de complejidad no aseguran actualmente que la profundidad se establezca en un número positivo. Para evitar este caso, no especifique una entrada no válida como por ejemplo cero o un número negativo.

1.8 Problema de codificación al crear una regla utilizando caracteres ASCII no ingleses en sus parámetros

Hay un problema de codificación al crear una regla a partir de una plantilla utilizando caracteres ASCII no ingleses en sus parámetros. Esto pasa por ejemplo, cuando se selecciona un tipo o un método con caracteres locales. Debido a este tema de codificación, cuando se ejecutan las reglas que se crean con estas propiedades y con caracteres ASCII no ingleses, se genera una excepción.

1.9 No se informa correctamente sobre el progreso de las reglas de análisis estructurales

No se informa correctamente sobre el progreso de la revisión de código de las reglas de análisis estructurales, esto es, el diálogo de progreso siempre indica un progreso del 100%. Debe esperar a que finalice la revisión del código.

1.10 En la vista principal el botón Detener/Iniciar se convierte en una amalgama

Ocasionalmente, al iniciar la revisión de código el botón de inicio y detención muestra un icono que es una combinación de iniciar y detener.

1.11 El arreglo rápido para la regla "Evitar la utilización de java.lang.String.compareTo () para comparar series sensibles al entorno local"

El arreglo rápido para la regla "Evitar la utilización de java.langString.compareTo () para comparar series sensibles al entorno local" propone dos soluciones para arreglar el problema detectado por la regla. La solución que sugiere <Utilice com.ibm.icu.text.Collator> no es correcta. La solución debería ser <Utilice java.text.Collator>.

1.12 Ocurre un problema al crear algunas instancias de la regla de plantillas J2EE: Llamar siempre [método A] después del [método B]

Si crea una regla nueva con la plantilla de regla de J2EE "Llamar siempre [método A] después del [método B]," cuando [método B] es un constructor predeterminado en el área de trabajo y cuando la regla se ejecuta en una revisión de código, la regla no generará hallazgos de regla.

1.13 Problema potencial con la regla de plantilla de J2EE: Llamar siempre al [método A] después del [método B]

Al crear una regla nueva para una instancia de objeto específica de la regla de plantilla de procedimientos recomendados de J2EE: "Llamar siempre al [método A] después del [método B]" puede generar hallazgos de regla incorrectos en el próximo caso específico para el que se define una regla. Si selecciona métodos del patrón "Llamar siempre al [método A] después del [método B]" donde, en el código J2EE, las instancias de objeto de los métodos tienen un ciclo de vida mayor que el ciclo de vida del servlet analizado, puede detectar resultados de reglas incorrectos. Por ejemplo, considere el código siguiente:

public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {

// Código aquí.... final ServletOutputStream outStream = response.getOutputStream(); //... Ninguna llamada a response.flushBuffer después. }

para el que crea la regla: "Llamar siempre a ServletResponse.flushBuffer() después de ServletResponse.getOutputStream()" Puesto que el objeto de respuesta es una instancia que tiene un ciclo de vida mayor que el del servlet, esto puede originar un problema para el análisis de revisión de código. Puede ver algunos hallazgos en otros servlets que tratan el problema del servlet actual. Tenga en cuenta que la creación de reglas para tales instancias de objeto específicas es cuestionable.

1.14 Positivo falso en la regla definida por el usuario Evitar método de definición

Si crea una regla nueva utilizando la plantilla de regla "Evitar método de definición" y selecciona un método con un nombre totalmente calificado, en la revisión de código solo se utilizan el nombre del método y de los parámetros. El foco de la plantilla de regla está en la firma de los métodos por lo que la información del nombre de clase y el paquete carece de significado.

1.15 Las plantillas que toman un método no funcionan al teclear un nombre de método

Al crear una regla nueva a partir de una plantilla de regla proporcionada, no teclee el nombre de un método. Seleccione el método utilizando el navegador.

1.16 La ventana del error observado aparece al intentar configurar datos de servidor

Cuando esté configurando datos de servidor y aparezca una ventana de error observado, cierre la página correspondiente al archivo .java (código de página) y vuelva a intentar configurar los datos.

1.17 Problemas de la página de preferencias de los sistemas operativos Linux

En Linux, en la página Preferencias, no podrá ver todas las categorías de reglas ni detalles de reglas cuando la revisión de código seleccionada contenga una gran cantidad de reglas. La solución consiste en seleccionar Revisión de código rápida en la página Preferencias, cerrar la página y volver a abrirla. A continuación podrá seleccionar cualquier revisión de código y esta aparecerá correctamente.

Volver al archivo readme principal