7. Changements notables dans cette version

7.1. Résolution de bogues

Application Client

999465 - appclient.xml wrong naming version

Le sous-système de nommage ne parviendrait pas à démarrer en raison d'un numéro de version incorrect dans le fichier appclient.xml, entraînant un problème de dépendance. Cette version a été corrigée, et l'appclient démarre avec succès.
1003104 - appclient hang when executing .jar file outside an .ear

Il y avait un problème avec le code appclient qui empêchait l'exécution directe des fichiers .jar. Un code additionnel a été ajouté à l'appclient pour corriger ce problème, et les fichiers jar peuvent maintenant être exécutés directement.

Chargement de classes

959478 - Add sun.nio.cs & sun.nio.ext paths to sun.jdk module

Les paquets manquants du module sun.jdk ont entraîné une exception ServiceConfigurationError lorsque vous tentiez de charger des jeux de caractères personnalisés avec sun.jdk. Cette version de JBoss EAP 6 a ajouté les packages manquants sun.nio.cs et sun.nio.cs.ext, et maintenant, les jeux de caractères personnalisés peuvent être utilisés avec le module sun.jdk.

CLI

977407 - jboss-cli.sh throws IllegalArgumentException when using tab complete

Dans certaines situations, jboss-cli sortait quand l'utilisateur actionnait la fonction de completion. Ce problème a été corrigé et cet onglet fonctionne maintenant comme prévu.
990227 - jboss-cli.sh freeze when run unattended - e.g. from scripts

Dans les versions précédentes de Red Hat JBoss Enterprise Application Platform, si le serveur était automatisé par un script qui fermait, ou si défini à la valeur null STDIN, le serveur sortait lorsqu'il avait atteint un point nécessitant une entrée d'utilisateur. Dans la version la plus récente du produit, cependant, ce n'était pas le cas, et le serveur se bloquait dans ce scénario. Cette version du produit inclut une version mise à jour de Aesh (Another Extendable Shell) qui rétablit le comportement d'origine. Les serveurs qui démarrent par un script automatisé peuvent sortir comme prévu et ne risquent plus d'abandonner en attente d'une action utilisateur.
977426 - jboss-cli.sh throws NullPointerException while not connected and in batch mode

Essayer d'ajouter d'une commande à un lot avec jboss-cli lorsqu'il était déconnecté du serveur provoquait la sortie de jboss-cli. Ce problème a été corrigé. Les tentatives d'ajout de commandes à un lot quand vous êtes déconnecté d'un serveur provoque maintenant le message d'erreur suivant s'affichant à l'utilisateur :
Command is not supported or unavailable in the current context: Failed to load operation description: not connected

Clustering

974967 - jvmRoute in standalone.xml can create org.infinispan.marshall.NotSerializableException

Lorsque vous utilisez mod_jk avec un équilibreur de charge et le drapeau de sticky session pour créer une architecture de farming, les applications distribuées ne peuvent se déployer parce que le clustering n'est pas activé. C'était parce que sans configuration de clustering, la LOCAL_ADDRESS de la RegistryService a été initialisée à une valeur par défaut qui n'est pas sérialisable. Cette adresse non sérialisable LOCAL_ADDRESS empêchait alors le déploiement. Maintenant LOCAL_ADDRESS est initialisé à une valeur sérialisable et le déploiement des applications distribuables fonctionne comme prévu dans ce scénario.
918791 - Starting a server with multiple web apps, causes deployment failures

Dans certains cas, les applications web sur serveur clusterisé ne parvenaient pas à se déployer quand plusieurs applications étaient déployées. Dans cette situation, chaque application tentait de verrouiller le gestionnaire de cache pour créer son cache, et la première application qui obtenait un verrou se déployait avec succès. Toutefois, selon le temps requis de déploiement, n'importe quel autre déploiement pouvait expirer en attendant d'accéder au gestionnaire de cache et ne parvenait pas à se déployer. JBoss EAP 6 inclut maintenant un GlobalComponentRegistryService qui gère ce scénario.

Gestion de domaine

983980 - EAP6 CLI command should not allow same runtime-name to be used at another deploy

Deux déploiements portant le même nom de runtime par erreur pouvaient être déployés sur la même instance de JBoss EAP 6.

De ce fait, l'instance pouvait entrer dans un état inconsistant par le nom de runtime du mauvais déploiement.

Le problème a été corrigé dans cette version de JBoss EAP6, et un nom de runtime est maintenant autorisé qu'une seule fois pour une instance de JBoss EAP 6. Si quelqu'un tente de déployer une application avec un nom de runtime déjà utilisé, l'erreur suivante apparaîtra :
Il y a déjà un déploiement nommé ${name} avec le même nom de runtime ${runtime-name} sur le groupe de serveurs ${server-group}
1021763 - Domain controller fails to restart due to an inconsistent rollback of a redeploy

