7. Cambios en este lanzamiento

7.1. Resolución de errores

Cliente de la aplicación

999465 - versión de nombrado equivocada appclient.xml

El subsistema de nombrado fallaría al iniciar debido a un número de versión incorrecto en el archivo appclient.xml, causando un problema de dependencias. Esta versión ha sido corregida y el appclient se lanza de manera exitosa.
1003104 - appclient se cuelga al ejecutar el archivo .jar por fuera de un .ear

Existía un problema con el código del appclient que no permitía la ejecución directa de archivos .jar. Se agregó código adicional al appclient para corregir este problema y ahora los archivos jar se pueden ejecutar directamente.

Carga de clases

959478 - Agregar las rutas sun.nio.cs & sun.nio.ext a sun.jdk module

Los paquetes que faltan en el módulo sun.jdk generaban una excepción ServiceConfigurationError al tratar de cargar grupos de caracteres personalizados al utilizar sun.jdk. Este lanzamiento de JBoss EAP 6 ha agregado los paquetes que faltaban sun.nio.cs y sun.nio.cs.ext y por lo tanto los grupos de caracteres personalizados se pueden utilizar con el módulo sun.jdk.

CLI

977407 - jboss-cli.sh genera IllegalArgumentException al usar el autocompletado por tabulación

En algunas situaciones la herramienta jboss-cli terminaba cuando el usuario trataba de utilizar la funcionalidad de autocompletado por tabulación. Esto se ha solucionado y ahora el autocompletado por tabulación funciona tal como se espera.
990227 - jboss-cli.sh se congela cuando se ejecuta sin atención - por ejemplo, desde scripts

En versiones anteriores de la plataforma de aplicaciones empresariales JBoss de Red Hat, si el servidor se automatizaba con un script que cerrara o si se configuraba como null, STDIN, el servidor saldría al llegar al punto en donde se requería la entrada del usuario. Sin embargo, en el lanzamiento más reciente del producto, este no era el caso y el servidor se colgaba en ese escenario. Este lanzamiento del producto incluye una versión actualizada de Aesh (del inglés Another Extendable Shell) que reintegra el comportamiento original. Los servidores que inician con un script automatizado terminan tal como se espera y ya no se cuelgan cuando requieren entradas por parte del usuario.
977426 - jboss-cli.sh presenta una NullPointerException mientras no esté conectado y en modo de grupo

El tratar de agregar un comando a un grupo con la herramienta jboss-cli cuando estaba desconectado del servidor haría que el jboss-cli terminara. Esto se ha corregido. El tratar de agregar comandos a un grupo cuando está desconectado de un servidor generará el siguiente mensaje de error:
Comando no soportado o no disponible en el contexto actual: falló al cargar la descripción de la operación: no conectado

Clústers

974967 - jvmRoute en standalone.xml puede crear org.infinispan.marshall.NotSerializableException

Al usar mod_jk con un balanceador de carga y la etiqueta de sesión pegajosa para crear una arquitectura de granja, las aplicaciones distribuídas fallarían al implementar ya que el uso de clústers no estaba habilitado. Esto se debe a que al no tener una configuración de clústers el LOCAL_ADDRESS del RegistryService se inicializaba con un valor predeterminado el cual no era serializable. Esta LOCAL_ADDRESS no serializable no permitía la implementación exitosa en este escenario. Ahora LOCAL_ADDRESS se inicializa con un valor serializable y la implementación de las aplicaciones distribuíbles funciona tal como se espera en este escenario.
918791 - El iniciar un servidor con múltiples aplicaciones web genera fallos de implementación

En algunos casos, las aplicaciones web en un servidor con clústers fallaría al implementar si se están implementando múltiples aplicaciones. Cada aplicación en esta situación trataría de bloquear el administrador de caché para crear su caché y la primera aplicación que obtenía un bloqueo implementaría de manera exitosa. Sin embargo, dependiendo del tiempo tomado para implementar cualquier otra implementación podráin expirar al esperar por el acceso al administrador de caché y fallaría al implementar. JBoss EAP 6 ahora incluye un GlobalComponentRegistryService, el cual maneja este escenario y las aplicaciones ahora implementan de manera exitosa en esta situación.

Administración de dominios

983980 - El comando EAP6 CLI no debe permitir el uso del mismo nombre de tiempo de ejecución en otra implementación

Se permitiría de manera incorrecta el implementar dos instancias con el mismo nombre de tiempo de ejecución en la misma instancia de JBoss EAP 6.

Como consecuencia la instancia puede llegar a un estado inconsistente al utilizar el nombre del tiempo de ejecución para la implementación equivocada.

Este problema se arregló en este lanzamiento de JBoss EAP 6 y ahora solo se permite utilizar una vez un nombre de tiempo de ejecución por cada instancia de JBoss EAP 6. Si se trata implementar una aplicación con un nombre de tiempo de ejecución ya en uso entonces se presentará el siguiente error:
Ya hay una implementación llamada ${name} con el mismo nombre de tiempo de ejecución ${runtime-name} en el grupo de servidores ${server-group}
1021763 - El controlador de dominios no logra reiniciar debido a una operación inconsistente para deshacer de una reimplementación

