Release Notes 6.0.1

JBoss Enterprise Application Platform 6

New Features, Known Issues, and Support Information for JBoss Enterprise Application Platform 6.0.1

Darrin Mison

Red Hat Engineering Content Services

Abstract

Release notes for the JBoss Enterprise Application Platform 6.0.1 General Availability release, including new features, resolved issues, supported and unsupported configurations, and known issues.

1. Introduction

Welcome to JBoss Enterprise Application Platform 6. As you become familiar with the newest version of JBoss Enterprise Application Platform, these Release Notes provide you with information about new features, newly-resolved issues, and known issues. Use this document in conjunction with the entire JBoss Enterprise Application Platform 6 suite of documentation, available at http://docs.redhat.com/.

1.1. Providing Feedback

To provide feedback on this document, file a bug at https://bugzilla.redhat.com, using product JBoss Enterprise Application Platform, version 6.0, and component documentation-6.0.1_Release_Notes. For your convenience, you can use the following URL, which fills in the product, version, and component automatically: https://bugzilla.redhat.com/enter_bug.cgi?component=doc%20-%20release%20notes&product=JBoss%20Enterprise%20Application%20Platform%206&version=6.0.1

1.2. Overview

JBoss Enterprise Application Platform 6 is Red Hat's response to significant changes in the way organizations develop and deploy enterprise applications. As organizations seek to lower operational costs and reduce time to market for new applications, JBoss Enterprise Application Platform 6 has been rebuilt for a vision of the future, boasting an innovative modular, cloudy-ready architecture, powerful management and automation, and world class developer productivity.
JBoss Enterprise Application Platform 6 is Java EE 6 certified and features powerful yet flexible management, improved performance and scalability, and many new features to improve developer productivity. All with Red Hat's market-leading reputation for certification and support, ensuring your administration and development needs continue to drive forward into the future and beyond.

2. Unsupported Features

Some configurations that worked for JBoss Enterprise Application Platform 5 are no longer supported. Please review them.
Infinispan API
The direct use of the Infinispan API is not supported in JBoss Enterprise Application Platform 6. Infinispan is used as an implementation detail for various clustering technologies internal to JBoss Enterprise Application Platform. The API's module.xml incorrectly indicates that direct use is possible, even though this is not the case. This will be fixed in a future release. Direct use of the Infinispan API requires a subscription to JBoss Data Grid.
IPv6 Limitations of JDK 6
The following IPv6 limitations are caused by JDK 6, and are not defects in JBoss Enterprise Application Platform 6.
  1. On Microsoft Windows Server, JDK 6 has only a partial IPv6 implementation. This implementation is not sufficient to run JBoss Enterprise Application Platform 6. Full IPv6 support on Microsoft Windows Server requires JDK 7.
  2. On Red Hat Enterprise Linux, a bug in Oracle JDK 6 means that any address specified on a client (the network point establishing the connection) which contains a zone-id will fail. To use a zone-id, either upgrade to JDK 7, or use IcedTea/OpenJDK 6, which is available for Red Hat Enterprise Linux, and does not exhibit this bug. For more information about the bug, refer to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6800096 and https://issues.jboss.org/browse/JBPAPP-8833.
JPA 2.0 Context Propagation Outside of a JTA Transaction
Hibernate's JPA implementation did not adhere to JPA 2.0 standards in that previously, an extended persistence context could be propagated outside a JTA transaction. This has been fixed, and Hibernate now complies with the specification. If your application uses an extended persistence context (XPC) to allow queuing or batching of data modifications, you may need to make changes to your application. Refer to the JBoss Enterprise Application Platform 6 Migration Guide for instructions on updating your application.
For more information about this decision, refer to https://issues.jboss.org/browse/AS7-1663.
PicketLink IDM
The PicketLink IDM (Identity Managment) is not supported in JBoss Enterprise Application Platform 6.
PicketLink STS
PicketLink STS (Security Token Service) is not supported in JBoss Enterprise Application Platform 6.
Tanuki Service Wrapper
The Tanuki Service Wrapper is not supported with JBoss Enterprise Application Platform 6. More information can be found at https://issues.jboss.org/browse/JBPAPP-8651.
XA Recovery on Microsoft SQL Server 2008
XA recovery does not work with Microsoft SQL Server 2008. For more information refer to the following URLs:

3. Features Provided as Tech Preview Only

The following configurations and features are known to have issues and are provided as tech previews only. They are not supported in a production environment.
JBoss OSGi
JBoss OSGi, an implementation of the OSGi specification, is provided as a technology preview only.
WS-AT/XA Bridge
The WS-AT/XA transaction bridge functionality is provided as a technology preview only, and is not supported in a production environment.

4. Components

The JBoss Enterprise Application Platform 6 component matrix is available at the following location: https://access.redhat.com/knowledge/articles/112673 .

5. Resolved Issues