Le gestionnaire de full-replace-deployment inclut une logique qui supprime le contenu de déploiement ajouté dans le cadre d'une opération restaurée. Cette logique ne vérifiait pas si l'ajout de contenu correspondait au contenu existant, afin que, si tel était le cas, le contenu existant était incorrectement supprimé.

À la suite de cette situation, si le même contenu était transféré dans un domaine géré à l'aide de la commande CLI deploy--force, et si le redéploiement échouait pour quelque raison (par exemple, parce qu'un service de dépendance comme une source de données venait à manquer d'un serveur), alors le déploiement échouait également et le contenu était retiré de tous les hôtes dans le cadre du processus de restauration. Toutefois, l'élément de configuration existant du déploiement demeurait ainsi, et si l'hôte venait à être redémarré à nouveau, il y avait une tentative de déploiement du contenu inexistant, ce qui entraînaît un échec de démarrage.

Le problème a été corrigé dans cette version de JBoss EAP6. La logique de recouvrement reconnaît maintenant que si le contenu n'a pas été modifié, et ce contenu ne sera pas supprimé par le processus de rollback.

De ce fait, le rollback quitte le domaine dans un état cohérent correspondant à ce qu'il était avant la tentative de redéploiement, et le contenu demeurera disponible sur tous les hôtes, ainsi que la configuration référençant le contenu.
960820 - Recursive expression resolution

Les expressions contenues dans la sortie d'autres expressions n'ont pas été résolues. Cela signifie qu'il n'était pas possible d'utiliser des expressions de configuration pour faire référence à d'autres expressions, comme l'expression qui fait référence à une expression de la voûte. Cela s'est produit parce qu'on n'a pas vérifié l'existence d'autres expressions à résoudre dans la sortie de la résolution de l'expression.

La résolution d'expressions n'est pas récursive. Quand une expression est résolue, il y a une vérification des autres expressions à vérifier pour résoudre la sortie. Cela continue jusqu'à ce que d'autres expressions soient trouvées.

Les expressions peuvent être utilisées pour faire référence à d'autres expressions de la configuration.

EJB

991444 - EJB2 CMP wrong cache access if optimistic-locking=true

Lorsque le verrouillage optimiste a été configuré pour les EJB2 Entity Beans, les Entity Beans mis en cache n'ont jamais été retrouvés dans le cache. Cela s'est produit parce que la recherche de cache a été exécutée à l'aide du mauvais identificateur. La clé primaire de l'entité a été utilisée pour localiser le cache de la transaction qui convient à la place de l'identificateur de transaction. Ce problème a été corrigé et l'accès au cache des EJB2 Entity Beans fonctionne maintenant comme prévu lorsque le verrouillage optimiste est activé.
1005110 - ClassLoader memory leak with EJB Asynchronous invocations

Dans certaines situations, asynchrone

Cela s'est produit parce que la méthode «execute» pourrait conduire à la création d'un nouveau thread. Cela se produit lorsque le nouveau thread s'assigne le chargeur de classe de contexte du thread parent, qui est le chargeur de classes du déploiement. Pour éviter cela, le chargeur de classe de contexte Thread (TCCL) a la valeur null avant que la méthode «execute» soit appelée, puis restaurée par la suite

Les appels asynchrones EJB ne peuvent pas résulter en fuites de chargeurs de classes de déploiement.
1019894 - EJB should not be remotely accessible until all of its dependencies have been started

Dans certaines situations, les EJB pouvaient être appelées à distance avant d'être totalement démarrées, ce qui entraînait un client EJB non responsif. Cela se produisait parce que les interfaces distantes étaient liées avant que toutes les dépendances de l'EJB aient été entièrement résolues. Ainsi, un bean pouvait être invoqué avant qu'il ait été entièrement en mesure de répondre. Ce problème a été corrigé et les interfaces distantes d'un EJB ne sont pas disponibles tant que toutes ses dépendances aient été résolues.
1005093 - Security context associated with EJB asynchronous invocations can potentially be corrupted over time by the caller thread

Un EJB appelé de façon asynchrone à partir d'un servlet peut perdre son contexte de sécurité si l'invocation de servlet a lieu pour commencer. Cela se passait lorsque le contexte de sécurité du servlet était effacé parce que le servlet et les threads EJB partagaient la même instance de SecurityContext. Maintenant, les attributs SecurityContext sont copiés à partir de l'instance sur le thread de servlet dans une nouvelle instance de l'objet SecurityContext sur le thread EJB. Les mises à jour des instances de SecurityContext sur un thread n'affectent plus les instances sur d'autres threads comme prévu.

Hibernate

998841 - Permanent fix of HHH-8447 (HQL delete with multiple subqueries failing (incorrect alias used))

Si une requête de suppression HQL contenait plusieurs sous-requêtes, seule la première sous-requête utilisait l'alias de table racine qui convient. Le code SQL généré pour les autres sous-requêtes utilisait un alias incorrect.

Ce problème était provoqué par un traitement inadéquat des multiples sous-requêtes lors de la création de la requête SQL