El controlador para la full-replace-deployment incluye lógica que borra contenido de implementación, el cual se ha agregado como parte de una operación la cual se está deshaciendo. Esta lógica no estaba verificando si el contenido agregado era el mismo que el contenido existente en caso que si lo fuera entonces el contenido existente se borraría de manera incorrecta.

Como resultado de esta situación, si el mismo contenido se vuelve a implementar en un dominio administrado usando el comando CLI deploy --force y si la reimplementación falló por cualquier razón (por ejemplo debido a que un servicio del cual se depende tal como una fuente de datos falta en un servidor) entonces la implementación también fallaría y el contenido se borraría de todos los hosts como parte del proceso para deshacer cambios. Sin embargo, el objeto de configuración existente para la implementación permanecería y si el host se volviera a iniciar entonces se volvería a intentar el implementar el contenido no existente lo cual causaría una falla para arrancar.

Este problema se ha arreglado en este lanzamiento de JBoss EAP 6. La lógica para reversar cambios ahora reconoce que si el contenido no tuvo cambios entonces no borrará el contenido como parte del proceso para revertir los cambios.

Como consecuencia, el proceso para revertir los cambios dejará el dominio en un estado consistente equivalente a lo que era antes de intentar la reimplementación y el contenido permanecerá disponible en todos los hosts junto con el contenido de referencia de la configuración.
960820 - Resolución de la expresión recursiva

Las expresiones que se encuentran en la salida de otras expresiones no se estaban resolviendo. Esto significaba que no era posible utilizar expresiones en la configuración para referirse a otras expresiones tal como la que se refería a una expresión de bóveda. Esto ocurría ya que la salida de la resolución de la expresión no se chequeaba para ver si existían más expresiones a resolver.

La resolución de la expresión ahora es recursiva. Cuando una expresión se resuelve, se realiza un chequeo para ver si hay más expresiones a resolver en la salida. Esto continua hasta que no se encuentran más expresiones.

Ahora las expresiones se pueden utilizar para referirse a otras expresiones en la configuración.

EJB

991444 - acceso de caché EJB2 CMP equivocado si optimistic-locking=true

Cuando el bloqueo optimista se configuraba para los beans de entidad EJB2, los beans de entidad en caché nunca se encontraban en el caché. Esto ocurría debido a que la búsqueda del caché se realizaba utilizando el identificador equivocado. La llave principal de la entidad se utilizaba para localizar el caché de transacción correcto en lugar del identificador de transacciones. Esto se ha corregido y el acceso de caché para los beans de entidad EJB2 ahora funciona tal como se esperaba cuando se habilita el bloqueo optimista.
1005110 - Fuga de memoria del ClassLoader con invocaciones asincrónicas EJB

En algunas situaciones, las llamadas EJB asincrónicas podrían generar una "fuga" del cargador de calse de la implementación.

Esto occurría ya que el método de ejecución podría conllevar a la creación de nuevos hilos. Cuando esto ocurre el nuevo hilo se asigna a si mismo el cargador de clase del contexto del hilo padre, el cual sería el cargador de clase de la implementación. Para evitar esto el cargador de clase del contexto hilo (TCCL del inglés Thread Context Classloader) se configura como null antes de invocar el método de ejecución y luego se reestablece.

Las llamadads EJB asincrónicas ya no generan fugas del cargador de clase de la implementación.
1019894 - La EJB no debe ser accesible de manera remota hasta que todas sus dependencias se hayan iniciado

En algunas situaciones las EJBs se podíann invocar remotamente antes de que se iniciaran completamente, lo cual generaba un cliente EJB que no respondía. Esto sucedía ya que las interfaces remotas se enlazaban antes que cualquier dependencia del EJB fuera completamente resuelta. Por lo tanto se podía invocar un bean antes de que pudiera responder. Esto se ha arreglado y las interfaces remotas del EJB no están disponibles hasta que todas sus dependencias se hayan resuelto.
1005093 - El contexto de seguridad asociado con las invocaciones asincrónicas EJB se puede dañar potencialmente por parte del hilo que realiza la llamada

Una EJB que es llamada asincrónicamente desde un servlet puede potencialmente perder su contexto de seguridad si la invocación del servlet se completa primero. Esto ocurría cuando el contexto de seguridad del servlet se limpiaba ya que los hilos del EJB y servlet comparten la misma instancia SecurityContext. Ahora los atributos SecurityContext se copian de la instancia en el hilo del servlet a una nueva instancia del objeto SecurityContext en el hilo EJB. Las actualizaciones a las instancias SecurityContext en un hilo ya no afectan las instancias en otros hilos tal como se esperaba.

Hibernate