JBPAPP6-1069 - CLONE - CDI, Unsatisfied dependencies for generic type arrays
GenericArrayTypeImpl lacked an implementation of the hashCode and equals methods. This meant that the injection points were not matched with the producers for generic type arrays. An implementation of these methods has been provided in the GenericArrayTypeImpl, and generic type array injections now work as expected.
JBPAPP6-1059 - Memory leak due to JSF
A faulty JSF patch caused InitFacesContext to not get cleared from the ThreadLocal. This issue has been fixed by a JSF upgrade.
JBPAPP6-1044 - Create version.txt File in the Root Directory of the EAP Install
A version.txt file is now included in the installation directory of JBoss Enterprise Application Platform 6. This file includes the following string for version 6.0.1: JBoss Enterprise Application Platform - Version 6.0.1 GA
This file can be used by administrators or scripts to determine the version of the platform which is installed on a given system.
JBPAPP6-1025 - CLONE - Weld - Deadlock between SFSB Synchronization lock and Weld AbstractContext session context lock
If a stateful session bean contained a producer method there was the potential for a deadlock between the stateful session bean synchronization lock and the Weld AbstractContext session context lock. Both locks would remain until the session bean lock timeout expired, throwing an timeout exception (javax.ejb.ConcurrentAccessTimeoutException). The Weld component has been updated to deal with this scenario. This potential dead lock state can no longer occur.
JBPAPP6-1012 - JRE-provided services are not available to deployments
META-INF resources provided by the JRE could not be seen by other modules or deployments, resulting in failure to find implementations for javax.print.PrintServiceLookup and other services. These resources are now exported and are available to other modules and deployments.
JBPAPP6-1009 - CLONE - Weld - Long running producer called multiple times in the same context
The AbstractSessionBeanStore incorrectly assumed that the underlying HttpSession attributes couldn't change. When there were two concurrent requests in the same session that caused a session-scoped instance to be produced, the AbstractContext creation lock correctly blocked the second request from calling the producer a second time. However, a check that was supposed to tell if an instance had already been produced while waiting on the creation lock would fail because of the erroneous assumption in the AbstractSessionBeanStore. This caused the producer to be called a second time. AbstractSessionBeanStore has now been fixed to look inside the HttpSession attributes if an instance cannot be found in the thread-local store.
JBPAPP6-994 - OSGI logging doesn't print I18N messages
The logging subsystem did not print some internationalized messages in system locale, but printed English messages when the server was started using non-English locales. This has been resolved by an upgrade to the logging subsystem, and log messages now appear in the appropriate language for the locale.
JBPAPP6-952 - CLI: unable to specify command arguments to echo-dmr command
It was not possible to specify command arguments when using the echo-dmr command in the management CLI, if the arguments contained a double-dash (--) sequence. This prevented the user from using arguments such as --all-server-groups. This was fixed by modifying the way the command arguments were parsed, and all appropriate arguments now work as expected.
JBPAPP6-942 - Messages not support JBoss Logging
Some log messages produced by different components were localized. This was because they did not support JBoss Logging. These components have been updated to support JBoss Logging. These log messages are now localized.
JBPAPP6-925 - CLONE - Weld - Deadlock between Weld AbstractContext session/application contexts creationLock
A possible deadlock could occur between the Weld AbstractContext session and an application context's creationLock if two requests in the same session were run, and a bean instance was produced inside a different-scoped producer. The per context creation lock in AbstractContext has been replaced by a more fine-grained per bean-id creation lock in the bean store. A deadlock will no longer occur.
JBPAPP6-920 - Apps are not deployed after EAP 6 restart in standalone profile
Previously deployed zipped or exploded archives were not redeploying at server startup if the corresponding deployment scanner property (auto-deploy-zipped or auto-deploy-exploded) was set to true. Before each scan, the deployment scanner now ensures that the appropriate deployment markers exist for each already deployed archive that requires them. All previously deployed archives now deploy at server startup as expected.
JBPAPP6-919 - CLI usability: datasource command does not report that the disable operation was not executed as it requires restart
When using the management CLI script, running data-source disable did not report that a restart would be required before it took effect. This has been resolved in JBoss Enterprise Application Platform 6.0.1, and the user is now advised to restart the instance after running the command.
JBPAPP6-904 - Properties files with translations for supported languages missing
Some log messages were missing translations for German, Spanish, French, Japanese, Portuguese Brazilian and Simplified Chinese. This meant that those log messages would always be displayed in English. The translation properties files for those languages and log messages have been updated. Those log messages now display in the appropriate language.
JBPAPP6-894 - Error messages Id ranges overlaps
Some subsystems where creating log messages using IDs that assigned to other subsystems. This could create confusion in situations where the IDs were being relied upon to understand the messages. An example of this situation would be when dealing with messages that had been localized in a language you were not familiar with. These subsystems have been updated to only use their assigned IDs and this confusion can no longer occur.
JBPAPP6-878 - A new pooled connection factory in messaging subsystem always has transaction mode xa
In some cases, new pooled connection factories were being created with the transaction mode of xa regardless of the configured value. This was caused by the messaging subsystem parser setting the transaction type based on a comparison of the passed value to the types it expected. This meant that a number of valid values were being disregarded and the type defaulted to xa. The message subsystem parser has been updated to use the supplied value. New pooled connection factories are now created with the specified transaction mode in all cases.
JBPAPP6-870 - Logging subsystem should not allow assigning an async-handler as a sub-handler to itself
When configuring an asynchronous log handler, it was possible to add an asynchronous log handler to itself as one of its own sub-handlers. This created a circular dependency and should not have been possible. This type of configuration would lead to a fatal error at server launch. The logging subsystem has been updated to prevent this type of configuration from being created. Attempting to add an asynchronous log handler to itself as one of its own sub-handlers will now fail with the error message "Cannot add handler HANDLER_NAME to itself".
JBPAPP6-964 - AS7-4900: Re-creating a logging handler fails with message "JBAS014749: Operation handler failed: null"
Previously, if you created a log handler from the Management CLI using the :add operation, removed it using the :remove operation, and then added it again, the second add operation would fail with the message "JBAS014749: Operation handler failed: null". The logging subsystem has been updated to correctly handle this situation. Log handlers can now be added, removed and re-added without error.

Build