Ce problème a été résolu dans cette version de JBoss EAP 6 afin que les requêtes de suppression HQL à plusieurs sous-requêtes utilisent maintenant l'alias de table racine correct lors de la génération de SQL pour toutes les sous-requêtes.
947946 - Incorrect "to_char" function in HSQL dialect

Un bogue dans l'implémentation de dialecte HSQL de la fonction to_char a donné lieu à des conversions incorrectes d'objets en chaînes, et quand utilisé dans une comparaison, se traduisait par une exception java.lang.IllegalArgumentException

Dans cette version de JBoss EAP 6, la fonction to_char du dialecte HSQL a été fixée par la conversion adequate d'objets en une chaîne. Ainsi, les comparaisons faites à l'aide de la to_char ne devraient plus lever d'exceptions java.lang.IllegalArgumentException
990587 - [HHH-7959] Hibernate/Infinispan 2nd Level Caches set to transaction-mode=NONE stop functioning after an explicit eviction

Un cache Infinispan de second niveau configuré avec transaction-mode=NONE était invalidé quand on forçait une expulsion par programmation. Cet état invalide entraînait une dégradation des performances et des messages de journalisation niveau TRACE du style Could not invalidate region: null.

Ce problème a été provoqué par des valeurs null non prises en charge associées à des tentatives d'utilisation d'un TransactionManager dans une configuration non transactionnelle, résultant en NullPointerExceptions.

Ce problème a été résolu dans cette version de JBoss EAP 6 afin que les contrôles null proprement dits permettent maintenant l'éviction et la validation des états. Ainsi, en forçant une expulsion par programmation sur un cache de second niveau Infinispan configuré avec transaction-mode=NONE ne déclenchera plus d'état non valide, ni la dégradation de performance associée.
1018146 - [HHH-8605] ManyToManyTest.testManyToManyWithFormula fails on mssql2008R2, mssql2012, sybase157

Sur les serveurs Sybase et Microsoft SQL, les requêtes HQL qui avaient des tuples dans les sous-requêtes levaient des exceptions. Sybase ni Microsoft SQL Server prennent en charge les tuples (uplets) dans les sous-requêtes, comme dans la requête suivante:

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

Ce problème avait lieu car les dialectes Hibernate des serveurs Sybase et Microsoft SQL ne configuraient pas les sous-requêtes supportsTuplesInSubqueries à false comme il le faudrait.

Dans cette version de JBoss EAP 6, les dialectes Hibernate pour Sybase et Microsoft SQL Server ont été mis à jour pour tenir compte du manque de soutien pour les tuples dans les sous-requêtes. En conséquence, les avertissements sont maintenant produits plutôt que de lever des exceptions.
1003468 - HHH-8464 Using JPA2 specific quoting character (double quote) for JoinColumn results in DuplicateMappingException.