998841 - Arreglo permanente de HHH-8447 (borrado HQL con múltiples subpeticiones fallaba (utilizaba el alias incorrecto)

Si una petición de borrado HQL contenía múltiples subpeticiones, solo la primera subpetición utilizaría el alias correcto de tabla raíz. Las otras subpeticiones generadas por SQL utilizarían un alias incorrecto.

Este problema era causado debido a un procesamiento incorrecto de múltiples subpeticiones al generar la petición SQL.

Este problema se ha solucionado en este lanzamiento de JBoss EAP 6 de manera que las peticiones de borrado HQL con múltiples subpeticiones ahora utilizarán el alias de tabla de raíz correcto al generar SQL para todas las subpeticiones.
947946 - Función "to_char" incorrecta en el dialecto HSQL

Un error en la implementación del dialecto HSQL de la función to_char generaba conversiones incorrectas de objetos a cadenas y cuando se utilizaba en una comparación presentaba una excepción java.lang.IllegalArgumentException.

En este lanzamiento de JBoss EAP 6, la función to_char en el dialecto HSQL se ha arreglado convirtiendo objetos a una cadena. Por lo tanto, las comparaciones realizadas usando to_char ya no deben presentar excepciones java.lang.IllegalArgumentException.
990587 - [HHH-7959] Los cachés de segundo nivel Hibernate/Infinispan configurados como transaction-mode=NONE paraban de funcionar después de una eliminación explícita

Un caché de segundo nivel Infinispan configurado con transaction-mode=NONE sería invalidado al forzar programáticamente una eliminación. Este estado inválido causaría una degradación de rendimiento y los mensajes de registro a nivel TRACE de Could not invalidate region: null.

Este problema era causado por valores nulos no manejados relacionados con el tratar de utilizar un TransactionManager en una configuración no transaccional generando NullPointerExceptions.

Este problema se ha arreglado en este lanzamiento de JBoss EAP 6 de manera que los chequeos de valores nulos apropiados ahora permiten que tenga lugar el estado válido y la eliminación. Por lo tanto, el forzar programáticamente una eliminación en un cahé de segundo nivel Infinispan configurado con transaction-mode=NONE ya no disparará un estado inválido y la degradación de rendimiento asociada.
1018146 - [HHH-8605] ManyToManyTest.testManyToManyWithFormula falla en mssql2008R2, mssql2012, sybase157

En Sybase y en el servidor SQL de Microsoft, las peticiones HQL que tenían tuplas en subpeticiones presentarían excepciones. Ni Sybase ni el servidor SQL de Microsoft soporta las tuplas en subpeticiones tal como la siguiente petición:

delete from Table1 where (col1, col2) in (select col1, col2 from Table2)

Este problema ocurría ya que los dialectos Hibernate para Sybase y el servidor SQL de Microsoft no configuraban la propiedad supportsTuplesInSubqueries como false.

En este lanzamiento de JBoss EAP 6, los dialectos Hibernate para Sybase y el servidor SQL de Microsoft se han actualizado para reflejar de manera precisa la falta de soporte para las tuplas en las subpeticiones. Por lo tanto, ahora se producen advertencias en lugar de excepciones.
1003468 - HHH-8464 El utilizar el caracter de comillas específico de JPA2 (comillas dobles) para JoinColumn genera una DuplicateMappingException.

El utilizar el caracter de comillas específico de JPA2 ( ") para un JoinColumn generaría una DuplicateMappingException. Este problema se generaba debido a que el caracter de comillas no se normalizaba internamente.

Este problema se ha resuelto en este lanzamiento de manera que el utilizar " para un JoinColumn ahora se normaliza apropiadamente y ya no generará una DuplicateMappingException.
991578 - HHH-8390 Referencia de llave foránea generada antes de que la restricción única exista

El crear un esquema en el que se declaraba una llave foránea antes de haberla definido como una llave principal o única fallaba en Oracle y posiblemente otros dialectos.

Este problema se ha solucionado en este lanzamiento de JBoss EAP 6 forzando que las restricciones de llave única sean creadas antes que las restricciones de llaves foráneas como parte del proceso de exportación del esquema.

Por lo tanto, los esquemas exportados ya no deben fallar en Oracle debido a que se declare una llave foránea antes de que exista una restricción única.
977520 - HHH-8318 las peticiones de "delete" con "member of" fallan

Un error en la conversión de peticiones HQL delete que contenían un member of generaban un SQL incorrecto. Por lo tanto, la petición de borrado SQL incorrecta fallaría. Este problema se debía a que la subpetición member of usaba un alias incorrecto.

Este problema se ha solucionado en este lanzamiento de JBoss EAP 6 haciendo que las subpeticiones member of utilicen el alias correcto cuando se usa como parte de una petición HQL delete y por lo tanto ahora producirá SQL correcto.

HornetQ

1019378 - La redistribución de mensajes podría conllevar la pérdida de mensajes si se está realizando paginación y lectura con transacciones en grupos

En muy raras circunstancias, si los mensajes se estaban reconociendo muy rápidamente con grandes pedazos en un servidor HornetQ, la redistribución de mensajes podría leer un registro antes de que la transacción se instanciara en el sistema de páginas. Esta situación resultaría en pérdida de mensajes.

Este problema se ha solucionado en este lanzamiento de JBoss EAP 6 asegurándose que el sistema de paginación instanciará de manera correcta una transacción de página y solo escribirá en el archivo despues de instanciar la transacción de la página.

Como resultado de esta solución no habrá mensajes perdidos bajo las mismas circunstancias.
988321 - WARN - Replication MessageID 164 de replicación grande no está disponible en el servidor de respaldo. Ignorando el mensaje de replicación

Después de cierta secuencia de eventos, es posible que se llame dos veces un borrado grande de mensajes, lo cual genera un mensaje de advertencia erróneo en un servidor HornetQ de respaldo similar al siguiente:
11:33:23,825 WARN  [org.hornetq.core.server] (Old I/O client worker ([id: 0x2b37b4ea, /192.168.40.1:60844 => /192.168.40.1:5445])) HQ222090: MessageID 164 de replicación grande no está disponible en un servidor de respaldo. Ignorando el mensaje de replicación

Este problema se arregló deteniendo que la advertencia errónea aparezca en los registros de JBoss EAP 6. Por lo tanto en el servidor HornetQ de respaldo ya no deben haber mensajes de advertencia erróneos relacionados con que los mensajes grandes ya no están disponibles.

Instalador

977736 - El script de inicio Appclient y el archivo de configuración no se deben instalar sin seleccionar la opción appclient

Al utilizar el instalador para JBoss EAP 6, si se deseleccionó la casilla AppClient+ en la pantalla Pack Installation entonces los archivos AppClient todavía se instalarían.

Este problema con el instalador se ha solucionado en este lanzamiento de JBoss EAP 6 de manera que los archivos AppClient solo se instalarán si se selecciona la casilla AppClient+.
1013973 - Instalador: no puede utilizar Ctrl+c para parar la instalación (windows)

Se generaba un problema al especificar una dependencia JLine, la cual hacía que el comando del teclado Ctrl-C no funcionaba en el instalador de la consola de JBoss EAP 6 en el servidor de Microsoft Windows.

En este lanzamiento de JBoss EAP 6, JLine se ha actualizado de manera que cuando se utiliza Ctrl-C durante la instalación de la consola en el servidor de Microsoft Windows, ahora el instalador se detiene tal como se esperaba. También observe que la llave Insert se lee igual que el caracter Ctrl-C y también detendrá el instalador de la consola si se presiona.
1013972 - El tabulador de auto-completado de la ruta del directorio de inicio no está funcionando correctamente

En el instalador de la consola para JBoss EAP 6, la tecla de autocompletado Tab para la ruta del directorio de inicio no funcionaba como se esperaba. En lugar de autocompletar las rutas del directorio de inicio no aparecia nada en el servidor de Microsoft Windows y en Linux se agregaba de manera incorrecta /home.

Este problema se ha solucionado en este lanzamiento de JBoss EAP 6 de manera que al ingresar ~ y al presionarg Tab, la ruta del directorio de inicio se autocompleta tal como se espera. En el servidor de Microsoft Windows la ruta es C:\Users\USERNAME y en Linux es /home/USER.
963304 - La casilla de los componentes nativos es invisible al instalar EAP 6.0.0 por medio del instalador jar

En sistemas operativos derivados de Unix, el instalador no chequeaba apropiadamente el archivo system-release para ver si había más de un archivo *-release presente en el directorio /etc/. Esto hacía que el instalador no reconociera el sistema operativo del servidor y por lo tanto no mostraba la casilla Native Components en la pantalla Pack Installation. Este problema se ha solucionado en este lanzamiento de JBoss EAP 6 y ahora el instalador chequea apropiadamente el archivo system-release en sistemas operativos derivados de Unix. Por lo tanto, la casilla Native Components en la pantalla Pack Installation aparece tal como se espera.

JCA

952277 - el inhabilitar la fuente de datos xa hace que la fuente de datos pierda su atributo habilitado configurado como falso y después de volverlo a cargar se habilita

Cuando una fuente de datos XA se configuraba como disabled y la fuente de datos ya estaba disabled, la fuente de datos se habilitaba en el siguiente arranque. La causa de este problema ahora se ha resuelto. En las mismas circunstancias, ahora la fuente de datos permanece disabled.
1007608 - Fuga de memoria si hashCode de una transacción no es estable

Había una fuga de memoria en el TransactionSynchronizer JCA si el hashCode de la transacción no era estable. Esta fuga de memoria podría causar OutOfMemoryErrors despues de un periodo de tiempo.

Una actualización al componente JCA ha corregido esto y los OutOfMemoryErrors asociados ya no se presentan.

JSF

991276 - WAR_BUNDLE_JSF_IMPL no funciona dentro de un EAR

Si una implementación JSF se empacaba en una WAR, se podía utilizar WAR_BUNDLE_JSF_IMPL para permitirle funcionar en lugar de la implementación del contenedor. Esta opción no funcionaba si en lugar se empaba en una EAR. La causa de este problema era que solo se chequeaba la (sub-)implementación para el marcador JSF, los que hacía que no se podía encontrar cuando estaba en una implementación diferente a nivel superior (EAR). Para resolver este problema se implementó un chequeo adicional para chequear la implementación a nivel superior para el marcador JSF.

Repositorio Maven

1011918 - No se pueden encontrar las dependencias para jbossws-cxf-client -- No se logró encontrar org.apache.ws.security:wss4j:jar:1.6.11-redhat-1

El proceso de construcción se cambió en este lanzamiento de JBoss EAP para brindar más archivos Maven POM convencionales, los cuales son más consistentes con los POMs Maven de la comunidad. Los archivos POM en el repositorio EAP Maven ahora tienen dependencias en algunas versiones de objetos de la comunidad.

Los usuarios deben consultar la Guía del desarrollador de la plataforma de aplicaciones empresariales JBoss para obtener mayor información sobre cómo configurar el archivo BOM Maven apropiado. El configurar el archivo BOM Maven apropiado se asegurará de que la construcción del usuario incluya la versión de dependencias transitivas correctas (se utilizará la versión JBoss EAP para los objetos soportados y se utilizará la versión de la comunidad para los objetos no soportados).

Otros

985204 - El enchufe no se cierra cuando el ejecutador de la red borra una tarea

Este lanzamiento de JBoss EAP corrige un error, el cual hacía que los enchufes del conector de red no se cerraran apropiadamente cuando el ejecutador borraba tareas. La causa de esto se rastreó hasta la clase QueueExecutor que no presentaba una RejectedExecutionException cuando no había un handoffExecutor configurado (como QueuelessExecutor lo hace). En estos casos la tarea se borraba, lo cual no era el comportamiento que se esperaba. La clase QueueExecutor se ha actualizado para que presente la excepción requerida cuando no se puede agregar una tarea no se puede agregar a la cola y por lo tanto ahora los enchufes se cierran de manera correcta.
901210 - Limpieza de directorios de implementación - AS7-6031

Este lanzamiento de JBoss EAP 6.2 incluye un arreglo que se asegura de que los archivos y directorios creados en las carpetas JBOSS_HOME/tmp y JBOSS_HOME/tmp/vfs se borren antes de que puedan interferir con nuevas instancias EAP (re)iniciadas.

En versiones anteriores de JBoss EAP, es posible que los archivos viejos hayan quedado despues de un apagado inesperado del servidor (ya que JBoss EAP borra archivos en JBOSS_HOME/tmp y JBOSS_HOME/tmp/vfs como parte del proceso de apagado).

El arreglo en este lanzamiento brinda un mecanismo de seguridad para mitigar ese escenario. Si un servidor JBoss EAP 6.2 no se apaga de manera indicada entonces el servidor no tendra la oportunidad de limpiar estos archivos temporales. Sin embargo, al reiniciar el servidor revisa los lugares anteriores y si encuentra archivos de una instancia anterior entonces inicia un proceso de renombrado/borrado que permite la creación de archivos frescos para la nueva instancia (los directorios viejos se renombran para evitar la interferencia con los nuevos archivos creados). Estos procesos pueden tener lugar en paralelo.

Al reiniciar JBoss EAP (ya sea de manera completa o no) los archivos viejos temporales se borran (ya sea al apagar o al iniciar) para asegurarse de que no toman espacio de disco innecesario.

NOTE Los usuarios deben evitar el utilizar la JAVA_OPT -Xrs ya que esto limita el procesamiento de señales y puede hacer que el tamaño de los directorios tmp/vfs continue creciendo.

PicketLink

977761 - El parámetro PLINK2-25 characterEncoding no se utiliza para Post Requests en ServiceProviderAuthenticator

Se encontró un problema de sincronización en Picketlink, el cual hacía que los parámetros se leyeran de las peticiones post en el ServiceProviderAuthenticator usando la codificación predeterminada en lugar de la codificación deseada. El problema se generaba cuando PicketLink leía sus parámetros antes de que la bóveda Tomcat había establecido la codificación. Para resolver este problema se ha movido la codificación de manera que ahora es el primer paso en el método authenticate.

Uso remoto

1025319 - Problema con una invocación EJB desde un servidor con/sin SSL

Al crear una conexión remota saliente, el servicio que crea la conexión aplicaría la configuración predeterminada después de aplicar la configuración definida por el usuario. Esto hacía que la configuración predeterminada sobreescribiera incorrectamente cualquier configuración definida por el usuario que tuviera la misma llave.

Por lo tanto, SSL no se podía inhabilitar en conexiones remotas EJB que se originaban desde el servidor.

Este problema se ha solucionado en este lanzamiento de JBoss EAP 6. La configuración definida por el usuario ahora se aplica después de la configuración predeterminada, lo cual asegura que la configuración definida por el usuario tiene precedencia.

Por lo tanto, SSL ahora se puede deshabilitar en conexiones remotas salientes.
1025185 - Subsistema remoto: modificación simultánea excepto durante el apagado del servidor

Un servicio en el subsistema remoto iteraría en una colexión de una manera segura para los que no son hilos.

Por lo tanto, se presentaría una excepción ConcurrentModificationException de manera ocasional durante el apagado del servidor. Aparte de esta excepción, el apagado se completaría normalmente.
WARN  [org.jboss.msc.service.fail] (MSC service thread 1-55) MSC000004: Failure during stop of service jboss.remoting.endpoint.management.channel.management: java.util.ConcurrentModificationException
	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) [rt.jar:1.6.0_45]
	at java.util.HashMap$KeyIterator.next(HashMap.java:828) [rt.jar:1.6.0_45]
	at java.util.AbstractCollection.addAll(AbstractCollection.java:305) [rt.jar:1.6.0_45]
	at java.util.HashSet.<init>(HashSet.java:100) [rt.jar:1.6.0_45]
	at org.jboss.as.remoting.AbstractChannelOpenListenerService.stop(AbstractChannelOpenListenerService.java:123)
...

Este problema se ha solucionado en este lanzamiento de JBoss EAP 6. La iteración sobre la colección ahora se realiza de una manera segura para los hilos, con el monitor del objeto de la colección en el hilo realizando la iteración.

Por lo tanto ya no se presentan las excepciones ConcurrentModificationException.

RPMs

998319 - RPMs ponen datos importantes en /var/tmp

RPMs pone datos importantes en /var/tmp, incluyendo /domain/data. /var/tmp contiene datos temporales que se pueden borrar en cualquier momento. /domain/data no se debe redireccionar a /var/tmp/ ya que contiene datos importantes que no se deben perder, incluyendo el diario de recuperación de transacciones y el diario y almacén de mensajes grandes HornetQ.

Este error se ha solucionado para este lanzamiento de JBoss EAP 6. Para las nuevas instalaciones, /usr/share/jbossas/domain/data será un directorio en lugar de un enlace.

Sin embargo, para las instalaciones existentes se debe realizar uno de los siguientes:
  • Re-instale y migre los archivos de configuración y datos (incluyendo los directorios temporales) a los nuevos directorios de instalación o
  • Desinstale tmpwatch para desactivar la limpieza de /var/tmp/jbossas o
  • Configure tmpwatch para que no borre los archivos que jbossas pone en /var/tmp/jbossas.

Scripts y comandos

998913 - standalone.bat todavía configura -XX:+TieredCompilation JVM option

Se ha resuelto un problema en el archivo de grupo standalone.bat utilizado en el servidor de Microsoft Windows. El archivo de grupo anteriormente contenía una opción JVM, la cual establecía una compilación en niveles: -XX:+TieredCompilation. Esta configuración se borró ya que se sabe que causa problemas de rendimiento en algunas circunstancias.
916960 - Standalone.bat no funciona si hay paréntesis en la ruta a la EAP.

En lanzamientos anteriores de JBoss EAP, los archivos en grupo proporcionados - por ejemplo, standalone.bat y add-user.bat no funcionaban tal como se esperaba en el servidor de Microsoft Windows si la ruta en la que se almacenaban contenía paréntesis o espacios. Los archivos en grupo se han mejorado utilizando comillas para asegurar de que se evalua la ruta completa. Por lo tanto, los archivos en grupo ahora funcionan como se esperaba con las rutas incluyendo paréntesis y espacios.

Seguridad

920160 - Acceso no autorizado a una aplicación web protegida con un módulo de autorización personalizado genera un HTTP 200 (OK) en lugar de HTTP 403 (prohibido)

En JBoss EAP 6.1.0, Acceso no autorizado a una aplicación web protegida con un módulo de autorización personalizado genera una respuesta HTTP de 200 (OK) en lugar de HTTP 403 (Prohibido). Este problema se ha resuelto y ahora se presenta la respuesta correcta.

Servidor

1022223 - La superposición del descriptor de implementación no sobreescriben JSPs

La superposición de un descriptor de implementación le debe permitir a un administrador el sobreescribir un JSP en una implementación. Sin embargo, la funcionalidad de una superposición no funcionaba ya que JBoss Web no usa VFS para entregar contenido y por lo tanto los archivos JSP no eran visibles. Se agregó una pruba adicional del método de implementación y ahora la sobreescritura de los descriptores de implementación ahora funciona tal como se esperaba.

Administrador de transacciones

1016120 - El almacén de objetos JDBC de transacciones no inicia en PostgreSQL Plus 9.2

El administrador de transacciones JBoss no tenía un controlador configurado apropiadamente para PostgreSQL Plus 9.2. Esto generaba una excepción ClassNotFoundException al tratar de utilizar un almacén de objetos de transacciones JDBC en PostgreSQL Plus 9.2.

En este lanzamiento de JBoss EAP 6, el administrador de transacciones JBoss se ha actualizado con una clase controladora PostgreSQL Plus 9.2 ( jdbc.drivers.postgres_driver) y ahora se pueden utilizar almacenes de objetos JDBC con los servidores PostgreSQL Plus 9.2.

Red

997009 - atributo requiredSecret en el conector AJP

Al utilizar un servidor Apache de balanceo de carga en frente de JBoss EAP 5.x, puede configurar el atributo "requiredSecret" del conector AJP. Esto se utiliza solo para permitir que se acepten peticiones de trabajadores del balanceador de carga con la misma palabra clave secreta.

En JBoss EAP 6.0.x y 6.1.x no era posible el configurar este valor. Este problema ahora se ha resuelto y ahora puede establecer una propiedad del sistema con su valor requerido para el atributo "requiredSecret":
org.apache.coyote.ajp.DEFAULT_REQUIRED_SECRET=yoursecretvalue
996558 - La conección https se cuelga después de agregar el conector https

Al agregar un conector HTTPS por medio del CLI de administración, cualquier conexión que se intente se colgaría apesar de que cada comando se complete de manera exitosa. La razón de este problema era que el conector se inició tan pronto como se creó, sin embargo, su configuración estaba incompleta, lo que no permitía que el conector funcionara como se esperaba. Una solución en esta instancia era envolver los comandos de la configuración en una secuencia batch, end-batch de manera que todas las declaraciones de configuración se completaran juntas. La causa raíz de este problema se ha resuelto y el acceso a un conector HTTP es exitoso, ya sea que las declaraciones de configuración se completen en secuencia o como un grupo CLI de administración.

Consola de red

947913 - Consola de administración: las propiedades del adaptador de recursos se pueden editar haciendo clic en los adaptadores de recursos configurado.

Al ver las propiedades de un adaptador de recursos (RA del inglés resource adapter) en la consola de administración de red, era posible que las propiedades del adaptador se pudieran editar, permitiendo el cambiar o borrar campos existentes y agregar nuevos campos. Estos campos se debieron haber presentado como campos de lectura solamente ya que no hay una funcionalidad para modificarlos en la consola de administración de red. Si alguno de dichos campos se modificara entonces los valores modificados permanecerían con los valores editados pero no se almacenarían en el archivo de configuración del adaptador de recursos. Este problema se ha solucionado y las propiedades de todos los adaptadores de recursos ahora se presentan como campos de solo lectura.
900063 - Falta el mensaje de error cuando la creación de controlador personalizado falla

En lanzamientos anteriores de JBoss EAP 6, cuando fallaba la creación de un controlador de registro personalizado en la consola de administración de red, no se le daba retroalimentación al usuario. Por lo tanto el usuario asumía razonablemente que se había creado el controlador de registro personalizado. Para resolver este problema ahora si aparece un mensaje de error en estas circunstancias, aclarándole al usuario que la creación falló.
1012539 - El campo "Started?" en la configuración del puente de mensajería es incorrecto

El campo de información del tiempo de ejecución Started? se ha borrado de la pantalla Profile → Messaging → Connections → Bridges en este lanzamiento de JBoss EAP 6.

Esto se debía a que el campo a veces presentaba información incorrecta y ya que no se podía modificar entonces no le brindaba ninguna funcionalidad a los usuarios.
996889 - No se puede cambiar el puerto de compensación para los servidores en el dominio

Al cambiar el puerto de compensación para servidores en un dominio, la acción fallaba con el mensaje resultante: "Internal server error". La causa subyacente era que el valor de socket-binding-group en el recurso server-config no estaba definido así que al tratar de cambiar la configuración del servidor, no se pre-seleccionaba un valor en la casilla Socket binding. Por lo tanto, la primera parte de la operación compuesta fallaba. La causa raíz ahora se ha resuelto y el puerto de compensación para los servidores en un dominio ahora se puede configurar en la consola de administración de red.

Servicios de red

1026992 - Picketlink STS no funciona con la actualización CXF

El arreglo aplicado a JBoss EAP para abordar CVE-2013-2133 implica chequeos de autorización por parte del contenedor antes de ejecutar controladores JAXWS adjuntos a puntos finales WS basados en EJB3. Por lo tanto, algunos escenarios de uso PicketLink se pueden ver afectados ya que el PicketLink SAML2Handler tiene el propósito de establecer el principal de seguridad que se utilizará más adelante.

Los clientes pueden desactivar los chequeos de autorización adicionales y seguir utilizando las implementaciones PicketLink existentes ya sea configurando la propiedad del sistema org.jboss.ws.cxf.disableHandlerAuthChecks como true o especificando la propiedad org.jboss.ws.cxf.disableHandlerAuthChecks en un descriptor jboss-webservices.xml así:
<?xml version="1.1" encoding="UTF-8"?>
<webservices xmlns="http://www.jboss.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  version="1.2" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee">

  <property>
    <name>org.jboss.ws.cxf.disableHandlerAuthChecks</name>
    <value>true</value>
  </property>
</webservices>

El descriptor se va a poner en META-INF dentro de la implementación del cliente para el cual se desactivan los chequeos de autorización del controlador.

En lugar, la configuración de la propiedad del sistema afectará cualquier implementación en el servidor.

Note que el habilitar la propiedad org.jboss.ws.cxf.disableHandlerAuthChecks entrega un sistema vulnerable a CVE-2013-2133. Si la aplicación espera a que se apliquen restricciones de seguridad declaradas en métodos EJB y no las aplica independiente del controlador JAX-WS entonces la propiedad no se debe activar. La propiedad solo se debe utilizar para propósitos de compatibilidad retroactiva cuando se necesita evitar el rompimiento de la aplicación.
988318 - CLI - después de una operación undefine en el atributo wsdl-host del subsistema de servicios de red y la recarga de war con servicios de red no se puede implementar

Un error que causaba que las implementaciones de aplicación fallaran cuando el atributo wsdl-host no estaba definido se ha corregido en este lanzamiento de JBoss EAP 6.
999223 - wsconsume.sh falla con la versión de destino predeterminada - 2.2

En versiones anteriores de JBoss EAP, se encontró que WSConsume fallaba al compilar fuentes a nivel JAXWS 2.2 cuando se utilizaba la versión 1.6 de OpenJDK.

Esto se ha resuelto en este lanzamiento.

Weld

956631 - CLONE - Una llamada forward/include a través de contextos desde otra aplicación de red rompe la limpieza HttpRequestContex

Para las peticiones redireccionadas, WeldListener limpiaría una petición de contexto de enlace cuando el servlet que lo estaba procesando terminaba aunque se estaba enviando a otro servlet.

Por lo tanto, cuando el otro servlet trataba de acceder al contexto, producía una NullPointerException.

Este problema se ha solucionado en este lanzamiento de JBoss EAP 6 haciendo que no se limpie un contexto enlazado si el servlet se está redireccionando.

Por lo tanto el utilizar getRequestDispatcher().include() para redireccionar peticiones entre servlets ya no debe producir excepciones relacionadas con limpiezas WeldListener incorrectas.
910185 - El caché TypeSafeObserverResolver de Weld está desenlazado

La clase Weld TypeSafeObserverResolver que TransactionalObserverNotifier utiliza no tiene opciones de configuración para limitar o para entradas que han expirado. Usualmente el número de calificadores CDI es pequeño pero esto no es necesariamente verdad si una aplicación usa clases derivadas de AnnotationLiteral con datos arbitrarios en la anotación.

Por lo tanto el caché TypeSafeObserverResolver puede llegar a ser muy grande y causar una OutOfMemoryError si se utiliza un número grande de calificadores diferentes.

Este problema se ha solucionado en este lanzamiento de JBoss EAP 6 implementando un límite superior configurable para el caché resuelto en TypeSafeObserverResolver.

Los usuarios pueden configurar la propiedad org.jboss.weld.resolution.cacheSize para limitar el número máximo de entradas caché resueltas. El valor predeterminado del límite máximo es 1048576 entradas caché.

Servicios de red

969924 - Picketlink STS no funciona con la actualización CXF

El arreglo aplicado a JBoss EAP para abordar CVE-2013-2133 implica chequeos de autorización por parte del contenedor antes de ejecutar controladores JAXWS adjuntos a puntos finales WS basados en EJB3. Por lo tanto, algunos escenarios de uso PicketLink se pueden ver afectados ya que el PicketLink SAML2Handler tiene el propósito de establecer el principal de seguridad que se utilizará más adelante.

Los clientes pueden desactivar los chequeos de autorización adicionales y seguir utilizando las implementaciones PicketLink existentes ya sea configurando la propiedad del sistema org.jboss.ws.cxf.disableHandlerAuthChecks como true o especificando la propiedad org.jboss.ws.cxf.disableHandlerAuthChecks en un descriptor jboss-webservices.xml así:
  <?xml version="1.1" encoding="UTF-8"?>
  <webservices xmlns="http://www.jboss.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    version="1.2" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee">

    <property>
      <name>org.jboss.ws.cxf.disableHandlerAuthChecks</name>
      <value>true</value>
    </property>

  </webservices>

El descriptor se debe poner en `META-INF` dentro de la implementación del cliente para la cual se deben desactivar los chequeos de autorización del controlador. En lugar, la configuración de la propiedad del sistema afectará cualquier implementación en el servidor. Note que el activar la propiedad `org.jboss.ws.cxf.disableHandlerAuthChecks` presenta un sistema vulnerable a CVE-2013-2133. Si la aplicación espera aplicar restricciones de seguridad declarados en métodos EJB methods y no los aplica de manera independiente al controlador JAX-WS entonces la propiedad no se debe activar. La propiedad solo se debe utilizar para propósitos de compatibilidad retroactiva cuando se necesita evitar el rompimiento de la aplicación.

mod_cluster

958991 - núcleo mod_cluster cuando usa ProxyPass / balancer://bal y CreateBalancers 1

Se encontrón una regresión en las versiones 6.1.0 y 6.1.1 de JBoss EAP que causaban una configuración de CreateBalancers 1 en /conf.d/mod_cluster.conf sin establecer la configuración stickysession=JSESSIONID|jsessionid para que genere un fallo de segmentación. Este problema se ha resuelto en JBoss EAP 6.2. El elemento stickysession se ha agregado a la configuración CreateBalancers.
960243 - Regresión en la integración ProxyPass

Una regresión en la versión anterior de mod_proxy_cluster.so (bug 960246) retornaba errores HTTP 503 al acceder un directorio (por ejemplo <filename class="directory">/app/clusterbench/requestinfo/</filename>. Este problema se ha corregido en este lanzamiento de JBoss EAP y mod_proxy_cluster.so ahora funciona como se esperaba al acceder directorios.
963720 - mod_cluster: falla de la búsqueda DNS proxy con IPv6 en Solaris

En versiones anteriores de EAP 6 se encontró que al tratar de utilizar direcciones IPv6 dentro de un sistema Solaris generaría una falla de búsqueda DNS.

La fuente de este problema se rastreó a la cadena IPv6 zone-id de direcciones IPv6.

Ya que esta información no es de uso para HTTPD, la cadena ya no se utiliza y ahora mod_cluster opera tal como se esperaba en sistemas Solaris.