JBPAPP6-1099 - RPM - /etc/init.d/jbossas-domain script should allow a host configuration file to specified
A RPM install of JBoss Enterprise Application Platform 6 includes the file /etc/init.d/jbossas-domain, which allows configuration of a domain to be started on a Red Hat Enterprise Linux server. This file now allows a host configuration file to be specified, to customize the behavior of the host controller which is part of a JBoss Enterprise Application Platform instance. To specify the host configuration file, use the JBOSS_HOST_CONFIG variable in the file.
JBPAPP6-1034 - Init script: jboss restart fails with busy port 8080
If a browser, for example the Administration Console, is still connected when the application server is stopped, the client connection can still be around for a short time in a TIME_WAIT state. In this situation, the application server start script detected both listening and established connections, resulting in a failure to restart the application server because port 8080 was busy. The startup script has been modified to ignore established connections and detect only clients that are listening to port 8080.
JBPAPP6-1014 - EAP6 RPM (RHEA-2012:12461) - contains both signed and unsigned version of the jar
Previously, the JBoss Enterprise Application Platform 6 RPM packages included both signed and unsigned JARs although the signed JARs were not supported. The signed JARs have been removed from the RPM packages in this release. The RPMs now only include the supported unsigned JARs.
JBPAPP6-957 - Compilation failure on IBM JDK due to XSLT parsing error - "illegal attribute 'copy-namespaces'"
When building JBoss Enterprise Application Platform 6.0.0 from source, using IBM JDK, the following error occurred:
[ERROR] Failed to execute goal org.codehaus.mojo:xml-maven-plugin:1.0-redhat-1:transform (ts.config-as.trace-logging) on project jboss-as-testsuite: Failed to parse stylesheet javax.xml.transform.sax.SAXSource@7e787e78: com.ibm.xtq.xslt.jaxp.HandledRuntimeException: [ERR 0512] Cannot continue because of stylesheet errors. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal
This was caused by the following code which was used in the XSLT: <xsl:copy copy-namespaces="..."> This code is only compatible with XSLT 2.0, but IBM JDK's XSLT engine only supports XSLT 1.0. This parameter was only used for cosmetic purposes, and has been removed. The error no longer occurs, and it is possible to compile JBoss Enterprise Application Platform 6.0.1 from source using IBM JDK.

Clustering

JBPAPP6-1418 - CLONE - Shutdown in REPL SYNC results in TimeoutException: Unable to acquire lock after
A TimeoutException with the message Unable to acquire lock could sometimes occur during node shutdown when using REPL SYNC cache mode. This occurred because commits were sent asynchronously regardless of cache mode. Therefore, request for a given session could return before the cache operation completed. A subsequent request could be received by a different server, since requests to a server which is shutting down are redirected to a different node. The lock acquisition for that session could contend with lock acquisition by the original node's commit. Commits are now done synchronously so there should not be any issues acquiring locks.
JBPAPP6-1397 - NotSerializableException: org.infinispan.loaders.bucket.Bucket on undeploying application
Un-deploying an application from one node in a cluster could result in NotSerializableException exceptions. This was due to a race condition between the shutdown of the web deployment (including the session manager) and the stopping of the dependent DistributedCacheManagerFactory, which depends on the cache container. The cache container stopped while the web session cache was in the process of stopping and the externalizer on which it depended suddenly became null, causing the NotSerializableException. This has been resolved by upgrading the Infinispan component, and the exception no longer occurs.
JBPAPP6-1349 - CLONE - Occurrences of "Exception acquiring ownership of X (via SharedLocalYieldingClusterLockManager)"
An exception sometimes occurred during shutdown of a cluster node when using DIST SYNC cache mode, or during a node crash when using REPL SYNC cache mode. This occurred because two threads were competing for the same lock on the key. The threads will now retry once in order to avoid the exception.
JBPAPP6-1147 - Sessions sometimes fail to passivate with unable to acquire lock after with 0 milliseconds timeout
Sessions sometimes fail to passivate with the following log message:
Execution error: org.infinispan.util.concurrent.TimeoutException: Unable to acquire lock after [0 milliseconds] on key [ULshl+wHh0iUAr33vnqM2H8E] for requestor [Thread[ContainerBackgroundProcessor[StandardEngine[jboss.web]],5,main]]!
This was due to a local contention which could occur between a writer thread and the eviction thread.
Because eviction is a non-critical operation, the code has been updated to retry on the writer thread and to fail silently on the eviction thread. Now in the same scenario, the eviction thread will ignore the session, the writer thread's lock acquisition will succeed on the second attempt and the session will passivate successfully.
JBPAPP6-1175 - CLONE - Remote store config errors in AS7
An error occurred during server start up, when the remote-store was configured. This was caused by errors in the module.xml file of the respective module. The module.xml file has been updated, and the remote-store now functions as expected.
JBPAPP6-1067 - SingletonService is not stopped after cluster split/merge
One instance of SingletonService is intended to run per cluster. If a cluster is split due to networking issues, one instance of the SingletonService would run in each cluster, which caused problems when the split cluster members rejoined the original cluster. The instance run in the non-elected cluster-master node is now deactivated by calling its stop() method, and there is only one active instance.
JBPAPP6-938 - CLONE - Removing singleton service should also remove child services.
When a singleton service was redeployed, the deployment would fail because child services that were created automatically during the original deployment were not removed. Now, when a singleton service is removed to prepare for the redeploy, the child services are also removed, resulting in a successful redeployment.
JBPAPP6-935 - AS7-3180 Clean shutdown often results in "Problems unmarshalling remote command from byte buffer"
A clean shutdown of JBoss Enterprise Application Platform 6 cluster node would result in several warning messages being logged. The log messages warned of: "Problems unmarshalling remote command from byte buffer: java.lang.NullPointerException" but there was no other effect apart from the log messages. This was due to the some of the components being shutdown in the wrong order. The clustering components have been updated to correct this. A clean shutdown of a JBoss Enterprise Application Platform 6 cluster node no longer causes these warnings to be issued.
JBPAPP6-900 - WARNING on Starting JGroups Channel "[UNICAST2] (OOB-20,null) perf18/web: my conn_id (0) != received conn_id (4); discarding STABLE message !"
A warning message could occur in UNICAST(2) during startup, because the unicast connection was torn down while a STABLE message was still in transit. This message could be safely ignored, and the log level has been decreased to removed the warning.
JBPAPP6-884 - CLONE - Sessions lost on server crash when using DIST SYNC mode (Lock is being held by null)
In some instances, when a node crashed during a hard kill of the application server, its session was not found in the cache and instead a new session was created. This only occurred when a server was killed, not during a graceful shutdown. This problem is fixed in this release.
JBPAPP6-883 - NAKACK retransmission for single messages
When JGroups requests retransmission of missing messages during a FLUSH_RECONCILE, it would not complete the request if there was only one missing message, causing the FLUSH_RECONCILE to fail. JGroups will now request retransmission if there is only one missing message, and the FLUSH_RECONCILE will successfully complete.