L'utilisation d'un caractère de cotation spécifique-JPA2 ( ") de JoinColumn résulte en exception DuplicateMappingException. Ce problème était causé par un défaut de normalisation du caractère de cotation en interne.

Ce problème a été résolu dans cette version pour que l'utilisation de " avec un JoinColumn soit maintenant journalisé, et ne résulte plus en exception DuplicateMappingException.
991578 - HHH-8390 Foreign key reference generated before unique constraint exists

Situation pour laquelle créer un schéma avec une clé étrangère déclarée avant de l'avoir été définie en clé unique ou primaire échouait dans Oracle et potentiellement pour d'autres dialectes.

Le problème a été corrigé dans cette version de JBoss EAP 6 en obligeant les contraintes de clés uniques à être créées avant les contraintes de clés étrangères dans le cadre du processus d'exportation de schéma.

De ce fait, les schéma ne doivent plus échouer dans Oracle à cause d'une clé étrangère déclarée avant qu'une contrainte unique n'existe.
977520 - HHH-8318 "delete" with "member of" query fails

Un bogue dans la conversion de demandes de suppression delete HQL contenant une clause de member of générait un SQL erroné. Par conséquent, la requête de suppression SQL (erronnée) échouait. Ce problème a était causé par le member of qui utilisait un alias erroné.

Ce problème a été résolu dans cette version de JBoss EAP 6 en obligeant les sous-requêtes member of à utiliser un alias correct dans le cadre d'une requête HQL de suppression delete, pour corriger le SQL.

HornetQ

1019378 - Message Redistribution could lead to loss of messages if paging and reading with batched Transactions

Dans quelques cas rares, si les messages étaient accusés réception trop rapidement et en morceaux de grande taille sur un serveur de HornetQ, une redistribution de message pouvait interpréter un enregistrement avant que la transaction ne soit instanciée sur le système de page. Cette situation se traduisait par la perte du message.

Ce problème a été résolu dans cette version de JBoss EAP 6 pour que le système de pagination instancie correctement une transaction de page et écrive uniquement le fichier après que la transaction de page soit instanciée.

À la suite de cette correction, dans de telles circonstances, il y n'aura aucun message perdu.
988321 - WARN - Replication Large MessageID 164 is not available on backup server. Ignoring replication message

Après une certaine séquence d'événements, une suppression de message volumineux peut être appelée à deux reprises, ce qui entraîne un message d'avertissement erroné sur un serveur de sauvegarde HornetQ, similaire à ci-dessous :
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: Replication Large MessageID 164  is not available on backup server. Ignoring replication message

Ce problème a été résolu en stoppant le message d'avertissement erroné d'apparaître dans les journaux de JBoss EAP 6. Ainsi, sur un serveur de sauvegarde HornetQ, il ne devrait plus y avoir de messages erronées de mise en garde associés à des messages volumineux.

Installer

977736 - Appclient starting script and configuration file shouldn't be installed without appclient option selected

Quand on utilise le programme d'installation dans JBoss EAP 6, si la case AppClient+ de l'écran d'installation de packages Pack Installation était vide, les fichiers AppClient étaient installés.

Ce problème a été résolu dans cette version de JBoss EAP 6 pour que les fichiers AppClient ne soient installés que si AppClient+ est sélectionnée.
1013973 - Installer: Cannot use Ctrl+c to quit installation (windows)

Un problème de spécification d'une dépendance JLine entraînait la commande clavier Ctrl + C à ne pas fonctionner dans le programme d'installation de console JBoss EAP 6 sur le Microsoft Windows Server.

Dans cette version de JBoss EAP 6, JLine a été mise à jour afin que lorsque Ctrl-C est saisi au cours d'installation de la console dans Microsoft Windows Server, le programme d'installation puisse se fermer maintenant comme prévu. Notez également que la touche Insert est lue de la meme façon que Ctrl-C, et va donc également faire sortir le programme d'installation de la console si vous appuyez dessus.
1013972 - Tab Extends for auto-completing home directory path is not working correctly

Dans l'installateur de la console de JBoss EAP 6, appuyer sur la touche tabulation pour auto compléter les chemins de répertoire de base de saisie semi-automatique ne fonctionne pas comme prévu. À la place de l'auto complétion des chemins de répertoire, sur Microsoft Windows Server, rien ne s'affichait et sur Linux / home était mal inséré.

Ce problème a été résolu dans cette version de JBoss EAP 6, pour que quand on saisit ~ et que l'on appuie sur Tab, le chemin d'accès du répertoire de base soit auto complété comme prévu. Sur Microsoft Windows Server, le chemin est C:\Users\USERNAME, et sur Linux, /home/USER.
963304 - Native components check box is invisible when installing EAP 6.0.0 through jar installer

Sur les systèmes d'exploitation dérivés Unix, l'installateur ne vérifiait pas correctement le fichier system-release, s'il y avait plus d'un fichier *-version présent dans le répertoire /etc /. Cela amenait l'installateur de ne pas reconnaître le système d'exploitation du serveur, et par conséquent la case à cocher Native Components ne s'affichait pas sur l'écran Pack Installation. Ce problème a été résolu dans cette version de JBoss EAP 6, et le programme d'installation vérifie désormais correctement le fichier system-release sur les systèmes d'exploitation dérivés Unix. Par conséquent, la case à cocher Native Components sur l'écran Pack Installation s'affiche comme prévu.

JCA

952277 - disable xa-data-source causes that data-source loses its attribute enabled set to false and after reload it becomes enabled

Lorsqu'une source de données XA était définie sur disabled (désactivée), et que la source de données était déjà disabled, la source de données était activée au prochain redémarrage. La cause de ce problème est maintenant résolue. Dans les mêmes circonstances, la source de données reste disabled.
1007608 - Memory leak if hashCode of Transaction isn't stable

Le JCA TransactionSynchronizer s'est avéré avoir une fuite de mémoire quand le code de hachage de Transaction n'était pas stable. Cette fuite de mémoire pouvait causer des OutOfMemoryErrors au bout d'un moment.

Une mise à jour du composant JCA a corrigé cette issue potentielle et les OutOfMemoryErrors associées ne sont plus présentes.

JSF

991276 - WAR_BUNDLE_JSF_IMPL does not work inside an EAR

Quand une implémentation JSF était packagée dans un WAR, WAR_BUNDLE_JSF_IMPL pouvaient être utilisé pour qu'il fonctionne plutôt que par le conteneur. Cette option ne fonctionnait pas quand elle était empaquetée dans un EAR à la place. La cause de ce problème était que seul le (sous-)déploiement était coché avec le marqueur JSF, ce qui fait qu'on ne pouvait pas le trouver où il était dans un déploiement distinct (EAR) de niveau supérieur. Pour résoudre ce problème, un contrôle supplémentaire a été mis en place pour le déploiement de niveau supérieur avec le marqueur JSF.

Référentiel Maven

1011918 - Unable to get dependencies for jbossws-cxf-client -- Failure to find org.apache.ws.security:wss4j:jar:1.6.11-redhat-1

Le processus de génération a été changé dans cette version de JBoss EAP afin de fournir des fichiers Maven POM plus conventionnels qui soient compatibles avec les POM de la communauté Maven. Les fichiers POM du référentiel Maven EAP ont maintenant des dépendances sur certaines versions d'artefact de communauté.

Les utilisateurs devraient consulter le Guide du développeur JBoss Enterprise Application Platform pour plus d'informations sur la façon de configurer le fichier Maven BOM approprié. La configuration du fichier Maven BOM approprié garantira que les générations en provenance d'utilisateur incluent la version de dépendance transitive qui convient (la version JBoss EAP sera utilisée pour les artifacts pris en charge et la version de la communauté sera utilisée pour les artifacts non pris en charge).

Autre

985204 - Socket not closed when web executor drops task

Cette version de JBoss EAP corrige un bogue qui amenait des sockets de connecteur web à ne pas se fermer correctement lorsque des tâches étaient abandonnées par l'exécuteur. La cause a été attribuée à la classe QueueExecutor qui ne lançait pas d'exception RejectedExecutionException quand il n'y n'avait aucun handoffExecutor défini (comme tel est la cas avec QueuelessExecutor). Dans ces cas, la tâche serait abandonnée, ce qui ne correspondait pas au comportement attendu. La classe QueueExecutor a été mise à jour pour lever une exception obligatoire lorsqu'une tâche ne peut pas être ajoutée à la file d'attente et, donc, les sockets sont maintenant fermées correctement.
901210 - Cleanup deploy directories - AS7-6031

Cette version de JBoss EAP 6.2 inclut un correctif qui assure que les fichiers et des répertoires créés dans les dossiers JBOSS_HOME/tmp et JBOSS_HOME/tmp/vfs soient supprimés avant qu'ils puissent interférer avec les instances EAP nouvellement (re)démarrées.

Dans les versions précédentes de JBoss EAP, des fichiers plus anciens ont pu avoir été laissés derrière après qu'un serveur se soit fermé inopinément (comme JBoss EAP supprime les fichiers de JBOSS_HOME/tmp et JBOSS_HOME/tmp/vfs dans le cadre de la procédure de fermeture).

Le correctif de cette version fournit une sécurité intégrée afin de mitiger ce scénario. Si un serveur JBoss EAP 6.2 ne se ferme pas correctement, le serveur ne pourra pas nettoyer ces fichiers temporaires. Lors du redémarrage, toutefois, le serveur vérifiera les emplacements ci-dessus, et, si les fichiers d'une instance précédente sont présents, il enclenchera un processus de renommage/suppression qui permettra la création de fichiers frais pour la nouvelle instance (les vieux répertoires sont renommés afin d'éviter les interférences avec les fichiers nouvellement créés). Ces processus se produisent en parallèle.

Pour redémarrer JBoss EAP (gracieusement ou autrement), les vieux fichiers temporaires sont maintenant supprimés (soit à l'arrêt ou au redémarrage), pour s'assurer qu'ils ne prennent pas d'espace disque inutilement

NOTE Le utilisateurs devraient éviter -Xrs JAVA_OPT car cela a un effet sur le traitement des signaux et donc la taille des répertoires tmp/cfs peut continuer d'augmenter.

PicketLink

977761 - PLINK2-25 characterEncoding parameter not used in for Post Requests in ServiceProviderAuthenticator

On a trouvé un problème de synchronisation dans Picketlink au sujet de paramètres lus par des requêtes de publication (post) dans le ServiceProviderAuthenticator à l'aide de l'encodage par défaut au lieu de l'encodage désiré. Le problème a été provoqué par le fait que PicketLink lisait ses paramètres avant que la valve Tomcat ait pu définir le codage. Pour résoudre ce problème le codage a été déplacé pour qu'il devienne la dernière étape de la méthode authentificate.

Remoting

1025319 - Trouble with EJB invocation from a server with/without SSL

Lorsque vous créez une connexion sortante distante, le service qui crée la connexion appliquait les paramètres par défaut après avoir appliqué les paramètres de configuration définis par l'utilisateur. Il en résultait des paramètres par défaut substituant incorrectement les paramètres définis par l'utilisateur qui avaient la même clé.

Le résultat de cette situation, c'est que SSL pouvait être désactivé sur les connections EJB en provenance du serveur.

Ce problème a été corrigé dans cette version de JBoss EAP6. Les configurations par l'utilisateur seront maintenant appliquées après les configurations par défaut, ce qui garantit que les paramètres définis par l'utilisateur puissent être prioritaires.

Le résultat de cette situation, c'est que SSL pouvait être désactivé sur les connections extérieures éloignées.
1025185 - Remoting subsystem: Concurrent modification exception during server shutdown

Un service de sous-système à distance itérait une collection d'une manière non thread-safe.

Suite à cela, une exception ConcurrentModificationException était parfois levée pendant l'arrêt du serveur. À part cette exception, la fermeture s'achevait normalement.
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)
...