Consoles

JBPAPP6-1113 - Error adding resource adapter properties in admin console
When using the management console to add a resource adapter, and then add a connection definition to it, you were given the option to add connection properties in an order that did not make sense. This step has been removed from the wizard, and the process of adding a resource adapter is now streamlined.
JBPAPP6-951 - CLI --version does not show version
Running the jboss-cli tool (jboss-cli.sh or jboss-cli.bat) with --version and --connect parameters would not cause the tool to connect to the server and retrieve the release version information (JBoss AS release). Instead of the correct release information, the JBoss AS release field would contain the "<connect to the controller and re-run the version command to see the release info>". The jboss-cli tool has been updated to ensure that it connects to the server when the --version and --connect parameters are used together. Running the jboss-cli tool with only the --version parameter still returns the same information as before because that was correct behavior. However when the --connect parameter is used as well, the tool will now connect to the server and return the JBoss AS release data.
JBPAPP6-887 - add-user.sh/add-user.bat non-interactive mode cannot redirect output
When the add-user script redirected the output of the command, for example ./add-user.sh --silent=true user password &gt; log, it failed with a java.lang.IllegalStateException: JBAS015232: No java.io.Console available to interact with user. The code behind this script was using the System.console() API for password hiding, which returns null when it is run non-interactively. The error output is now sent to System.out with allows it to run non-interactively.

EJB

JBPAPP6-1064 - Regression: EJB remote invocations hang indefinitely due to possible remoting issues
Remote invocation of an EJB which returned a large object graph could cause a hang which prevented shutdown of the application server. This was due to a configuration error which caused a class that was part of the object graph not to be available in the client's classpath. A ClassNotFound exception was thrown when deserializing. The client would appear to freeze, but could be interrupted by using Ctrl+C. However, the server would deadlock and fail to respond. The only way to shut it down was to kill the process on the operating system level. This configuration error was fixed by an upgrade to the Remoting component, and this error no longer occurs.

Hibernate

JBPAPP6-1031 - HHH-7568 Add JPA1.0 compound key compatability when ORM descriptor file used to override annotations.
Property definitions to support applications using JPA1.0 syntax is only supported with annotations. When the annotations were used in conjunction with overriding ORM descriptor files, the annotated compound keys were lost. Added support to keep the annotation-based compound keys, even if overriding ORM descriptor files were used.
Also, annotation definitions are currently applied to individual JoinColumn annotations. But the JPA overridden annotation reader does present individual JoinColumn annotation definitions. It groups them together using the JoinColumns annotation descriptor. Updated to allow the group annotation in addition to an individual annotation.
JBPAPP6-985 - org.hibernate.exception.SQLGrammarException: invalid identifier
JPA entities that used the @OrderBy annotation on joined classes would generated invalid SQL statements. This resulted in exceptions of type org.hibernate.exception.SQLGrammarException being thrown when the code was executed. Hibernate has been updated to correct the SQL generation for this annotation. The @OrderBy annotation now produces the expected order by SQL statements.
JBPAPP6-901 - ParentAuditing Test in Envers Testsuite fails across all databases with different error messages because Hibernate does not set LockMode correctly
The ParentAuditing test in Hibernate Envers failed across all databases with different messages because the LockMode was not set correctly. The Hibernate code was updated to fix this issue, and the LockMode is now set correctly.
JBPAPP6-891 - HHH-6960 NullPointerException in PreCollectionRemove Listener
If collection removal actions were added by the DefaultAutoFlushEventListener.onAutoFlush() method, they need to be removed if the flush is not actually needed, because no updates involve the specified query spaces. A fix to the bug HHH-6862 introduced a situation where these collection removal actions were no longer removed in this situation. As a result, when the session was flushed, duplicate collection actions were added to the action queue. The first of these actions executed properly, but set the value of CollectionEntry.loadedPersister to null. If Hibernate Envers was used, the second removal action involving the same collection would fail with a NullPointerException when EnversPreCollectionRemoveEventListenerImpl.onPreRemoveCollection() called collectionEntry.getLoadedPersister().isInverse(). This problem has been fixed, and the duplication and exception no longer occur.

HornetQ

JBPAPP6-1114 - RemoteConnectionFactory is not found when looking up in a remote client
Remote clients attempting to perform a lookup for a RemoteConnectionFactory would fail if a local client had performed a lookup first. When a local client performed the lookup first the connection factory was initialized in a way that was incompatible with remote clients. It was expected that a local client would not use RemoteConnectionfactory. This initialization issue has been fixed. Remote client can now perform RemoteConnectionFactory lookups when the connection factory has been initialized by a local client.
JBPAPP6-982 - Increase the of id-cache-size attribute as the default is potentially dangerous when very small messages are used, and the server being killed multiple times until the cache empties
Previously, sending large volumes of very small messages could result in performance and stability issues in HornetQ. The default value of id-cache-size has been increased from 2000 to 20000. This means that reliability has greatly improved in this scenario.
JBPAPP6-967 - Memory leaks when deploying message driven beans
A small memory leak was identified in the HornetQ component when deploying and undeploying message-driven beans. This was caused by the client session factories created by the HornetQ resource adapter during MDB deployment not being cleaned up properly during undeployment. The HornetQ component has been updated to resolve this issue. This memory leak no longer occurs.
JBPAPP6-889 - HornetQ cluster is not created when network connection is re-established
When running Enterprise Application Platform 6 on two different machines in a HornetQ cluster, if the network connection between the machines was lost and later re-established, the cluster node was not created and the cluster connection was not restarted. The topology member is now created and added back to the cluster and the cluster connection is restarted.

Installer

JBPAPP6-945 - Installer: UI bug : Text fields do not persist the modified data and show blank as user clicks Next ,proceeds then returns back with previous
In the installation wizard, only a single variable was used to store both the default value displayed by each data entry field and the value entered by the user. If the user clicked "Back" on any stage of the wizard, the fields on the page would reset to the default values and the previously entered value would be lost. An additional variable has been added for each data entry field. The user entered data now correctly persists when the user navigates back and forward through the pages of the installation wizard.
JBPAPP6-934 - Installer: Contents of bin/client are not being included in the Installer
The client binaries files (bin/client/) were not installed by the graphical installer. Users that required them needed to download the ZIP installation. The installer has been updated to include these files. The client binaries are now installed when using the graphical installer.
JBPAPP6-928 - Installer: symlinks to RHEL-provided .so files not created correctly
Installing using the graphical installer on Red Hat Enterprise Linux 6 did not create the correct symbolic links for the native JBossWeb components. The installer created a text file for each link that contained the link name instead of creating the correct symbolic link. The installer now uses the native unzip utility instead of the Java JAR utility. The symbolic links for the native JBossWeb components are now created correctly when using the graphical installer on Red Hat Enterprise Linux 6.

JCA

JBPAPP6-944 - It is not possible enable a datasource via CLI
Datasources could not be enabled via the Management CLI, due to an XML parser error in the default value of the enabled attribute. The error has been corrected, and datasources can now be enabled successfully.
JBPAPP6-886 - Deployment of multiple .rar's with ironjacamar.xml
An illegal argument exception would occur when deploying an .EAR with multiple .RARs, which each had an ironjacammar.xml file. This was due to registering more than one subdeployment on the same .EAR to expose resource-adapters statistics and operations. A code change was implemented to catch this exception and add the needed tree branch of DMR instead of creating the full tree again. The exception no longer occurs.

JMX

JBPAPP6-872 - JBoss EAP6.0 GA does not allow adding system property org.apache.tomcat.util.ENABLE_MODELER=true
When enabled, the system property org.apache.tomcat.util.ENABLE_MODELER was causing an error that prevented JBoss Enterprise Application Platform 6 from booting. This was because the name of the connector was not consistent with JMX naming requirements. The name of the connector has been changed, and the property now performs as expected.

JPA

JBPAPP6-1051 - Add support for @PersistenceContexts and @PersistenceUnits
Previously, there was no included annotation support for javax.persistence.PersistenceContexts and javax.persistence.PersistenceUnits. They could be configured in the ejb-jar.xml deployment descriptor but not as annotations. Support for these annotations has been added. The @PersistenceContexts and @PersistenceUnits annotations can now be used.
JBPAPP6-899 - PersistenceUnitSearch violates the JPA spec
An EAR deployment with multiple EJB JARs, each with their own persistence units, would fail to deploy if one of them contained an enterprise bean that referenced an EntityManager without specifying the persistence unit name. This deployment would fail with the error:
"Persistence unitName was not specified and there are 2 persistence unit definitions in application deployment "application-name.ear". Either change the application to have only one persistence unit definition or specify the unitName for each reference to a persistence unit."
The JPA PersistenceUnitSearch class has been updated to implement the correct behavior according to the JPA specification. References to EntityManagers using @PersistenceContext that do not explicitly define a unitName now default to the PersistenceUnit that is defined in the same deployment.

Maven Repository

JBPAPP6-1096 - jbosgi-spi-3.1.0.Final-redhat-1.pom has a dependency on args4j which is not part of the Repository.
The jbosgi-spi-3.1.0.Final-redhat-1.pom Maven artifact which was shipped with JBoss Enterprise Application Platform 6 has a dependency on args4j. However, this package was missing from the Maven repository which shipped with JBoss Enterprise Application Platform 6. This made building applications without a connection to an external repository difficult. This dependency has been satisfied in the Maven repository which is included with JBoss Enterprise Application Platform 6.0.1.

Microcontainer and Deployers

JBPAPP6-950 - Ear with <library-directory>/<library-directory> does not work, but no errors reported
If an EAR archive had its library-directory property set to the archive root ("/" or ".") or if subdeployment were placed into the otherwise correctly configured library directory then the subdeployments were treated as both library JARs and as deployments. This prevented the EAR deployment from working correctly. An EAR with this configuration would be deployed without error but would not work as expected. Those two scenarios are considered invalid and are now checked for when deploying EAR archives. EAR archives with the library-directory set to the archive root ("/" or ".") or with a sub-deployment within the library directory will now fail to deploy and an error message is logged.

Remoting