Le problème a été corrigé dans cette version de JBoss EAP6. les collections sont maintenant itérées d'une manière thread-safe, avec le moniteur d'objet de collection détenu par le thread d'itération.

Ainsi, les exceptions ConcurrentModificationException ne sont plus envoyées.

RPMs

998319 - RPMs put important data in /var/tmp

RPM met des données importantes dans tmp/var/tmp, y compris /domain/data. /var/tmp doit normalement contenir des données temporaires qui peuvent être révoquées à tout moment. /domain/data ne devrait pas être redirigé vers /var/tmp/ car il contient des données importantes qui ne doivent pas être perdues, y compris le journal de récupération de transaction, le journal et le store grands messages d'HornetQ.

Ce problème a été résolu dans cette version de JBoss EAP 6. Pour les nouvelles installations, /usr/share/jbossas/domain/data correspondra à un répertoire au lieu d'un lien.

Cependant, pour les instalaltions existantes, effectuer une des opérations suivantes :
  • Ré-installer et migrer les fichiers de config et de données (y compris les répertoires temp) dans les nouveaux répertoires d'installation, ou bien
  • Désinstaller tmpwatch pour désactiver le vidage de /var/tmp/jbossas, ou
  • Configurer tmpwatch pour ne pas supprimer les fichiers que jbossas met dans /var/tmp/jbossas.

Scripts et commandes

998913 - standalone.bat still sets -XX:+TieredCompilation JVM option

On a réglé un problème dans le fichier de commandes standalone.bat utilisé dans le serveur Microsoft Windows Server. Le fichier de commandes contenait auparavant une option JVM qui définissait la compilation sur plusieurs niveaux : -XX:+TieredCompilation. Cette configuration a été supprimée car elle est connue pour avoir causé des problèmes dans certains cas.
916960 - Standalone.bat does not work if parentheses are on path to EAP.

Dans les versions précédentes de JBoss EAP, les fichiers de commandes fournis - par exemple standalone.bat ou add-user.bat ne fonctionnaient comme prévu sur Microsoft Windows Server si le chemin d'accès contenait des parenthèses ou des espaces. Les fichiers de commandes ont été améliorés par l'utilisation de caractères de citation pour que le chemin d'accès complet puisse être évalué. Par conséquent, les fichiers de commandes fonctionnent maintenant comme prévu avec les chemins d'accès entre parenthèses et espaces y compris.

Sécurité

920160 - Unauthorized access to a web application protected with a custom authorization module results in HTTP 200 (OK) instead of HTTP 403 (Forbidden)

Dans JBoss EAP 6.1.0, l'accès non autorisé à une application web protégée par un module d'autorisation personnalisé résultait en réponse HTTP de 200 (OK) au lieu de HTTP 403 (Interdit). Ce problème a été résolu et la réponse qui convient est maintenant fournie.

Serveur

1022223 - Deployment descriptor overlays do not override JSPs

Les couches de descripteurs de déploiement doivent permettre à un administrateur de remplacer un JSP dans un déploiement. Toutefois, la fonctionnalité de superposition n'a pas fonctionné parce que JBoss Web n'utilise pas de VFS pour servir du contenu, et donc les fichiers JSP n'étaient pas visibles. Un essai supplémentaire de la méthode de déploiement a été ajouté et la substitution des descripteurs de déploiement maintenant fonctionne comme prévu.

Gestionnaire de transactions

1016120 - Transaction JDBC object store does not start on PostgreSQL Plus 9.2

Le gestionnaire de transactions de JBoss, JBoss Transaction Manager, n'avait pas de classe pilote correctement configurée dans PostgreSQL Plus 9.2. Cela créait une exception ClassNotFoundException quand vous tentiez d'utiliser un magasin d'objets de transactions JDBC dans PostgreSQL Plus 9.2.

Dans cette version de JBoss EAP 6, le Gestionnaire de transactions de JBoss été mis à jour avec une classe de pilote PostgreSQL Plus 9.2 (jdbc.drivers.postgres_driver) et les stores d'objets JDBC peuvent maintenant être utilisés avec les serveurs PostgreSQL Plus 9.2.

Web

997009 - requiredSecret attribute on the AJP connector

Lorsque vous utilisez un serveur d'équilibrage de charge Apache devant JBoss EAP 5.x, vous pouvez définir l'attribut "requiredSecret" du connecteur AJP. Ceci est utilisé pour autoriser uniquement les demandes de workers d'équilibrage des charges avec le même mot clé secret, pour pouvoir être accepté.

Dans JBoss EAP 6.0.x et 6.1.x, il n'était pas possible de configurer cette valeur. Ce problème est maintenant résolu et vous pouvez maintenant définir une propriété système sur votre valeur pour l'attribut « requiredSecret » :
org.apache.coyote.ajp.DEFAULT_REQUIRED_SECRET=yoursecretvalue
996558 - Https connection hangs after adding https connector