JBPAPP6-1644 - CLONE - Subsequent create/close of javax.naming.Context leads to IllegalStateException
If a remote client attempted to create and close javax.naming.Context multiple times in rapid succession an exception of type IllegalStateException was thrown. This was caused by an issue in XNIO where it would not always correctly detect when a channel had been closed. The included version of XNIO has been updated to resolve this. The rapid creation and closure of javax.naming.Context multiple times by a remote client now performs as expected.
JBPAPP6-1011 - JConsole hangs when we try to access EAP6.0.0 in domain mode via Remoting Port
There was an issue where CLI integration with JConsole attempted to connect to a non-existent Remoting endpoint, but Remoting did not send back any error to report the non-existence. This caused JConsole to hang without connecting to the JBoss instance. This issue has been fixed in the latest release.

Scripts and Commands

JBPAPP6-1087 - Some script utilities don't work correctly on Windows, if $JBOSS_HOME or $JAVA_HOME variables contain space symbols
Running the vault.bat and jconsole.bat scripts on Microsoft Windows would fail if JBoss Enterprise Application Platform 6 or the Java Virtual Machine were installed in directories that contained spaces in their paths. The scripts would fail to launch correctly and returned several "Path not found" error messages. These two scripts have been updated to correctly deal with paths containing spaces. The vault.bat and jconsole.bat scripts now run correctly when the installation paths include spaces.
JBPAPP6-962 - Parameter -server is not added for PC and HC when running on IBM JDK 6 and 7
When using the IBM JDK version 6 or 7, the -server parameter was not added to the process controller or host controller commands, when using a managed domain. The error was found in the domain.sh script, starting at line 76. The -server parameter is now added correctly in the domain.sh script.

Security

JBPAPP6-1027 - tmp/auth/ challenge files are not deleted when access is via a remote client.
Previously, each unsuccessful attempt to connect to JBoss Enterprise Application Platform 6 using the JBOSS_LOCAL_USER SASL mechanism was leaving a generated token file in the tmp/auth directory. Only a successful login attempt would remove its token file after use. A large number of failed login attempts over time with this mechanism could result in the host machine running out of disk space. The token file is now deleted from the file system regardless of whether the authentication attempt succeeds or fails. A failed login attempt using the JBOSS_LOCAL_USER SASL mechanism no longer leaves an unused token file.
JBPAPP6-956 - JACC permissions are not created for application packaged in EAR deployments
Even when standalone WAR and EJB3 applications had their JACC permissions configured correctly, the JaccService did not generate the permissions when the applications were packaged in EAR deployments. This was caused by a bug in code of the createPermissions method during policy configuration, and has been resolved for JBoss Enterprise Application Platform 6.0.1.
JBPAPP6-932 - Unable to use Krb5LoginModule from IBM JDK, because of missing jboss-negotiation module dependency
A missing jboss-negotiation module dependency prevented the use of Krb5LoginModule with the IBM JDK. A new module, ibm.jdk, has been added that contains all required IBM paths. Krb5LoginModule now works successfully with the IBM JDK.

Web

JBPAPP6-923 - [EAP 6.0.0] Unable to not set key-alias for ssl
There was previously a known issue where, when running in FIPS mode the key-alias had a default value of 'jboss'. This triggered exceptions when non FIPS compliant key managers were used. This issue has been resolved.
Now, if your configuration file uses the 1.0 or 1.1 XSD schema for the web subsystem and doesn't specify a key-alias, EAP will manually add "jboss" as the key-alias. When the configuration persists following any subsequent change, the schema version of the subsystem will be changed to 1.2 but key-alias="jboss" will be written to the file. If the configuration file uses the 1.2 schema version and doesn't specify a key-alias, no key alias will be used.
This behavior preserves compatibility with previous releases (an old configuration will not suddenly have a change in behavior when an upgrade to 6.0.1 is done) while providing the desired behavior going forward.
JBPAPP6-896 - FacesContext.getCurrentInstance returns external context from a different deployment during application startup
In some situations, the FaceContext.getCurrentInstance() method call from a ServletContextListener during application startup returned the external context from a different deployment. This was caused by a failure to properly clean up the FacesContext that was held in a ThreadLocal, allowing a JSF WAR to gain access to another WAR's resources. Additional tracking and cleaning of the InitFacesContext references has been added, so that another deployment reusing the same thread won't get references belonging to the previous deployment.

Web Services

JBPAPP6-968 - JBossWS-CXF: back port the fix of OneWay faultTo request is not correctly transmitted to the specified address
An error occurred during OneWay faultTo requests, as the requests were not transmitted to the specified address. This was because of an issue in the request path code. The request path has now been corrected, and OneWay faultTo requests now perform as expected.
JBPAPP6-867 - Need additional dependencies in jbossws-cxf-client module
Some web service dependencies were missing from the org.jboss.ws.cxf.jbossws-cxf-client module that resulted in java.lang.Linkage ClassCastExceptions when running a standalone client using the jboss-modules.jar. The required dependencies were added to the module definition to resolve this issue.

6. Known Issues

JBPAPP6-1680 - Usage of finalize() needs extra guards on IBM JDK
JBoss Enterprise Application Platform 6 can experience intermittent failures when running on the IBM JDK 6 and 7. This is because the IBM garbage collector is much more aggressive than that of other JVMs. This can sometimes result in memory being reclaimed in situations that were unanticipated and did not manifest when testing on other JVMs.
Until this issue is resolved Red Hat recommends not using the IBM JDK 6 or 7 to run JBoss Enterprise Application Platform 6.
JBPAPP6-1701 - Installer rejects valid maven repo as invalid when option to select maven repo with artifacts for building eap is selected for installing quickstarts
When using the Installer, performing the Maven configuration step for the Quick Starts will always fail. The error message displayed is "The given path either isn't a maven-repository, or does not contain the required artefacts". As a result it is not possible to configure the user's Maven settings to use the specified repository with the GUI Installer. In this release, this step must be done manually. Refer to the developer guide for more information.
JBPAPP6-1533 - SystemMemoryUsageLoadMetric is not correct on Linux/Unix
The SystemMemoryUsageLoadMetric does not show useful information on Linux or UNIX operating systems. For these systems, HeapMemoryUsageLoadMetric provides more useful information. The solution to this problem will be to change the algorithm of SystemMemoryUsageLoadMetric to subtract the buffers/cache value from the used number. The best method for doing this is under investigation.
JBPAPP6-1500 - [AS7-4981]Server instance cannot start after host-controller and server instance processes are killed at once in domain mode
If a host-controller and server-instance processes of a domain mode server are killed at the same time, the host-controller restarts successfully but the server instance fails. Attempting to start the server instance manually will also fail. These failures are recorded in the server logs. It is necessary to stop and restart the server entirely in this scenario.

Apache Server (httpd) and Connectors

JBPAPP6-1260 - JK Status Manager does not work
Apache mod_jk includes a status manager API. When operations are run with it, the changes are not applied, whether initiated via the API or the JK Status Manager web interface. This is due to an error with shared memory synchronization.
JBPAPP6-1392 - APR natives are not being loaded if UAC is in place (Windows Server 2008 R2)
On Windows servers, Apache portable runtime (APR) libraries will fail to load unless a user with administration rights is being used with User Account Control (UAC) disabled.
JBPAPP6-1378 - CLONE - Apache with mod_cluster refuses to start (create_mem_node)
On Windows servers, Apache with mod_cluster in JBoss Enterprise Application Platform 6 can only be started if the following conditions are met:
  • The user must have administration rights.
  • User Account Control (UAC) must be disabled.
JBPAPP6-1417 - httpd: libaprutil-1.so.0: file too short
Apache portable runtime (APR) binaries are not natively packaged as part of JBoss Enterprise Application Platform, or JBoss Enterprise Web Server, for Red Hat Enterprise Linux. Symbolic links are used to reference the base Red Hat Enterprise Linux libraries. This can result in an issue with unresolvable symlinks when trying to use APR binaries if the following packages are not installed: apr, apr-util, apr-devel, apr-util-devel.
The fix for this issue will be shipped with the Red Hat Enterprise Linux APR update against the Bugzilla link referenced in the JIRA.

Clustering

JBPAPP6-1326 - CDI beans with SET replication trigger are not replicating
Due to a bug in the Weld component, the setAttribute method is not called correctly. This causes CDI beans with the SET replication trigger to fail to be replicated. The workaround is to use the SET_AND_NON_PRIMITIVE_GET trigger for these beans. This will be fixed in a future release.
JBPAPP6-1408 - CLONE - Singleton Service fails on Windows with "IllegalStateException: JBAS010350: Expected result from singleton provider only, but instead received 0 results"
An error like the following can be seen on Microsoft Windows:
IllegalStateException: JBAS010350: Expected result from singleton provider only, but instead received 0 results
This issue is under investigation and seems to be due to timing. The fix will be to make the getValueRef method retry if the new master has not yet been notified. Until this fix is in place, the workaround is to add a Thread.sleep() call to your code to delay the getValueRef() call.
JBPAPP6-1405 - Property substitution breaks when the string "localhost" is used as part of the default value
Property substitution does not work correctly when the string "localhost" was used as part of a default value in the JGroups subsystem configuration. Property substitution is a feature provided for JBoss Enterprise Application Platform 6 subsystems. However not all subsystems have it enabled, and some subsystems (like JGroups) actually do some of their own substitution. However this behavior is not standardized and differs from the supported subsystem properties. Red Hat recommends not to use property substitution with the JGroups subsystem until this issue is resolved.
JBPAPP6-1315 - CLONE - Sessions lost on server shutdown using DIST ASYNC
In some situations, clustered sessions are lost when a server shuts down when using DIST ASYNC cache mode. The cause of this issue is still under investigation.
JBPAPP6-1303 - CLONE - Stale session data received when using DIST SYNC on node shutdown
During testing, a few cases showed that stale session data was received when a node shut down and DIST SYNC or DIST ASYNC cache mode was used. This issue is still under investigation.
JBPAPP6-1169 - transient "WeldListener: java.lang.NullPointerException" with clustering and session replication
A WeldListener: java.lang.NullPointerException is thrown occasionally when using session passivation. The client receives a HTTP response 503, along with the exception text. The cause of this bug is under investigation.

EJB

JBPAPP6-1322 - Remote EJB NoSuchEJBException with REPL SYNC replication
A NoSuchEJBException can occur when using clustered remote EJBs with sync replication. The stateful session bean cache is lost and the client does not receive a valid reply. The cause of this issue is under investigation.
JBPAPP6-1423 - CLONE - Extremely slow response times in Remote EJB invocation on cluster membership change
On server shutdown or crash, membership changes can take up to one minute to complete. This issue is currently under investigation.

Consoles

JBPAPP6-1341 - EAP6 CLI error when data is over 64k
There is a known issue where any command that returns a String converted to UTF-8 that is over 64k is aborted with an error. The root cause of this is only logged at the debug level in server.log. This issue occurs in org.jboss.dmr.StringModelValue.writeExternal(StringModelValue.java:46) and is a limitation of the DataOutput.writeUTF(String) method. The issue is currently under investigation.

Hibernate

JBPAPP6-1487 - HHH-7287 Problem in caching proper natural-id-values when obtaining result by naturalIdQuery using NaturalIdLoadAccess
NaturalIdLoadAccess behaves inconsistently when trying to load entities from the Level Two(L2) Cache after an update of their natural-id values from a non-transactional scenario.
Hibernate currently does not support proper L2 caching of entities with natural IDs in scenarios where there is a mix of transactional and non-transactional access to the database.

HornetQ