Lorsque vous ajoutez un connecteur HTTPS via Management CLI, toute tentative de connexion est bloquée, malgré que chaque commande procède avec succès. La cause du problème était que le connecteur est démarré dès qu'il a été créé, mais comme sa configuration était incomplète, cela empêchait le connecteur de fonctionner comme prévu. Pour contourner le problème, il aurait fallu regrouper les commandes de configuration dans une séquence batch, end-batch, afin que tous les énoncés de configuration puissent être complétés ensemble. La cause de ce problème a été résolue et l'accès à un connecteur HTTP fonctionne maintenant, que les instructions de configuration soient en séquence ou en lot de gestion CLI.

La console web

947913 - Admin Console: The Resource Adapter Properties becomes editable clicking in the configured Resource Adapters.

Lorsque vous affichiez les propriétés d'un adaptateur de ressources (RA) dans la console de gestion web, il était possible que les propriétés de l'adaptateur deviennent des champs modifiables, permettant à des champs existants d'être modifiés ou supprimés et à de nouveaux champs d'être ajoutés. Ces champs aurait dû être présentés comme champs en lecture seule, puisqu'il n'y a pas de fonctionnalité pour les modifier dans la console de gestion web. Si un tel champ était modifié, les valeurs éditées restaient dans leur forme modifiée, mais ne pouvaient pas être stockées dans le fichier de configuration de l'adaptateur de ressources. Ce problème est maintenant résolu et les propriétés de tous les adaptateurs de ressources sont désormais présentées comme des champs en lecture seule.
900063 - Missing error message when creation of Custom Handler fails

Dans les versions précédentes de JBoss EAP 6, après l'échec de la création d'un gestionnaire de journalisation personnalisée dans la Console de gestion web, aucun retour d'information n'était donné à l'utilisateur. En conséquence, l'utilisateur pouvait raisonnablement supposer que le gestionnaire de journalisation personnalisée était créé. Pour résoudre ce problème, un message d'erreur s'affiche maintenant dans ces circonstances, ce qui montre clairement à l'utilisateur que la création a échoué.
1012539 - "Started?" field in messaging bridge settings in incorrect

Le champ d'information de runtime Started? a été supprimé dans l'écran Profile → Messaging → Connections → Bridges dans cette version de JBoss EAP 6.

La raison de ce changement est que ce champ affichait parfois des informations eronnées, et comme il n'était pas éditable, il ne fournissait aucune fonctionnalité aux utilisateurs.
996889 - Unable to change port offset for servers in domain

Lorsque vous modifiez les plages de port des serveurs d'un domaine, l'action échouait accompagnée du message : « erreur interne du serveur ». La cause sous-jacente, c'est que la valeur de socket-binding-group de la ressource server-config était indéfinie, donc lors d'une tentative de modification de la configuration du serveur, aucune valeur ne pouvait être présélectionnée dans la boîte de sélection Socket binding. Par conséquent, la première partie d'une opération composite échouait. La cause principale est maintenant résolue et les plages de port des serveurs d'un domaine peuvent maintenant être définies dans la console de gestion web.

Services Web

1026992 - Picketlink STS doesn't work with CXF update

Le correctif appliqué à JBoss EAP pour adresser CVE-2013-2133 implique des contrôles d'autorisation par le conteneur avant d'exécuter les handlers JAXWS attachés aux points de terminaison WS basés EJB3. En conséquence, le scénario d'utilisation de certains PicketLink peut être touché, car le PicketLink SAML2Handler est destiné à mettre en place l'entité de sécurité qui sera utilisée plus tard.

Les visiteurs peuvent désactiver les contrôles d'autorisation supplémentaires et continuer à utiliser les déploiements PicketLink existants, soit en définissant la propriété système org.jboss.ws.cxf.disableHandlerAuthChecks à true, soit en spécifiant la propriété org.jboss.ws.cxf.disableHandlerAuthChecks dans un descripteur jboss-webservices.xml comme suit :
<?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>

Le descripteur doit être placé dans META-INF dans le déploiement du client pour lequel les autorisations de handler doivent être désactivées.

À la place, la configuration des propriétés système affecteront n'importe quel déploiement sur le serveur.

Notez que l'activation de la propriété org.jboss.ws.cxf.disableHandlerAuthChecks restitue un système vulnérable à CVE-2013-2133. Si l'application s'attend à des restrictions de sécurité déclarées sur les méthodes de l'EJB à appliquer et ne les applique pas indépendamment du gestionnaire JAX-WS, alors la propriété ne devrait pas être activée. La propriété doit uniquement être utilisée à des fins de compatibilité rétroactive si nécessaire pour éviter des dommages à l'application.
988318 - CLI - after undefine operation on wsdl-host attribute of webservices subsystem and reload war with webservice can not be deployed

Un bogue qui faisait échouer le déploiement des applications lorsque l'attribut wsdl-host n'était pas défini a été corrigé dans cette version de JBoss EAP 6.
999223 - wsconsume.sh fails with the default target version - 2.2