JBPAPP6-1347 - Problem with Netty on IPv6 link-local addresses
Due to a JDK bug, if you use link local addresses, zone IDs are used to distinguish which interface is chosen. This problem does not affect global addresses. A workaround will be included in a future version of the Netty component.
JBPAPP6-1522 - CLONE - NPE in ClientSessionFactoryImpl - NettySymmetricClusterWithBackupTest
When JBoss Enterprise Application Platform 6 is shutdown while there is still messaging activity, HornetQ sometimes logs an error message from a null pointer exception (NullPointerException).
[Thread-9 (HornetQ-server-HornetQServerImpl::server 4-23816361)] 26-Feb 8:28:56,696 WARNING [ServerLocatorImpl]  NULL
  java.lang.NullPointerException
       at org.hornetq.core.client.impl.ClientSessionFactoryImpl$PingRunnable.send(ClientSessionFactoryImpl.java:1646)
Apart from the log message there are no negative consequences and the cause is being investigated. This can be avoided by ensuring that messaging activity has ceased before commencing server shutdown.
JBPAPP6-1519 - CLONE - NPE in ServerLocatorImpl - ClusterConnectionControlTest
When JBoss Enterprise Application Platform 6 is shutdown while there is still messaging activity, HornetQ sometimes logs an error message from a null pointer exception (NullPointerException).
[Thread-6 (HornetQ-server-HornetQServerImpl::serverUUID=9660e261-6099-11e1-a8c1-001aa0331a23-4266519)] 26-Feb 11:47:36,738 WARNING [ServerLocatorImpl]  NULL java.lang.NullPointerException
Apart from the log message there are no negative consequences and the cause is being investigated. This can be avoided by ensuring that messaging activity has ceased before commencing server shutdown.

IPv6 support

JBPAPP6-1357 - Opened IPv4 sockets on Windows when server is bound to IPv6
If JBoss Enterprise Application 6 is started in Microsoft Windows server with the IPv4 stack disabled and the IPv6 stack enabled, IPv4 sockets are still opened. This issue is still under investigation.
JBPAPP6-1475 - Wrong format of IPv6 addresses in log entries
IPv6 addresses should be formatted with square brackets ([ and ]) around them, such as in http://[2620:52:0:105f::ffff:2]:9990. The brackets are missing in the log files for JBoss Enterprise Application Platform 6. This issue is scheduled to be fixed in a future release.

Scripts and Commands

JBPAPP6-1379 - Jdr script utility isn't able to connect to localhost:9990 at all
The following error messages occur in the following contexts if the clusters-proxy-configuration is not configured:
  • Server logs: Could not query url: http://localhost:9990/management; error: HTTP Error 500: Internal Server Error
  • When running the jdr.sh script: JBOSS API call failed, falling back to HTTP: Controller Client is not available
These errors are normal, and only indicate that the clusters-proxy-configuration is not configured. These messages are created because of implementations in the upstream sosreport project, and they may be modified or removed in the future.

Web Services

JBPAPP6-871 - JBossWS-CXF doesn't send fault message to a FaultTo endpoint when request-response message
If the FaultTo element of WS-Addressing is set to a WS client, the WS server does not send fault messages to the FaultTo destination. However, if the ReplyTo element is set, the WS server does send the responses to the ResponseTo destination. The cause of this issue is still under investigation.

Weld

JBPAPP6-1664 - ConversationPropagationFilter breaks external redirects
Weld ConversationPropagationFilter incorrectly tries to transform a URL during a programmatic redirect to an external URL. Doing programmatic redirect from a long-running conversation causes an error: java.lang.IllegalArgumentException: Illegal view ID [...]. The ID must begin with /.

A. Revision History

Revision History
Revision 1.0-3.4002013-10-31Rüdiger Landmann
Rebuild with publican 4.0.0
Revision 1.0-3Tue Feb 26 2013Darrin Mison
BZ#896430 - updated components URL
Revision 1.0-2Fri Dec 21 2012Tom Wells
Added JBPAPP6-1664 to the list of known issues.
Revision 1.0-1Tue Dec 18 2012Tom Wells
Corrected typo.
Revision 1.0-0Mon Dec 17 2012Darrin Mison
Corrected MSSQL XA Recovery text
JBPAPP6-1680
Added known issue JBPAPP6-1701
Revision 0.0-10Fri Dec 7 2012Darrin Mison
Removed remaining internal issues and old new features
Revision 0.0-9Tue Dec 3 2012Darrin Mison
Added PicketLink STS and IDM to unsupported list
Revision 0.0-8Tue Nov 30 2012Darrin Mison
Updated version of the JBoss Enterprise Application Platform 6.0.1 release notes.
Revision 0.0-7Tue Nov 27 2012Darrin Mison
Updated version of the JBoss Enterprise Application Platform 6.0.1 release notes.
Revision 0.0-6Wed Nov 19 2012Darrin Mison
Updated version of the JBoss Enterprise Application Platform 6.0.1 release notes.
Revision 0.0-5 Wed Nov 14 2012 Tom Wells
Updated version of the JBoss Enterprise Application Platform 6.0.1 release notes.
Revision 0.0-4 Wed Nov 07 2012 Tom Wells
Updated version of the JBoss Enterprise Application Platform 6.0.1 release notes.
Revision 0.0-3 Mon Oct 29 2012 Tom Wells
Updated version of the JBoss Enterprise Application Platform 6.0.1 release notes.
Revision 0.0-2 Tue Oct 23 2012 Tom Wells
Updated version of the JBoss Enterprise Application Platform 6.0.1 release notes.
Revision 0.0-1 Tue Oct 23 2012 Tom Wells
First edition of the JBoss Enterprise Application Platform 6.0.1 Release Notes.

Legal Notice

Copyright © 2012 Red Hat, Inc..
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.