Dans les versions précédentes de JBoss EAP, il a été constaté que WSConsume aurait négligé de compiler les sources de niveau JAXWS 2.2 lorsque OpenJDK version 1.6 était utilisé.

Résolu dans cette version.

Weld

956631 - CLONE - Cross-context forward/include call from another web app breaks HttpRequestContext cleanup

Pour les demandes transmises, WeldListener nettoyait une demande liée à un contexte quand le servlet qui le traitait avait terminé, même si la demande avait été envoyée à une autre servlet.

Ainsi, quand l'autre servlet essayait d'accéder au contexte, il produisait une exception NullPointerException.

Le problème a été réglé dans cette version de JBoss EAP 6 en évitant de nettoyer un contexte lié quand le servlet est redirigé.

Ainsi, en utilisant getRequestDispatcher().include() pour envoyer des demandes entre les servlets ne devraient plus engendrer d'exceptions liées à des nettoyages WeldListener erronés.
910185 - Weld's TypeSafeObserverResolver cache is unbounded

La classe Weld TypeSafeObserverResolver utilisée par TransactionalObserverNotifier n'a pas d'option de configuration pour limiter ou expirer les entrées. Le nombre de qualificateurs CDI est généralement petit, mais cela peut ne pas être vrai si une application utilise des classes dérivées de AnnotationLiteral avec des données arbitraires dans l'annotation.

De ce fait, le cache TypeSafeObserverResolver pouvait grandir exponentiellement et causer une erreur OutOfMemoryError si un grand nombre de qualificateurs distincts étaient utilisés en mëme temps.

Le problème a été corrigé dans cette version de JBoss EAP6 par la création d'une limite supérieure configurable pour le cache résolu dans TypeSafeObserverResolver.

Les utilisateurs peuvent configurer la propriété org.jboss.weld.resolution.cacheSize afin de limiter le nombre maximal d'entrées de cache résolues. La valeur par défaut de la limite maximale est 1048576 entrées du cache.

Services Web

969924 - Picketlink STS doesn't work with CXF update

Le correctif appliqué à JBoss EAP pour adresser CVE-2013-2133 implique des contrôles d'autorisation par le conteneur avant d'exécuter les handlers JAXWS attachés aux points de terminaison WS basés EJB3. En conséquence, le scénario d'utilisation de certains PicketLink peut être touché, car le PicketLink SAML2Handler est destiné à mettre en place l'entité de sécurité qui sera utilisée plus tard.

Les visiteurs peuvent désactiver les contrôles d'autorisation supplémentaires et continuer à utiliser les déploiements PicketLink existants, soit en définissant la propriété système org.jboss.ws.cxf.disableHandlerAuthChecks à true, soit en spécifiant la propriété org.jboss.ws.cxf.disableHandlerAuthChecks dans un descripteur jboss-webservices.xml comme suit :
  <?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>

Le descripteur doit être placé dans « META-INF » dans le déploiement du client pour lequel les autorisations du gestionnaire doivent être désactivées. Le programme d'installation de la propriété système affectera tout déploiement sur le serveur à la place. Notez que l'activation de la propriété « org.jboss.ws.cxf.disableHandlerAuthChecks » rend un système vulnérable à CVE-2013-2133. Si l'application s'attend à des restrictions de sécurité déclarées sur les méthodes EJB à appliquer et ne les applique pas indépendamment du gestionnaire JAX-WS, alors que la propriété ne devrait pas être activée. La propriété doit uniquement être utilisée à des fins de compatibilité descendante si nécessaire pour éviter de casser l'application.

mod_cluster

958991 - mod_cluster core when use ProxyPass / balancer://bal and CreateBalancers 1

Une regression des versions 6.1.0 et 6.1.1 de JBoss EAP causait un CreateBalancers 1 dans /conf.d/mod_cluster.conf sans définir la configuration stickysession=JSESSIONID|jsessionid résultant en une faute de segmentation. Ce problème a été résolu dans JBoss EAP 6.2. L'élément stickysession a maintenant été ajouté à la configuration CreateBalancers.
960243 - Regression in ProxyPass integration

Une régression dans une version antérieure de mod_proxy_cluster.so (bug 960246) renvoyait des erreurs HTTP 503 lorsqu'elle accédait à un répertoire (par exemple <filename class="directory">/app/clusterbench/requestinfo/</filename>. Ce problème a été corrigé dans cette version de JBoss EAP et mod_proxy_cluster.so fonctionne maintenant comme prévu lors de l'accès aux répertoires.
963720 - mod_cluster: proxy DNS lookup failure with IPv6 on Solaris

Dans les versions de EAP 6, lorsqu'on essayait d'utiliser les adresses IPv6 dans un système Solaris, cela entrainait un échec de Recherche DNS.

Le problème pouvait être retracé à la chaîne IPv6 zone-id des adresses IPv6.

Comme cette information n'est pas utile au HTTPD, la chaîne n'est plus utilisée et mod_cluster fonctionne maintenant dans les systèmes Solaris.