7. Changes in this release

7.1. Bug Fixes

CDI/Weld

1051375 - If multiple beans.xml files exist in a war deployed in an EAR all CDI beans will be registered twice

In previous version of EAP 6, when an EAR deployment contained a WAR subdeployment with multiple beans.xml files, e.g. in WEB-INF/beans.xml and WEB-INF/classes/META-INF/beans.xml, all beans would be registered twice and the deployment would fail. This has been fixed by ammending the deployment processor to take this possibility into account and such deployments no longer fail to deploy.
1029099 - NPE when replicating CDI bean on EAP 6.1.0 cluster

The session ID created in clustered instances of earlier JBoss EAP versions contained a full source in a deployed bean's metadata (used to create a session ID). This was causing beans deployed across different nodes in the cluster to be recreated if a session ID was reused when accessing a different node. A NullPointerException could also been seen in the later node's log.

New code has been introduced that obtains a relative path, rather than an absolute path. This means that beans are no longer recreated and the NPE no longer presents.
1050963 - Permanent fix for: org.jboss.weld.exceptions.DeploymentException: WELD-001414 Bean name is ambiguous

Bean name ambiguity validation was not isolated in deployments with multiple sub-deployments, and this caused DeploymentException in some scenarios. This has been resolved with an upgrade of the Weld component in this release of Red Hat JBoss EAP 6.
1070069 - Timed out conversation unexpectedly alive on next request

In previous versions of JBoss EAP 6 it was found that a conversation could be unexpectedly activated and associated with a request even after the conversation expires, resulting in a NonExistentConversationException.

This was because, in a JSF application, Weld did not properly check conversation state at the beginning of requests.

This release of the product includes an updated conversation context activation and invalidation procedure to check conversation state more thoroughly. As a result, expired conversations no longer get mistakenly associated with requests.

CLI

988283 - CLI GUI - write attribute dialog for string value should enclose value in generated command to double quotes

Attempting to set a value using the jboss-cli tool that contained a property would only save the character $ in the value instead of the property unless the entire value was contained in double-quotes. This was because the CLI command line parser would incorrectly parse any ${X} expression as only $ unless it was contained in double-quotes.

The command line parser has been fixed in this release, so that attributes with properties will be correctly parsed even if they are not contained in double-quotes.
1007831 - CLI GUI - add operation for webservices client-config and endpoint-config fails

In previous releases of JBoss EAP 6 an add operation which did not have any arguments was treated as an operation that did not require any input from the user of the CLI GUI.

This caused the user to be able to execute the operation without providing the required argument name which would lead to a failure.

In this release the add operation without arguments is now treated by the GUI interface logic as one having required name argument.

Now, before allowing the user to execute an add operation which in the management model description does not require any argument, the user will be prompted to provide the required name argument.
1019232 - jboss-cli.sh throws NullPointerException when using tab complete on data-source node

In previous versions of JBoss EAP 6, the jboss-cli tool would throw an exception and exit when the user attempted to use the tab completion feature in some circumstances.

This was due to inadequate exception handling in the command parser for these situations and has been corrected in this release.
1031173 - jboss-cli.bat does not work when EAP installed into directory with spaces

The jboss-cli tool would not launch successfully on Microsoft Windows if JBoss EAP 6 was installed in a directory that had spaces or other special characters such as parentheses in its path. For example, the following error message was displayed if JBoss EAP 6 was installed in the directory C:\JBoss EAP\jboss-eap-6.2:
Error: Could not find or load main class EAP\jboss-eap-6.2\bin\jboss-cli-logging.properties

This issue has been fixed in this release by changing how the jboss-cli tool declares and uses file paths on Microsoft Windows. As a result, it can be used without workarounds in JBoss EAP 6 installations in directories that have spaces or other special characters in their path on Microsoft Windows systems.
1026418 - Command passed as argument is not executed while accepting SSL certificate.

When starting the JBoss EAP 6 CLI with a command being passed as an argument, if that server prompted the user to accept a server certificate, it logged that prompt as an error. This resulted in any command passed as an argument being skipped, as those commands are only executed if no errors have occurred.

This issue was fixed by outputting the certificate acceptance prompt as normal output instead of as an error. As a result, a command as an argument when starting the CLI is successfully executed after the user has accepted the server's certificate.

CLI,Remoting

1037574 - OOM when running multiple CLI operations probably caused by improper cleanup

Users of previous versions of JBoss EAP 6 may have encountered OutOfMemory errors when performing multiple operations through the command line interface.

The issue was traced to memory leaks caused by incorrect memory cleanup when using the CLI.

This issue has been corrected in this release of the product.

Class Loading

1060997 - testConnection should account for deployment classloader

A bug was uncovered that could cause earlier versions of JBoss EAP to throw an exception when testing a datasource. The exception presented while using the LDAP protocol in the datasource "connection-url" tag. The product was failing to instantiate InitialContextFactory because the "org.jboss.as.connector" module was not able to access some of the JDK provided classes (such as com.sun.jndi.ldap.LdapCtxFactory). This resulted in a datasource connection test failure when the Datasource "connection-url" was using "ldap://" protocol.

This issue was resolved by adding a dependency on sun.jdk to the org.jboss.as.connector module. This makes the required JDK classes accessible from the connector module and the datasource testing using CLI using "test-connection-in-pool" operation succeeds.
1054972 - Initialization of MBeans uses wrong TCCL

In previous versions of JBoss EAP, it was found that an application's TCCL (thread context class loader) was not appropriately set when initializing MBeans found in .sar files. This meant that resources in the deployment were not available to the MBean upon initialization. In this update to the product, the TCCL is now set appropriately surrounding the call to the MBean initialization and MBeans can now access deployment resources upon initialization.
971076 - Module "org.jboss.log4j.logmanager" Needs Dependency On "javax.mail.api" Module

In previous versions of JBoss EAP 6, org.jboss.log4j.logmanager did not specify its dependency on javax.mail.api in its module.xml.

This release adds this dependency to the logmanager module.

Clustering

990567 - ClassCastException when storing http session to PostgreSql

An issue was found which affected the storage of the HTTP session with Postgresql. With the following jdbc-store configuration, a ClassCastException error occurred, like the sample error message shown here. The HTTP session's values would be persisted but the application would fail to redeploy with the same error message.
<binary-keyed-jdbc-store datasource="java:jboss/datasources/testDS" preload="true" passivation="false" purge="false">
 <binary-keyed-table prefix="b">
  <id-column name="id" type="VARCHAR(255)"/>
  <data-column name="datum" type="BYTEA"/>
  <timestamp-column name="ver" type="BIGINT"/>
 </binary-keyed-table>
</binary-keyed-jdbc-store>
14:24:21,262 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (http-/127.0.0.1:8080-1) ISPN000136: Execution error: java.lang.ClassCastException: java.lang.Class cannot be cast to org.infinispan.loaders.bucket.Bucket...

This issue was resolved with a component upgrade and HTTP session data can be successfully persisted in a Postgresql database.
917010 - CacheException: Failure while unregistering mbeans at server shutdown

Previous versions of JBoss EAP 6 contained a bug in the Infinispan component that could cause the following exception at server shut down:
WARN [org.infinispan.jmx.CacheJmxRegistration] (MSC service thread 1-1) ISPN000032: Problems un-registering MBeans: org.infinispan.CacheException: Failure while unregistering mbeans

The error did not prevent successful shut down of the server and was caused by multiple stop requests (from CacheService and EmbeddedCacheManagerService) being sent to single cache instances.

This issue was resolved with an upgrade to the Infinispan component.
963448 - Incorrect exception handling in CoreGroupCommunicationService#handle

In previous versions of JBoss EAP 6, it was found that CoreGroupCommunicationService#handle was mishandling exceptions, affecting caller of the class.

The class was found to be hiding exceptions and returning null values instead. This value could produce unexpected and unintended behaviors in callers.

In this release, the null response will be dealt with by the distributed lock manager, however the use of CommandDispatcher in future releases of the product will resolve the issue permanently.
1039585 - Clustered session memory leaking

Previous versions of JBoss EAP 6 contained a bug that could lead to an OutOfMemoryException in distributed web sessions. The exception was encountered if a web session expired without the lock objects created by the session manager being released or destroyed. As web sessions continued to expire, the residual lock objects accumulated in memory. Eventually, this would lead to an OutOfMemoryException. The only recourse was to redeploy the web application.

In this release of the product the lock objects are properly released and the OutOfMemory no longer presents
956904 - Infinispan remote-store requires remote-servers but not marked as required in mgmt model

An issue was discovered in the handling of Infinispan's remote-store configuration. The remote-store option required that the value of the remote-server option be set, but this was not enforced, resulting in failure of the remote store. This issue has been resolved by marking the remote-server parameter as being mandatory, preventing an invalid remote-store configuration.

In this example, the management CLI command is incomplete and a warning is displayed.
[standalone@localhost:9990 /] /subsystem=infinispan/cache-container=web/distributed-cache=dist/remote-store=REMOTE_STORE:add(remote-servers=[])     {
  "outcome" => "failed",
  "failure-description" => "JBAS014706: [0] is an invalid size for parameter remote-servers. A minimum length of [1] is required",
  "rolled-back" => true,
  "response-headers" => {"process-state" => "reload-required"}
}

In this example, the management CLI command is complete.
[standalone@localhost:9990 /] /subsystem=infinispan/cache-container=web/distributed-cache=dist/remote-store=REMOTE_STORE:add(remote-servers=[{"outbound-socket-binding" => "fred"}])
{
  "outcome" => "success",
  "response-headers" => {"process-state" => "reload-required"}
}

Domain Management

1015303 - LDAP security realm needs to have configurable timeouts

This release of JBoss EAP 6 contains an enhancement that allows the use of custom properties on outbound LDAP connections.

In previous versions of the product, outbound LDAP connections were created with a limited set of properties leaving the remaining to the default behavior. As a result it was not possible for custom properties to be defined to control aspects such as connection and read timeouts.

In this release, custom properties can now be defined for the outbound LDAP connections with code similar to the following:
<ldap name="LocalLdap" url="ldap://localhost:10389" search-dn="uid=wildfly,dc=simple,dc=wildfly,dc=org" search-credential="password1!">
 <properties>
  <property name="one" value="two"/>
  <property name="three" value="four"/>
 </properties>
</ldap>
1074999 - Application disappears from Manage Deployments section of EAP console

In previous versions of JBoss EAP 6, the status of a deployment was not updated on the filesystem when the console was used.

As a consequence, using both the filesystem scanner and the console to manage the status of a deployment resulted in the scanner believing the deployment to be undeployed.

This release of the product enables the console and the filesystem scanner to share the status of the deployment and users can now use both administrative tools to manage deployments.
1035232 - EAP Domain mode is not working properly with Security manager

In previous versions of JBoss EAP 6, servers in a managed domain would not launch successfully if they were configured to use a Java Security Manager without specifying the classname of the Security Manager.

For example, this is commonly done when using the default Security Manager by specifying -Djava.security.manager in either` domain.conf` or as a command line parameter.

This issue occurred because a system property without a value was passed by Host Controllers to their managed servers with the value of true. This meant that the servers would incorrectly attempt to use a Java Security Manager with the classname of true.

This issue has been fixed in this release by adding extra checks for host controller system properties so that a system property is passed to the managed servers correctly. As a result, using a managed domain and using the default Security Manager by specifying -Djava.security.manager should function as expected.
1047515 - Domain Mode does not start with the IBM JDK

An issue that frequently prevented successfully starting JBoss EAP 6 in IBM JDK environments on Windows machines has been addressed in this release.

The issue has been traced to how binary data (i.e. a byte[]) written to java.lang.Process.getOutputStream() by the parent process is received over System.in by the child process. Any byte whose high order bit is 1 is garbled when received producing the following output in the console log:
[Host Controller] 16:44:06,419 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 1) JBAS014612: Operation ("start") failed - address: ([
[Host Controller] ("host" => "master"),
[Host Controller] ("server-config" => "server-one")
[Host Controller] ]): java.lang.IllegalStateException: JBAS010986: Host-Controller is already shutdown.
[Host Controller] at org.jboss.as.host.controller.ServerInventoryImpl.startServer(ServerInventoryImpl.java:175)

An EAP managed domain Process Controller communicates with the server processes it manages over this mechanism, meaning the problem affected EAP 6 managed domains.

In this release of the product, all communication to a managed process over stdin has been Base64 encoded which ameliorates the problem and Managed domain servers now start properly on Windows with the IBM JDK.
1054776 - ClientConfigurationImpl should not translate IP address to host name

In previous releases of JBoss EAP, when creating an instance of a controller client and passing it an IP address to connect to, the IP address was internally translated to the machine's host name.

Then, when the client attempted to make a connection, it used the host name rather than the IP address.

This not only introduced unnecessary overhead by involving the DNS server, but in some very specific deployment scenarios, it caused the client to try to connect to a different IP address of the same machine than the one where a JBoss EAP instance was bound, resulting in a failure of this connection attempt.

This has been fixed in this release; the controller client code does not internally translate the given IP address to the host name and uses only the IP address (rather than the corresponding host name) for making a connection.

Note that this fix does not affect the scenario when a host name is passed to the controller client's factory method. In this case, the host name will be translated to an IP address and that address will be used, as expected.
1072915 - slaves cannot reconnect to a restarted master if RBAC is enabled

In previous versions of JBoss EAP 6, When reconnecting to the master host-controller, the configuration model was added to the wrong location.

This meant that reconnecting to the master host-controller with RBAC enabled would fail.

In this release, the model is added in the right location, ensuring the slave host connects without problems.
1040621 - Cannot use deployments with same runtime-name in a domain

In previous versions of JBoss EAP 6, the check for duplicate values for deployment runtime-name attributes in a server group on startup was too aggressive. It was incorrectly throwing an error on startup if there were any duplicate runtime-names in the whole domain, instead of just in a single server group.

As a result, including multiple deployments in a domain with the same runtime-name would result in a boot failure even if those deployments are not mapped to the same server group.

For example:
JBAS010932: Caught exception during boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: JBAS014676: Failed to parse configuration
...
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1348,9]
...
Message: JBAS014664: An element of this type named 'example.war' has already been declared

In this release the validation of uniqueness of runtime names was moved from the XML parser to the operation execution logic, and the validation logic was adjusted to ignore duplicates not associated with the same server group.

Multiple deployments with the same runtime-name value can now coexist in a domain so long as they are not mapped to the same server group.
1076066 - Can't promote --backup slave HC to master and reload without moving domain.cached-remote.xml

In previous versions of JBoss EAP 6, a bug prevented a slave Host Controller that has been reconfigured to act as Master from loading the cached domain configuration upon restart. This was because the newly promoted Master loads the configuration from the domain/configuration/domain.xml file instead of the domain/configuration/domain.cached-remote.xml file.

In this release of the product, if a slave HostController started with the --backup option is reconfigured to act as master and is then reloaded to pick up that change, the domain.cached-remote.xml file it was maintaining when running as a backup will automatically be detected and used.
1038465 - remote outbound socket binding server is not stopped when the resource is removed

In previous versions of JBoss EAP 6, the remote outbound socket binding service was not stopped when the resource was removed.

This meant it was not possible to add a remote-destination-outbound-socket-binding with the same name, as the :add operation would fail because there was already a service registered with that name.

In this release, when a remote-destination-outbound-socket-binding resource is removed, the corresponding service is stopped.

As a result it is possible to remove and add remote-destination-outbound-socket-binding without any failure.
1110065 - Creating a server on a domain slave followed by setting a system property fails when done in batch mode

In previous versions of JBoss EAP 6, when the HostController processed an update to its configuration, it created operations to apply the changes to all running servers it was managing.

An issue arose because the Host Controller also created operations for non-running servers to add the "env" system property which resulted in "No handler for operation composite at address" errors.

This release of the product no longer creates the operations to modify the environment of non-running servers and the errors no longer occur.
1093866 - The "admin-only-policy" slave HC config option is not implemented correctly

In previous releases of JBoss EAP 6, a slave Host Controller started in admin-only mode would not be able to connect to the master Domain Controller to obtain the domain wide configuration.

As a result, if a slave Host Controller is started with --admin-only and it's host.xml has the admin-only-policy="fetch-from-master" set, the slave cannot connect to the master to get the domain wide configuration. The slave will fail to start.

This prevents the --admin-only slave using RBAC unless a copy of the domain-wide configuration file is stored locally as domain.cached-remote.xml and the slave is started with --cached-dc.

In this release the slave connection logic has been corrected and the slave can connect to the master and get the domain wide configuration, allowing it to obtain the domain-wide RBAC configuration policy.
1024109 - NPE in DelegatingServerInventory

Management requests sent to a Host Controller immediately after the Host Controller had launched may have failed with an exception of type NullPointerException. This was because there was a period of time between when the Host Controller was able to receive requests and when the server management system had fully started. This period of time was usually less than one second, but any requests received in that time would fail.

This issue has been fixed in this release by making sure that a Host Controller will only receive requests once the server management system has fully started. As a result, there is no longer period of time where received requests will trigger a NullPointerException because the the server management system has not fully started.
1085122 - ApplyRemoteMasterDomainModelHandler should apply the values of the root resource

In previous versions of JBoss EAP 6, it was found that the root domain resource from the domain controller was not getting applied to the slave host controllers. Instead the slave host controllers would use their own root resource.

This meant that when connecting to the slave domain controller directly, the version numbers in the root domain resource was the version of the slave domain controller, so the domain configuration was not homogeneous across the controllers in the domain.

In this release of the product, the slave registration process was updated to apply the root domain resource and the version numbers are now the same across the whole domain.
1016995 - Deployment Overlay feature is not able to replace the application libraries.

In previous releases of JBoss EAP 6, the Deployment Overlay feature was not working as documented. It did not overwrite the application jar libraries as it is supposed to. Changes were made to allow the Deployment Overlay feature to overwrite the application jar libraries, and it now works as documented.
1077838 - isSensitiveValue of class SensitiveVaultExpressionConstraint uses incorrect index in java.lang.String.substring method

In previous releases of JBoss EAP 6, the SensitiveVaultExpressionConstraint class was using an incorrect string index when multiple {} occurred in the write attribute value.

As a result, the use of the incorrect index was causing a StringIndexOutOfBoundsException to present.

In this release the isSensitiveValue method of the SensitiveVaultExpressionConstraint class is fixed to use the correct index and the StringIndexOutOfBoundsException no longer prensents.
1074560 - EAP management authorization throws an exception when an LDAP group contains a slash character

Previous versions of JBoss EAP were found to contain a bug that prevented the backslash (/) character from being escaped correctly when it was used in an LDAP group on a Windows Active Directory LDAP server. The bug would cause EAP management authorization to throw a NamingException. This release included an update that ensures the character is escaped correctly and the exception no longer presents.
1077536 - High CPU usage by JMX monitoring client, RBAC seems the hotspot

A performance issue affecting JMX Query was identified, where the CPU load was much higher than expected in previous JBoss EAP releases. The cause of the issue was that role-based access control (RBAC) was checking the address of every query, regardless of whether that address was relevant to JMX Query. To resolve this issue the processing of querie was changed to first check if the address is relevant to JMX Query and if not, avoid the processing involved. The result of this change is that CPU load of JMX monitoring is again at a normal level.
1038397 - Role Based Access Control (RBAC) does not work with Java Security Manager (JSM) enabled

When JBoss EAP 6 was run with the Java Security Manager enabled, the Role-Based Access-Control system was effectively disabled because in this situation all authenticated users were treated as SuperUsers. The only way to use Role-Based Access-Control was without the Java Security Manager enabled.

This issue was fixed in this release by making all access to the current AccessControlContext happen outside of the privileged action. As a result, Role-Based Access-Control is now still effective when enabling the Java Security Manager.
901275 - Usage of vault for system-properties throws java.lang.SecurityException

Previous versions of JBoss EAP 6 could fail to boot if a system property with a vault expression in its value attribute was used.

This was because the system property resources in the XML configuration were processed before the security vault resources. This meant that the security vault was not available as a source for resolving expressions. Any resources using a vault attribute would result in the following error:
java.lang.SecurityException: JBAS013322: Vault is not initialized

In this release of the product, if a system property value expression fails to resolve, a second attempt is made later in the boot process, at a point after the vault (if one is configured) is installed. This resolves the issue and systems using vault expressions now boot as expected.
1092220 - Audit log does not record boot operations correctly

Previous versions of JBoss EAP 6 contained inefficiencies in the audit logging of management operations executed during server boot:
  • Boot operations use special facilities that allow them to execute in parallel. The audit logging facility was not properly accounting for this leading to disorganized and confused logs.
  • Log records that were queued pending execution of the operation that enables audit logging were flushed from the queue before execution of the operations that handle adding log handlers. These records did not appear in any log.

The consequences of these issues included the following:
  • Logs for operations that occurred prior to the addition of audit log handlers were not recorded.
  • Extension add operations were not logged.
  • Internal execution details were logged that should not have been, giving the appearance that some operations executed twice.
  • Parallel boot operations were not organized to reflect the logical stream of operations that come from the XML parsers, but instead were logged in per-subsystem chunks, with the chunks randomly ordered.

In this release of the product, queued log records are not flushed until any log handlers are given a chance to be installed and the way in which tracking events to log has been made more sophisticated, allowing proper tracking of the parallel execution of operations that occur during boot.

All operations that occur during boot are now recorded, without any extraneous internal details of their executing being included. Operations are coherently organized into the two groups that reflect how the server fundamentally organizes boot. The operations that execute in parallel during boot are reported in the order in which they were originally provided by the XML parser.
1092213 - AccessAuditContext domainUUID is not set when the domain-uuid header is set

Previous releases of JBoss EAP 6 contained a bug wherein PrepareStepHandler created a UUID and set "operations-headers" => "domain-uuid" on an operation, but did not then pass that UUID to AccessAuditContext.

In a managed domain operation for an operation on the domain controller, this meant the domainUUID field in the audit log record had no value, however the operation field that showed the operation that was invoked includes a domain-uuid operation header.

This issue has been resolved in this release of the product.
1092206 - OperationContextImpl.readResourceForUpdate assumes all resources represent persistent config

In this previous releases of JBoss EAP 6, the operation execution logic assumed all management resources represented persistent configuration when handling the readResourceForUpdate method for an OperationStepHandler.

As a result, the subsystem=transaction/log-store=log-store resource's probe operation and the subsystem=transaction/log-store=log-store/transactions=* resource's delete operation could not be invoked by an admin in the Operator role.

This issue has been corrected in this release.
1092203 - Not authorized write operation does not get audit logged if log-read-only="false"

Previous versions of JBoss EAP 6 contained a bug that prevented the logging of a "write" operation invoked by an unauthorized user if the "log-read-only attribute" on the management audit-logging resource was set as false.

This was because the model controller used "acquisition of controller lock" as a condition to determine whether an operation should be reported as a "write" operation in the log . When role based access control (RBAC) was enabled and an unauthorized operation was performed the error occurred before the controller lock is taken.

As a result, unauthorized write operations were not reported in the audit log if "log-read-only" was set as false. If "log-read-only" was set as true, the log record incorrectly stated the operation as a "read" operation.

This issue has been resolved in this release of the product.
1049102 - CLI fails to show app status when runtime-name is different from the deployment name

In previous versions of JBoss EAP 6, the management operation handler used to determine the status of a deployment was using the deployment name to find the deployment service instead of using its runtime-name.

As a result, if a deployment had a runtime-name that was different from its management name, an attempt to read its "status" attribute would result in a response of No metrics available.

For example:
[standalone@localhost:9999 /] deploy /home/ABC.ear --name=ABC.ear --runtime-name=XYZ.ear

[standalone@localhost:9999 /] /deployment=ABC.ear:read-attribute(name=status)
{ "outcome" => "success", "result" => "no metrics available" }

In this release of the product, the management handler uses the runtime-name when looking up the deployment service which ensures the status is correctly returned. The response from the above example is now:
[standalone@localhost:9999 /] /deployment=ABC.ear:read-attribute(name=status)
{ "outcome" => "success", "result" => "OK" }
1034700 - whoami operation doesn't work with security manager enabled

The :whoami operation did not run correctly when JBoss EAP 6 was running with the Java Security Manager enabled. Attempting to run this operation in this situation would result in an IllegalArgumentException being thrown. This occurred because of invalid AccessControlContext situations where the identification of the current caller was incorrect.

This issue has been fixed in this release by accessing the current AccessControlContext outside of the privileged action. As a result, the :whoami operation will now run correctly when JBoss EAP 6 is running with the Java Security Manager enabled.

Domain Management,Scripts and Commands

1023444 - Domain fails to start with default memory settings on Windows 32bit JDK

Previous versions of JBoss EAP could fail to start when run in a Windows 32-bit JDK environment with the default memory settings.

In this release of the product, the default memory settings have been lowered to ensure a successful start on a wider array of JVMs.

Customers who rely on the default JVM settings are advised to review their configuration and adjust JVM parameters based on their requirements.

Domain Management,Web Services

987898 - Write to wsdl-url attribute for WS endpoint ends with 'Unknown attribute wsdl-url' instead of 'Attribute wsdl-url is not writable'

Five attributes of deployed SOAP Web Services endpoints (name, context, class, type, and wsdl-url) were not accessible in the management tools. This was because they were not exposed to the management model by the Web Services subsystem. This issue has been fixed in this release, and the attributes can now be configured under the webservices subsystem using the Management CLI.

EE

1056799 - JBMETA-371: DefaultPropertyReplacer + PropertyResolver is broken for vault expressions

In previous versions of JBoss EAP 6, the expression resolving logic in the DefaultPropertyReplacer and PropertyResolver classes (used for parsing deployment descriptor files) assumed that the expression content between "${" and "}" was of a fixed format where any ":" char in the expression represented a separator between a system property name and a default value.

This meant that security vault expressions in deployment descriptors could not be successfully parsed, as ":" is always used in those expressions and not as a separator preceding a default value. Vault expressions would be evaluated incorrectly with the expression content following the first ":" being treated as the resolved value.

In this versions of the product, when the end of an expression is detected, before returning the expression contents following the first ":" as the resolved value, the resolver first checks whether the entire expression can be resolved.

Security vault expressions can now be used in deployment descriptor files where expressions are allowed in general.

EJB

1093128 - Remote client transaction timeout values are overwritten by hardcoded values

Previous releases of JBoss EAP 6 carried an issue that may have resulted in remote client transactions spanning multiple servers timing out earlier or later than expected.

The issue arised because timeout values are not propagated across servers correctly, leaving the system to rely on the hardcoded timeout value (300 seconds).

This issue is resolved in JBoss EAP 6.3.0.
1059911 - @Schedule EJB Timer not using timezone when calculating next timeout

In previous versions of JBoss EAP 6, a bug was encountered where, if the @Schedule EJB timer used a timezone that was different to that used by the server, any timer invocations after the initial invocation would not fire correctly. This release addresses this behavior and all timer invocations fire as expected when timezones differ between the server and the @Schedule.
1035216 - ArrayIndexOutOfBoundsException during periodic recovery on EJBTransactionRecoveryService

An intermittent issue between the periodic recovery and EJBTransactionRecoveryService resulted in an ArrayIndexOutOfBoundsException.
[com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016009: Caught:: java.lang.ArrayIndexOutOfBoundsException: 0
 at org.jboss.as.ejb3.remote.EJBTransactionRecoveryService.getXAResources(EJBTransactionRecoveryService.java:112)
....

The root cause of the issue was that the creation of an XAResource element was not contained within the associated logic loop and this led to the array index error. This element has now been moved so that it is within the logic loop and so the periodic recovery no longer conflicts with the EJBTransactionRecoveryService.
1017673 - ConcurrentModificationException in TimerService.getTimers()

If a bean attempted to create a new timer at the same time as another thread was calling the getTimers() method, a ConcurrentModificationException was thrown. This occurred because the getTimers() method did not call synchronized() on the timers.

This issue is fixed in this release, and the timer service implementation's getTimers() method now properly calls synchronized() on the timers.
1031199 - EJB backing cache's can generate large retention from cancelled tasks in its scheduled executor's DelayedWorkQueue

The cache implementation for @Stateful EJBs in JBoss EAP 6 utilizes a scheduled executor for handling @StatefulTimeout logic. When a bean is accessed, it's previous timeout job is cancelled, and a new one is rescheduled when the invocation completes.

By default, cancelling a task from an executor did not remove it from the queue.

This caused a gradual memory leak, as cancelled tasks remain in the queue.

In this release, the scheduled executor can be configured to remove the task from the queue upon cancellation. This avoids the memory leak.
1045105 - remote ejb client code converts '$$' to '$' in passwords

Previous versions of JBoss EAP 6 carried a bug that caused PropertiesBasedEJBClientConfiguration to attempt to expand passwords containing a double dollar sign ($$) as if it was an expression. This could have caused incorrect passwords to be passed between the server and client.

The PropertiesValueResolver has been modified in this release so that it does not expand passwords by default. This resolves the issue.

If expansion is required, it can be enabled by setting`jboss-ejb-client.expandPasswords` to true.
1055896 - Cannot get exception as pass-by-reference

A bug that prevented servlets from getting EJB exceptions as a pass-by reference, even if it was configured to do so, has been corrected in this release.
901324 - AroundInvokeAnnotationParsingProcessor should fail when more methods with @AroundInvoke annotation are found in the class

In previous versions of JBoss EAP 6, classes were not checked for multiple @AroundInvoke methods.

As a result, the first one discovered would be used, and any others would be ignored.

In this release of the product, the deployment fails if there are multiple @AroundInvoke methods, alerting the developer to the problem.
1056214 - EJB invocation performance issues due to high allocation counts of useless strings

A performance issue has been addressed in this release of JBoss EAP 6. The issue was caused by StatefulComponentInstanceInterceptor which performed a small concatenation in a debug log statement for every invocation. The subsequent extra allocations could cause increased Garbage Collection activity during stateful EJB invocation, leading to higher per-invocation processing overhead. This release of the product has incorporated an upstream patch which resolves this issue and per-invocation overhead is substantially decreased.

EJB,Remoting

1098879 - EJB client failed initially if a cluster should used for EJB invocation with Could not create a connection for cluster node ClusterNode{} -> Operation failed with status WAITING

In previous versions of JBoss EAP 6, there was an issue with EJB clients connecting to a cluster if more than one cluster node was specified for the initial connection.

This was an issue specifically on the Windows platform, causing the first EJB invocation to intermittently fail and was caused by wrong thread synchronization.

This issue has been addressed in this release and no longer presents.

Hibernate

1023994 - java.util.Calendar conversion to java.util.Date fails - HHH-8643

This release of JBoss EAP 6 contains a fix to a bug in the Hibernate component that caused an IllegalArgumentException to be thrown when setting a TemooralType.DATE or TemporalType.TIMESTAMP parameter in a JPA query. The parameter is intended to be able to use a Calendar or a Date value, however this interchangeability did not operate as expected. The issue has now been corrected and the exception no longer presents when using TemporalType parameters in queries.
1048709 - NPE while query.list on a Native SQL, using cache

In previous versions of JBoss EAP 6, the use of scalars within a Query, when using the Hibernate query cache, was causing users to encounter a NullPointerException. An example of a query that would produce the exception is:
query.addScalar("emp_first_name");

The problem was caused by code that attempted to automatically identify the Hibernate Type needed to handle the scalar (StringType, for example). In this release the code has been modified to correctly identify the handler needed.

For releases prior to 6.3.0, explicitly defining the type within the query scalar will avoid the NPE:
query.addScalar("emp_first_name", new StringType());
1070423 - HHH-8983 Database drivers may attach warnings to statement handles and these may accumulate and consume significant memory

In previous versions of JBoss EAP 6 it was found that database drivers could attach warnings to statement handles which could accumulate and consume significant amounts of memory. The issue presented when using Timestamp types with underlying Sybase datetime mappings. The warnings issued by later Sybase drivers could begin to exaggerate the memory footprint in batch updates. This issue has been addressed in this release and no longer presents.
1073076 - HHH-3482: UnsupportedOperationException with StatelessSession

Instances of UnsupportedOperationError being thrown when using StatelessSession and saving a ManyToOne have been addressed in this release of JBoss EAP 6. The error was caused by a call to getTimestamp() method which was not implemented for StatelessSession. The UnsupportedOperationError no longer presents.
1057742 - PostgreSQL & H2 dialect incorrect for count distinct tuples for composite attributes

JBoss EAP 6 has been updated to allow the use of parentheses around composite attribute lists in count-distinct queries in MySQL and other databases. This was not allowed in previous versions of the product and would result in an exception being thrown for PostgreSQL. This release allows the Dialect to use the parentheses as appropriate without throwing an exception.

HornetQ

1056216 - Change initial connection behavior for cluster connection

If a clustered HornetQ instance lost its connection to other cluster nodes, reconnection attempts could result in an infinite loop. For a static cluster configuration, any initial connect attempt would be attempted infinitely, ignoring the reconnect-attempts parameter. For a dynamic cluster configuration, if the node was disconnected between the time it received a notification about the node being part of the cluster topology and the initial connection, reconnection attempts continued infinitely. This issue has been resolved and the clustering logic now uses the reconnect-attempts parameter for both the initial connection attempts and reconnection attempts.
1089838 - Full scheduledReferences traversal in every call to ScheduledDeliveryHandlerImpl$ScheduledDeliveryRunnable.run()

In previous versions of JBoss EAP 6, if a very large number of messages were scheduled with a small interval, excessive CPU load would result.

The root cause of this issue was that at every instance messages were to be consumed, the whole of the scheduledReferences linked list was traversed unecessarily.

This issue has been resolved in this release.
1063864 - Backport of HornetQ-1278 into JBoss EAP

In older versions of JBoss EAP 6, Scheduled Delivery Handling did a full cycle of serial search on a List for Scheduled Deliveries.

This could cause performance issues as the system could use high CPU resources to proceed with many scheduled deliveries under load.

This release of the product has implemented a sorted list and proper search up to the expired times. The list search now runs much faster without the high CPU burden.
1089843 - Spurious WARN messages after XmlDataImporter deletes temp file

In previous versions of JBoss EAP 6, when the XmlDataImporter was importing large messages, spurious WARN messages were logged.

The root cause of this issue was that when importing sufficiently large messages, the XmlDataImporter created a temporary file and deleted it when the import task was complete.

When importing another large message, the XmlDataImporter function tried to delete the temporary file again and, since the file was no longer present, logged the WARN message.

This issue has been resolved in this release.
1096942 - Client is not able to send messages - HornetQException[errorCode=100 message=HQ119016: queue has been removed cannot deliver message, queues should not be removed when grouping

In previous releases of JBoss EAP 6, users encountered issues with Clustered Grouping, whereing routing messages could be interrupted and give invalid answers.

In this release the communication between the nodes has been improved, as has the reaping process of groups to avoid this and other spurious messages that could happen across clustered grouping.
1089844 - Policy Fail may drop messages before it sends the exception to the client

In previous versions of JBoss EAP it was found that the "fail" address-full-policy in HornetQ mostly dropped messages without sending an exception to the client.

This resulted in messages being dropped without an exception whenever an address was full.

This issue was resolved so that blocking sends always result in an exception on the client when the address is full and non-blocking sends will result in an exception on the client when additional credits are requested from the server.
1089846 - All methods in ClientSessionImpl which implement XAResource can potentially throw a non-XAException to the TM

In previous versions of EAP 6, if an XA transaction involving HornetQ timed out, it was possible that HornetQ might throw a non-XAException to the Transaction Manager.

The issue was identified in the implementation of javax.transaction.xa.XAResource, and has been resolved in this release.
1089849 - Messages always acked individually after certain reconnection scenarios

In previous versions of JBoss EAP 6, the client consumer would ack messages individually in certain scenarios, for example after failures. This process was very inefficient.

This issue has been addressed in this release.
1089851 - Avoiding possible NPE during the depage process

In previous versions of the pruduct, a NullPointerException (NPE) was possible during message delivery and paging process.

This issue has been resolved in this release.
1089841 - Fix order of totalIterator()

Inprevious releases of JBoss EAP 6, any management operations that listed messages would incorrectly list paged messages before previously sent messages.

Other possible out of order issues were also identified in cases after redeliveries.

This issue was fixed by rectifying the order where the Iterator takes messages before sending them to management operations.
1089835 - ClientConsumer max rate not taking effect if ServerLocator's consumerMaxRate <=0

In previosus versions of JBoss EAP 6, the Core API method createConsumer(String queueName, String filter, int windowSize, int maxRate, boolean browseOnly) ignored the parameter maxRate if the ConnectionFactory (or ServerLocator) had set maxRate to its default value of less than or equal to zero.

The root cause of this issue was faulty logic in the createConsumer method. It has been corrected in this release.
1089842 - listMessagesAsJSON method fails to list messages if the filter property contians \n character.

In previous versions of JBoss EAP 6, filter parsing failed to parse messages correctly if the message contained a new line character ( \n) inside a string or any other property.

The root cause of this issue was faulty logic in the listMessagesAsJSON method, which failed to account for a newline character.

This issue has been resolved in this release.

IIOP

1064644 - StackOverflowError when org.jboss.as.jacorb.rmi.InterfaceAnalysis is analyzing javax.ejb.EJBObject

In previous versions of JBoss EAP 6, it was found that, depending on the timing of a thread context switch, IIOP-enabled EJBs could fail to deploy correctly, causing a StackOverflowError.

This issue was traced to improper thread synchronization in org.jboss.as.jacorb.rmi.WorkCacheManager.

The issue has been corrected in this release and the StackOverflowError no longer presents.
1052237 - Backport JacORB #904 CDRInputStream.read_string should handle 0 string size gracefully

The function CDRInputStream.read_string mishandles an empty string, incorrectly caculating this as a length of zero (0), resulting in a marshall exception. A QoS was added to allow CDRInputStream.read_string to interoperate with those ORBs that do not encode empty strings correctly.

Installer

1034062 - Values for port offset configuration are doubled in domain's host files.

A bug that caused automatic port offsets to be doubled when set using the Configure an offset for all default port bindings option has been corrected in this release.
1062602 - Installer accepts administrative user's password without alphabetic character

In previous versions of JBoss EAP 6 it was found that the graphical installer utility was not honoring the username and password restrictions that govern user creation.

This issue has been addressed and the GUI installer now adheres to password and naming restrictions as expected.

JCA

1088470 - ConnectionListener leaked if TSR throws IllegalStateException and NPE in SemaphoreArrayListManagedConnectionPool

A bug in previous releases of JBoss EAP 6 caused the ConnectionListener to be leaked if TSR threw an IllegalStateException and NPE in SemaphoreArrayListManagedConnectionPool.

This issue was resolved in this release of the product.

JDR

1069850 - Prevent NullPointerException in JDR CommandLineMain

In previous versions of JBoss EAP 6, an NullPointerException would be thrown whenever an exception was thrown from JDR CommandLineMain. This issue has been corrected in this release.

JMS

1033495 - The commitPreparedTransaction CLI operation isn't available in domain mode

In previous versions of JBoss EAP 6, the management operations on hornetq-server resources were not available in domain mode. This issue has been corrected in this release.

JPA

1040733 - Memory leak in JBoss AS / Hibernate JPA integration

A memory leak could occur in the application server when using the Management CLI to obtain JPA statistics for application deployments that used JPA named queries. The issue has been resolved in this release of the product.

JSF

1029387 - WFLY-2493 EL cannot access public methods/fields of non-public classes

In previous versions of JBoss EAP 6 the BeanELResolver did not try to override Method.invoke access control to access public methods or fields of non-public classes.

This caused issues when trying to access the public method or field of a non-public class via Expression Language (EL) the following error message resulted:
"java.lang.IllegalAccessException: Class javax.el.BeanELResolver can not access a member of class X with modifiers "private"

This issue has been resolved by calling setAccessible(true) as appropriate in the EL implementation. Public methods or fields of non-public class are now accessile via EL
1017242 - FacesMessages doesn't work properly in root context application

In previous versions of JBoss EAP 6 it was found that JSF Flash scope was not restored properly during redirects if the application was bound to the root context. This meant that FacesMessages did not work properly in root context applications.

This release of the product sees the Mojarra component upgraded to the latest upstream version, which fixes the issue and FacesMessages now work properly even in root context applications.
1052265 - JAVASERVERFACES-3080: Issue when more than one f:viewParam is included in f:metadata.

Due to an upstream bug, including more than one f:viewParam inside f:metadata did not work in previous versions of JBoss EAP 6. An upgrade to the JSF component has resolved this issue and now more than one f:viewParam can now be included in f:metadata.
1054051 - JSF slot configuration doesn't work for default configuration properly

When an additional JSF slot was installed in the root of the modules directory, the main JSF slot was not added as a valid JSF configuration. Deploying a JSF application that attempted to use the main JSF implementation would fail with the message:
org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS012656: Default JSF implementation slot 'main' is invalid

The cause of this issue has been resolved and the "main" slot is now always considered to be one of the valid JSF implementations. As a result, when an additional JSF slot is added in the root of the modules directory, JSF applications that make use of the main JSF implementation instead can be successfully deployed.

Logging

1066597 - The formatter attribute is changed every time it's processed

A bug that caused the HandlerOperations.equalValue() method to always return false in previous versions of JBoss EAP 6 has been corrected with the inclusion of an upstream patch. This bug presented because the method used the incorrect property name when comparing values. It does not present in this release of the product.
1080991 - Messages#getBundle() in jboss-logging is missing privileged action

In previous versions of JBoss EAP 6, running with a security manager enabled without sufficient permissions resulted in errors attempting to retrieve a message bundle.

As a consequence, an exception presented when attempting to get a message bundle if class loader permissions were not enabled.

In this release, retrieving message bundles is now done in a privilege block. The exceptions no longer occur when retrieving the message bundle when a security manager is enabled.
1088618 - Cache string representation of throwable info

The stack trace information was not guaranteed to be stored correctly in previous releases of JBoss EAP 6. As a result, data could be lost upon serialization of Log4J logging events.

To fix this, Log4J has been amended to cache the stack trace (i.e. throwable information) upon deserialization. This ensures that stack trace information will not be lost upon serialization.
1017881 - /subsystem=logging/logger=org.jboss.as.quickstarts.logging:assign-handler can't run under batch mode

In previous versions of JBoss EAP 6, the name attribute in composite logging operations was being added to and read from the model.

As a result, the last name on a composite operation was the only handler name used, resulting in the same handler naming being added multiple times.

In this release, the name attribute is no longer copied to the model and is read from the operation itself. Adding handlers in a composite operation now works as expected.
1095516 - POJO objects are not removed from logging.properties when manually removing them from JBoss Config XML

In previous versions of JBoss EAP 6, when the definition of a POJO was removed from the server's configuration file, references to the POJO were not removed from the logging.properties file.

If a POJO of the same name was later created again, JBoss EAP would state that there was a duplicate entry in logging.properties.

This issue has now been resolved and references to POJO objects which no longer remain are removed from the logging.properties file.
1073053 - EAP 6.2 audit log should display the EAP version instead of the AS version

In previous versions of JBoss EAP 6, the audit log would display an incorrect version number.

This has been corrected in this release and the version number is displayed as expected.
1066606 - Using a log4j appender as a custom-handler should invoke the activateOptions if required

In previous versions of JBoss EAP, changing a property in a custom-handler that was a log4j appender did not invoke the OptionHandler.activateOptions() on the appender if the appender implemented OptionHandler. It required a restart of logging resources for the change to take effect. In this release, the activation method is now invoked if properties are changed on the log4j appender and a restart is no longer required for OptionHandler appenders.
1070452 - System.out.println() doesn't work when using per-deployment logging

Previous versions of JBoss EAP 6 carried a bug that prevented the System.out.println() method from printing to log files when per-deployment logging was in use. This bug was resolved with an upstream patch.

Naming

1014414 - Remote Naming throws the same exception for different causes

In previous versions of JBoss EAP 6 the same exception was thrown in response to a number of connection errors that could arise when a Remote Naming client failed to connect to any host. This behavior was sub-optimal as it gave users no indication of the actual error encountered for any given server.

The exception thrown in all cases was:
javax.naming.NamingException: Failed to connect to any server. Servers tried: [remote://localhost:4447]

In this release the exceptions thrown align more closely to the actual cause of the failure.

If the host or port details are incorrect, the following CommunicationException will be thrown, indicating the connection timed-out:
javax.naming.CommunicationException: Failed to connect to
any server. Servers tried: [remote://localhost:4447 (Operation failed
with status WAITING after 5000 MILLISECONDS), remote://localhost2:4321
(Operation failed with status WAITING after 5000 MILLISECONDS)] [Root
exception is java.net.ConnectException: Operation failed with status
WAITING after 5000 MILLISECONDS]

If one of the available servers responds, but the subsequent authentication fails, the following AuthenticationException will be thrown:
javax.naming.AuthenticationException: Failed to connect to
any server. Servers tried: [remote://localhost:4447 (Authentication
failed: all available authentication mechanisms failed),
remote://localhost2:4321 (Operation failed with status WAITING after
5000 MILLISECONDS)] [Root exception is
javax.security.sasl.SaslException: Authentication failed: all available
authentication mechanisms failed]

An appropriate message will be given for failures connecting to each server in the list.
1061609 - InitialContext swallows original exception cause

In previous versions of EAP 6, instantiation of an InitialContext might fail with the following message:
javax.naming.NamingException: JBAS011843: Failed instantiate InitialContextFactory com.sun.jndi.ldap.LdapCtxFactory from classloader ModuleClassLoader for Module "deployment.externalContextBindingTest.jar:main" from Service Module Loader

From this message, however, the underlying cause was not visible, making troubleshooting impossible. To resolve this issue, the underlying cause has now been exposed. If this issue now occurs, the error message now reveals the root cause:
javax.naming.NamingException: JBAS011843: Failed instantiate InitialContextFactory com.sun.jndi.ldap.LdapCtxFactory from classloader ModuleClassLoader for Module "deployment.externalContextBindingTest.jar:main" from Service Module Loader [Root exception is javax.naming.CommunicationException: 127.0.0.1:10389 [Root exception is java.net.ConnectException: Connection refused]]
1059836 - Remote Naming communication exception should be thrown on ConnectException

In previous versions of JBoss EAP, a generic javax.naming.NamingException was being thrown when a java.net.ConnectException occurred instead of the more specific javax.naming.CommunicationException.

This release includes a change that ensures a javax.naming.CommunicationException is thrown when a connection exception occurs.

CommunicationException is a subclass of NamingException, so any code that previously caught a NamingException will still work as expected.

Other

901210 - Cleanup deploy directories - AS7-6031

This release of JBoss EAP 6.3 includes a fix that ensures files and directories created in the JBOSS_HOME/tmp and JBOSS_HOME/tmp/vfs folders are removed before they can interfere with newly (re)started EAP instances.

In previous versions of JBoss EAP, older files may have been left behind after a server is shutdown unexpectedly (as JBoss EAP removes files in JBOSS_HOME/tmp and JBOSS_HOME/tmp/vfs as part of the shutdown process).

The fix in this release provides a failsafe to mitigate that scenario. If a JBoss EAP 6.3 server does not shut down gracefully the server will not have an opportunity to clean up these temporary files. Upon restart however, the server now queries the above locations and, if files from a previous instance are present, it initiates a rename/remove process that allows the creation of fresh files for the new instance (the old directories are renamed so as to avoid interfering with newly created files). These processes happen in parallel.

Upon restarting JBoss EAP (either gracefully or otherwise) old temporary files are now removed (either at shutdown or restart), to ensure they do not take up unnecessary disk space.

NOTE Users should avoid using the -Xrs JAVA_OPT as this limits signals processing and can result in the size of the tmp/vfs directories continuing to grow.

Patching

1110117 - Querying patching MBeans during shutdown results in IllegalStateException

In this releases of JBoss EAP 6, the patching subsystem PatchResource, while not having a dependency on the InstallationManagerService, may attempt to use it when it may be shut down

This could cause an IllegalStateException to be thrown if a shutdown hook attempted to query the patching subsystem MBeans.

This issue is expected to be resolved in a future release.
1108952 - OutOfMemoryError with large patches

In Previous versions of JBoss EAP 6, attachment data passed from master to slave host controllers was read fully into memory.

As a consequence, when installing large patches, an OutOfMemoryError may occur on child host controllers. This could occur when installing CP04 via the domain controller with the default memory settings.

In this release of the product, attachments are saved to temporary files, so as to not consume excessive memory and OutOfMemoryErrors do not occur on child host controllers.

PicketLink

1084596 - Backport PLINK-396

In previous verions of JBoss EAP 6, it was found that PicketLink's IDPWebBrowserSSOValve and IDPFilter were decoding the relaystate, which was contrary to the SAML specification. This has been addressed in this release of the product.

RESTEasy

1037753 - Chosen variant is not always the best match

In previous versions of JBoss EAP 6, it was found that RESTEasy, while adhering to specification RFC 2616, did not always return the most appropriate media handler in instances where quality factors were equal but specificity was different.

For instance, when given an Accept header of application/json, */* and variant values of ["application/xml","application/json"], RESTEasy's Request.selectVariant() would choose application/xml over application/json.

In this release, specific Accept header values take precedence over less specific variant matches with the same quality value (if both have q=1.0 or q=0.5 for example).
1014393 - Stream closed exception in resetStream on IBM jdk 16, 17 on RHEL 5, 6

In previous releases of JBoss EAP 6, the xercesImpl provided by IBM JDK 16, 17 conflicted with the jaxb unmarshaller used by resteasy-jaxb-provider.

This issue also occurred when the user was directly using the xercesImpl jar provided by EAP 6.

These conflicts resulted in a java.io.IOException: Stream closed error when using IBM JDK 16, 17 or xerces:xercesImpl:2.9.1-redhat-x (provided by EAP 6) as a dependency in a resteasy 2.3.6.Final-redhat-x based project.

This issue has been resolved.

RPMs

1086157 - RHEL6|RHEL5 Web Server from iso and httpd-manual error on yum update

Running yum update action in a new JBoss EAP 6 instance running on Red Hat Enterprise Linux based systems would, prior to this release, produce an error. This was because an RPM dependency ( httpd-manual) was missing from the jbappplatform-6-i386-server-6-rpm channel. The httpd-manual package has now been added to the channel and performing a yum update action no longer produces an error.

Remoting

1052204 - Protocol incompatibility between serializable classes with different non-serializable superclasses

In previous versions of JBoss EAP 6 an exception could be thrown when IBM and Oracle JVMs communicate by serializing a StringBuilder or StringBuffer class.

This was caused by the marshalling protocol erroneously serializing a class descriptor for the first non-serializable superclass of a serializable class.

This issue has been resolved in this version of the product with an upgrade to the JBoss Marshalling component.
1102271 - JBoss Marshalling should not require classes for null fields

In previous releases of Red Hat JBoss EAP 6, if an object contained a field whose value was null and the object type of the field did not exist on the unmarshalling side, attempts to unmarshall the object would fail with a ClassNotFoundException for the field.

This issue has been corrected in this release of the product.
1069075 - Thread leak and OutOfMemoryError on Tomcat using jboss-client.jar, calling an EJB on EAP

An upgrade to the JBoss Remoting component in JBoss EAP 6 has resolved an OutOfMemoryError issue found in earlier versions of the product. The issue was traced to thread leak occurring when a webapp on Tomcat called an EJB.
1011831 - JBREM000205: Failed to accept a connection: java.nio.channels.ClosedChannelException at server shutdown

A DEBUG message from the remoting sugbsystem was incorrectly logged as a WARN message during server shutdown. The message logged was similar to the following:
02:46:15,512 WARN [org.jboss.remoting.remote] (Remoting "node1:MANAGEMENT" read-1) JBREM000205: Failed to accept a connection: java.nio.channels.ClosedChannelException

As part of an upgrade to the remoting subsystem in this release of JBoss EAP 6, this message has been correctly reclassified as a DEBUG level message.
1080429 - Change JBREM000200 from ERROR to DEBUG since it is harmless

Users of previous versions of JBoss EAP 6 on Windows platforms may have encountered the following IOException when the JMX connection was closed:
JBREM000200: Remote connection failed: java.io.IOException: An existing connection was forcibly closed by the remote host

This error was caused by Windows forcibly closing connections. As it had no adverse affects, the logging level for the error was changed to DEBUG, to prevent it appearing in lower level logs.
1052258 - segfault and other xnio issues running on IBM JDK on IBM-I

An issue with applications running on IBM systems failing with a segmentation fault has been corrected in this release of JBoss EAP 6.

The crashes were caused by NIO implementations in IBM JDKs that are optimized for usage on IBM operating systems. The I/O layer in JBoss EAP attempts to detect and utilize these implementations. However on some operating systems (like IBM-I) these implementations cause a segfault.

In this release of the product, these operating systems are detected and safe fall-backs are utilized. This resolves the segmentation fault issue and the application server no longer crashes unexpectedly.

Remoting,Web

1032552 - OOM due lots of org.apache.tomcat.util.net.JIoEndpoint$Poller objects

A thread leak that could result in an OutOfMemoryError has been corrected in this release of JBoss EAP 6. The leak was traced to the JIoEndpoint class. The related code has been patched and the OOM error no longer presents.

Scripts and Commands

1062595 - RuntimeException by add-user utility once the user name matches the password (non-interactive mode)

Previous versions of JBoss EAP 6 would throw a RuntimeException if a non-interactive call to the add-user utility failed (as happens with problematic username/password combinations). This exception was intended to alert scripts that a failure had occurred. The exceptions could, however, be mistaken as a bug since these types of exceptions should not be propagated without being handled. A custom exception has been added to this release of the product to indicate that displaying this exception is intentional and not indicative of a bug in the add-user utility.
1027165 - add-user.sh requires console output

Previous releases of JBoss EAP 6 carried a known issue wherein the shell script for adding users to an EAP server (add-user.sh) could not be executed without the console (non-interactive mode).

This was because the shell script (add-user.sh) relies on console (java.io.Console) for operations.

Executing the shell script (add-user.sh) resulted in the following exception along with termination of the utility altogether:
java.lang.IllegalStateException: JBAS015232: No java.io.Console available to interact with user.

This issue has been resolved in this release of the product.
1063888 - The add-user script displays incorrect password information for the help argument

In previous versions of JBoss EAP 6, the help output for the add-user utility only displayed a single restriction pertaining to passwords (that they not be the same as the username). This could cause confusion when adding new users, as there is more than one restriction in place to ensure valid passwords are used. In this release of the product, the single restriction has been removed from the help text. It now appears, along with other applicable restrictions, in messages displayed when using interactive mode.
1062611 - add-user: '@' is not among non-alphanumeric characters during user name validatin

The add-user utility in previous versions of JBoss EAP 6 would display a misleading error message when an invalid username was entered. The messaged stated that a username must be alphanumeric, when in fact the utility had been modified to accept a subset of special symbols in usernames. The error message has been reconstructed to contain the list of acceptable symbols and users now see a more accurate error message when an invalid username is entered.
1020677 - Domain mode service script uses wrong string to verify if JBoss started

In previous versions of JBoss EAP 6, it was found that the domain and standalone service scripts used an incorrect variable when determining if the server had started correctly.

This could lead to inaccurate results when attempting to verify the server's state.

This issue has been corrected in this release.
956281 - Starting EAP 6.1 on windows with 32bit jvm can result in failure to start JVM

When running previous versions of JBoss EAP 6 on Windows 8 32-bit JVMs, the default max perm gen space setting caused the JVM to not be created, which then prevented the server from starting.

This issue has been resolved in this release.
1057127 - jconsole doesn't work when patch upgrades some of its dependencies

Previous versions of JBoss EAP 6 contained a bug that prevented the jconsole.sh script from running whenever a CP1 patch was applied. The patch updated some hard-coded modules in jconsole.sh which, in turn, tampered the original module jar files.

This meant that it was not possible to connect to an EAP console using jconsole.sh.

The issues was fixed by using the jboss-cli-client.jar from bin/client, which contains all required dependencies.
1062592 - Wrong error message from add-user utility

An error message given by the CLI add-user utility has been modified in this release of JBoss EAP 6 to prevent confusion.

In previous versions of the product, an error message stating that user passwords were required to contain at least one alphanumeric character was shown if the password entered contained only numeric characters. In this release the relevant error message now states that numeral-only passwords must contain at least one alphabetic character.
1057625 - add-user.sh syntax cygwin fix (for EAP 6.3.0)

In previous versions of JBoss EAP 6, it was found that the add-user.sh script would fail when run in Cygwin environments.

The cause was identified as a poorly formatted line of code in the script.

This issue has been resolved in this release, however the script still carries an unresolved issue when run in Cygwin environments. Refer to ticket 1069252 in the Known Issues section of this document for more information.
928486 - Requirements for password should be shown at once

In previous versions of JBoss EAP 6, a user who had entered an invalid password while using the add-user utility would only receive an error for the first contravention of the password rules found.

If the user had contravened multiple rules, multiple attempts to create the password could be required before a valid password was chosen.

In this release, the password utility now displays a full list of the password restrictions in advance, reducing the chances of failed password attempts.

Security

1023084 - Bug in JBossJSSESecurityDomain.java - attempting to use wrong provider

Previous versions of JBoss EAP 6 included a bug which caused JBossJSSESecurityDomain.java to attempt to use the keystore/truststore provider to get instances of the trust manager. This behavior was incorrect as the "trust-manager-factory-provider" setting cannot be used in the JSSE section of a security domain. Using this setting (even if properly configured) would result in an exception during start up. This bug has been resolved in this release and the "trust-manager-factory-provider" setting can now be used to set the trustManagerFactoryProvider.
1065476 - AdvancedLdap login module does not handle a user that has a slash character in the uid

In previous versions of JBoss EAP 6, authentications requests would fail if the requesting UID contained a slash (/) character. This was caused by the AdvancedLdap login module not handling quotes correctly. In this version of the product the login module has been modified to remove quotes on the returned user DN before attempting to bind.
1069127 - RBAC + LDAP needs to be able to work combined with <local/>

In previous versions of JBoss EAP, LDAP group loading could fail if an authenticated user could not be mapped to an LDAP account. This issue could arise because the authentication process using security realms first negotiates a mechanism between the client and the server, then loads the group information for the user. Because the local authentication system represents the user with an artificial username, the second part of this process could fail if the LDAP server could not map the username to a user.

In this release of the product, a new attribute; skip-group-loading, has been added to the <local /> element that is used for local authentication. When this attribute is set to true group loading is skipped after local authentication has occurred, thus avoiding the error. If a different mechanism is used, however, group loading proceeds as normal.
1066488 - management security realm: LDAP referrals not working

Previous releases of JBoss EAP 6 carried a bug stating that all users and groups must be defined and searchable on the same LDAP server.

Any user or group entries that result in a referral will not be usable with JBoss EAP 6.

This was because the LDAP searching within the security realms contained no logic for handling referrals if they were encountered while authenticating a user against LDAP or using LDAP to load their groups.

This issue has been corrected in this release and LDAP referrals work as expected.
1030053 - The NegotiationAuthenticator loses post data

In previous versions of JBoss EAP 6, it was found that the NegotiationAuthenticator would lose any SAMLRequest parameter if it was being used in conjunction with PicketLInk and HTTP_POST binding. This resulted in users remaining at the IDP landing page, even after successful authentication. The NegotiationAuthenticator has been patched in this release of the product and the issue no longer presents.
1065486 - LdapExtended login module does not handle a user that has a slash character in the uid

In previous versions of JBoss EAP 6, user authentications would fail if the User ID (UID) contained a slash character ( /). This was because the LdapExtended login module did not handle the character correctly. In this release of the product the module has been updated and now removes quotes from the user DN before binding. This resolves the issue and users can authenticate as expected.
974324 - EAP 6 Domain Mode Logging for Management is nonexistent

In previous versions of JBoss EAP 6 TRACE and DEBUG logging had not been added to the LDAP interactions within the security realms. This made diagnosing authentication issues where LDAP is in use extremely difficult as no debug logging was available. DEBUG logging has now been added to the security realms where LDAP is used. Customers can now use these logs to diagnose LDAP related issues with security realms.
1069885 - SecureIdentityLoginModule (and ConfiguredIdentityLoginModule) results are not cached by the JAAS cache

In previous versions of JBoss EAP 6 performance issues were encountered when using the SecureIdentityLoginModule not caching encrypted datasource passwords. This was caused by JAAS cache not allowing the cache key to be null when the application using the datasource was not secured.

In this release of the product the vault is used for encrypting database passwords, bypassing the JAAS login module and resolving the performance issues.
1067610 - Authentication attempts will fail if the DatabaseRolesMappingProvider's rolesQuery returns an empty set

In previous versions of JBoss EAP 6 it was found that authentication attempts would fail if the DatabaseRolesMappingProvider returned a null value. This was caused by the authentication not being able to provide roles to authenticated users if the value was null. In this release of the product, the security system will honor successful authentications and not attempt to apply roles in instances where the returned value is null.
1000185 - The JASPI auth-module configuration does not support a "module" attribute

In previous versions of JBoss EAP 6, the JASPIC auth-module configuration in the security subsystem was ignoring the "module" attribute. This attribute tells PicketBox where to load custom auth-module classes from.

As a result, custom JASPIC auth-modules could not be configured as PicketBox was unable to determine the jboss module that should be used.

As the module attribute already exists in the security subsystem schema, the fix involved adding code in the security subsystem to handle this attribute, allowing PicketBox to correctly load custom modules.

As a result, users can now configure custom JASPIC auth-modules by using the "module" attribute to indicate the jboss-module that contains the custom module class.

Server

955818 - Class-Path manifest entries for WARs-in-EAR not handled properly

In previous versions of JBoss EAP 6, when multiple sub-deployments in an EAR referred to a single non-module jar via Class-Path manifest entries, it was added to the first sub-deployment's classloader.

This caused Class loading problems as the classes in the utility jar would be located in the wrong classloader.

This version of the product creates a new deployment module for the utility jar, and has all dependant deployments use it. As a result, the Classloading problems no longer occur.
1060269 - reverse DNS lookup on master domain server reload

Users of previous versions of JBoss EAP 6 may have found that servers were not able to reconnect to the Domain Controller after it was reloaded, if the managed servers were not restarted as well.

This issue occurred if the reverse IP lookup was incorrectly configured, meaning the servers were presented with the hostname of the Controller (and not its IP address) to reconnect to. In these situations the connection would fail.

This issue has been resolved in this release of the product by reusing the data stored in the InetSocket object. This avoids the need to do a reverse IP lookup and allows the servers to reconnect as expected.
1036872 - Cannot configure a security policy file setting that disables policy files specifies in JRE's java.security file

An issue was identified in using the special prefix of = to disable the default policy files. The underlying cause was that when the Host Controller started a server, it provided null as the value of the java.security.policy setting, leading to the use of the policy files specified in the java.security file and possibly permission failures preventing server booting.

This issue was fixed by modifying parsing of system properties so that the value of a system property whose value begins with "=" is no longer reset to null by the Host Controller when starting a server.
1049999 - Class-Path: . can cause JBAS011046: A component named 'TestBean' is already defined in this module

In previous versions of JBoss EAP 6, some jar libraries in WEB-INF/lib contained a manifest with a Class-Path attribute that contained "." as an entry.

This issue caused some resources or components get processed twice, causing warnings in the log.

This release of the product ignores "." entries in Class-Path manifest attributes so resources are no longer processed twice.
924562 - Deployment restart caused by dependency replacement does not work

An issue that could result in a NullPointerException has been resolved in this release of JBoss EAP 6. The exception could present when a deployment partially restarted some data structures that were required have already been cleaned up to save memory (for example, when a dependency was replaced). This issue would prevent the redeployment from completing. To address this issue, partial redeployments are no longer allowed in this release of the product. If a dependency is replaced the deployment is now completely restarted and the exception no longer presents.

Transaction Manager

1038993 - Not possible change the object store type from hornetq to jdbc via cli commands

In previous versions of JBoss EAP 6, changes to the object store type (from HornetQ to JDBC, or vice versa) through the CLI interface were not propagated correctly.

As a result, the object store would remain as initially set (which may have been the less desired option).

In this release the write handlers use-hornetq-store and use-jdbc-store have been enhanced to disable the other option when used and the object store used is always the chosen option.
1034650 - Increase the default value of the com.arjuna.ats.jta.orphanSafetyInterval

An issue in previous versions of JBoss EAP that could cause numerous rollback XAExceptions to be logged if a transaction's processing time overlaped with the timing of the periodic recovery process's activity has been corrected in this release of the product. The timeout interval of orphanSafetyInterval has been increased to 20 seconds which significantly decreases the potential of encountering the exceptions.
1027126 - Server failed to start with standalone-xts.xml and jdbc object store running on mysql 5.5

In previous versions of JBoss EAP 6, when the transaction manager was configured to run XTS transactions, use a JDBC object store hosted on MySQL 5.5, and the driver was put in the deployments directory, the server failed to start.

This issue has been resolved in this release.
1107569 - One-phase optimization: XAException by XAResource swallowed and bean invocation falsely a success

A bug was present in previous versions of JBoss EAP 6 prevented users from seeing an exception that signified the failure of a single phase commit.

The bug arose as the resource manager could fail XAR::end but succeed in XAR::rollback which meant no exception was reported to the user.

This release of the product throws the correct exception to the user confirming the result of a single phase commit.
1092198 - LogStoreProbeHandler overwrites the LogStoreResource root model

In previous versions of JBoss EAP 6 it was found that LogStoreProbeHandler replaced the delegate held by LogStoreResource. This removed any data from the existing delegate's model field (the "type" attribute, for example).

As a result, invoking the probe operation on the subsystem=transactions/log-store=log-store would result in the value of the resource's type attribute being changed to default even if the transaction manager is actually using hornetq. The actual runtime behavior would not be affected, but the reported value would be wrong.

In this release of the product the contents of the current delegate's model is copied to the new delegate before it is removed and the type attribute will no longer be default after running the probe operation when the log store type is actually something else.

Web

1027272 - ContextNotActiveException thrown on session invalidation when using clustered SSO

In previous versions of JBoss EAP 6, the SSO valves did not set the context when expiring sessions associated with SSO.

As a result, ClusteredSingleSignOn would call WeldListener.sessionDestroyed(event) after the session has been destroyed, resulting in a ContextNotActiveException upon session invalidation.

In this release the SSO valves now set the context when expiring sessions associated with SSO and the ContextNotActiveException is avoided upon session invalidation.
1050204 - WAIT_FOR_BEFORE_START does not work for / context applications

In previous versions of JBoss EAP the WAIT_FOR_BEFORE_START property did not work for root context applications. If a user set WAIT_FOR_BEFORE_START to / and deployed a root application, the connectors did not start as expected.

This has been corrected in this release and now when setting WAIT_FOR_BEFORE_START to / and deploying a root application, the connectors will start as expected.
1105160 - High CPU in concurrent access to the JSSESupport keySizeCache map

The keySizeCache in JSSESupport was not properly synchronized in previous releases of JBoss EAP 6.

This meant concurrent access to the JSSESupport keySizeCache could result in high CPU hash map loops.

In this release of the product, access to the keySizeCache in JSSESupport is now synchronized and concurrent access to the keySizeCache does not occur.
1036197 - Native HTTP connector fails if org.apache.tomcat.util.Constants.ENABLE_MODELER is set to true

In previous releases of JBoss EAP 6, JBossWeb Coyote's *Protocol classes start() methods constructed an MBean name using the getName() value, which is likely to contain a colon and the MBean object name cannot contain arbitrary colons.

The following error would be reported when JBoss tries to start if -Dorg.apache.tomcat.util.Constants.ENABLE_MODELER=true was set:
JBWEB003044: Threadpool JMX registration failed: javax.management.MalformedObjectNameException: Invalid character ':' in value part of property

This release uses getJmxName() rather than getName() to correctly construct the name of the MBean.

As a result the exception no longer occurs when -Dorg.apache.tomcat.util.Constants.ENABLE_MODELER=true is used, and the modeller is enabled.

Web Console

1079948 - Can not see all hosts in the JBoss EAP 6.2 management console

In previous versions of JBoss EAP 6, the host selector was missing a scrollbar. This made it difficult to select hosts that may not have been visible in the selector.

A scrollbar has been added to the host selector in this release of the product and all hosts can be easily selected.
1014219 - RBAC: Control element visibility for users with multiple scoped roles

Users assigned to multiple roles would see operations in the console that they did not have access to perform. For example, a user with roles host-master-administrator and host-slave-monitor should only have been able to see control elements (such as the Add button on the server configurations page) in context of host slave. This button should not have been visible when operating in context of host master (however it was).

Operations that were incorrectly visible would fail if attempted, as the correct access control was enforced in the execution of the operation. There was no security violation.

This issue in the management console has been fixed in this release. Control elements which are not relevant for a user role, while visible, are grayed-out and are not active.
900849 - EAP6 CLI error when data is over 64k

Any CLI command which returned a String that was over 65535 characters in length would fail with the following error:
Communication error: java.util.concurrent.ExecutionException: Operation failed

This was caused by the use of the java.io.DataOutput.writeUTF() method in the JBoss DMR library. This method throws a UTFDataFormatException if the string being processed is over 65535 characters in length. The JBoss DMR library was been updated to use an alternative technique to correctly process strings over this length. Any CLI command which returns a string over 65535 characters in length now performs as expected.
901227 - node-timeout, worker-timeout, flush-wait and ttl mod_cluster attributes in web console

An issue that was present in a previous version of the JBoss EAP 6 web-based Management Console that prevented users from viewing or setting a -1 value for the listed mod_cluster attributes as been corrected in this release:
  • node-timeout
  • worker-timeout
  • flush-wait
  • ttl
1103747 - Unable to list all Queues/Topics (from "Profiles" tab) in Management Console for EAP 6.x

In previous versions of JBoss EAP 6, users found they could not list all topics and/or queues under the profiles tab in the Management Console. The maximum number of queues that was visible was eight. This has been addressed in this release and now all queues are visible.
1029687 - Logout of secured (ssl) admin console setup redirects to http address

In previous versions of JBoss EAP 6, users logging out of a secured administration console (over HTTPS) would be incorrectly redirected to standard HTTP addresses and the logout would fail.

This was because the redirects were hardcoded to use HTTP addresses.

In this release of the product, the redirects have been updated to take into account if the user is accessing the interface over HTTP or HTTPS and redirect appropriately.
1048211 - Security domain showing wrong security policy in management console

A bug in previous releases of JBoss EAP 6 caused the security domain to show an incorrect security policy.

The selection update has been fixed in this release and now the details are updated according to the selected security policy
999813 - [Usability] Cancel operation is ignored when flushing JMS destination metrics in the management console

In JBoss EAP 6.1.0 and 6.1.1, before flushing a JMS destination via the web management console, a confirmation dialog was shown, requesting confirmation of the action. Regardless of the user's reply, the JMS destination was flushed. The root cause of this issue was that the result of the confirmation prompt was ignored. This issue has now been resolved and the JMS destination is only flushed if the confirmation dialog was closed with "OK".
1012490 - List all JNDI names for messaging destinations in runtime metrics page

In previous versions of JBoss EAP 6 it was found that the Runtime metrics page for messaging destinations (Runtime > JMS Destinations) listed only a single assigned JNDI name for a Java Messaging Service (JMS) destination. The other JNDI names for a Java Messaging Service (JMS) destination were denoted with an ellipsis ("...").

This meant that complete list of JNDI names for a Java Messaging Service (JMS) destination could only be accessed by visiting the complete destination list in EAP Profile(s).

In this release, the complete list of JNDI names for all Java Messaging Service (JMS) destinations are visible in Runtime metrics page for messaging destinations (Runtime > JMS Destinations) aided by a tooltip.

If a JNDI name list is too long it is truncated and the ellipsis is displayed but the tooltip displays the complete list when the mouse is hovered over a JNDI name entry.
1073537 - DS connection tests is required to pass across all servers

In previous versions of JBoss EAP 6, the DS connection test used all servers in the domain. This could negatively impact performance.

In this release of the product, only the servers of the currently selected profiles are used for the connection test, resulting in better, more reliable performance.

Web Services

1060001 - Spring dependency injection doesn't work on endpoint instances

A bug present in previous versions of JBoss EAP 6 that prevented beans created in JBoss WS-CXF from being injected into endpoints has been resolved with a component upgrade in this release.
1032593 - Data are kept in jboss-eap-6.2/standalone/data/wsdl after application undeploy

Previous versions of JBoss EAP 6 stored data in Web Services Description Language (WSDL) directory (EAP_HOME/standalone/data/WSDL) even after an application was un-deployed from JBoss EAP server.

The WSDL data was stored as this was the default behavior as soon as an application was deployed on the server with no automated mechanism for removing the stored files.

This issue was resolved by updating files in repositories (jbossws-cxf-4.2.x and trunk) to change the behavior of maintaining and publishing WSDL logs.

The fix prevents storage of data in WSDL directory after an application is un-deployed from JBoss EAP 6.3 server.
1032439 - jbossws testcase intermittent failures caused by javax.management.InstanceNotFoundException: jboss.ws:service=ServerConfig

In previous releases of JBoss EAP 6, the WS server configuration was not always available through JMX.

This was caused by the deprecated OPTIONAL service dependency to MBean server in WS ServerConfigService

In this version, MBean server dependency is set as REQUIRED instead of OPTIONAL whenever the JMX subsystem is available

As a result, WS server configuration is always available through JMX when JMX subsystem is available
1069349 - Schema imports in CXF can have naming conflicts in the URL used to retrieve them

A bug in previous releases of JBoss EAP 6 created naming conflicts in URLs when importing schema in CXF. This issue has been addressed in this release of the product.
900634 - JBossWS-CXF doesn't send fault message to a FaultTo endpoint when request-response message.

If the FaultTo element of WS-Addressing was set to a WS client, the WS server did not send fault messages to the FaultTo destination. However, if the ReplyTo element was set, the WS server did send the responses to the ResponseTo destination. This bug was fixed in this version of JBoss EAP 6 with an update of Apache CXF.
1040732 - JAXBDataBinding can not handle the exception with generic objects like ObjectWithGenerics<Boolean, Integer>

Previous releases of JBoss EAP 6 carried an issue that presented when an Exception class contained some members with type parameters defined as shown the following example.

The WSDL generated from the exception class was incorrect and the SOAP fault message was not expected.
@javax.xml.ws.WebFault
public class GenericsException extends Exception {
  private static final long serialVersionUID = 1L;
  private ObjectWithGenerics<Boolean, Integer> obj;

  public ObjectWithGenerics<Boolean, Integer> getObj() {
  return obj;
  }
  public void setObj(ObjectWithGenerics<Boolean, Integer> obj) {
  this.obj = obj;
  }
}

This issue was resolved upstream and the fix incorporated into this release of the product.
1079084 - Webservices DUP is not scanning all visible classes for @WebService annotation

It was discovered that the Webservices DUP in previous versions of JBoss EAP 6 carried a bug that prevented it from scanning all visible classes with the @WebService annotation. An error presented when a war archive that contained a web.xml with a <servlet-class> that refers to a JAX-WS endpoint (so the class is annotated with @WebService) was located within an ear archive and the jar containing the class was located in the ear archive's lib/ directory. The relevant code has been amended in this release to scan more thoroughly for @WebService classes and the error no longer presents.
1077259 - HttpServletRequestSnapshot is not created for requests with WSA ReplyTo prop set

A bug previous releases of JBoss EAP 6 prevented HttpServletRequestSnapshot from being created for requests with WS-Addressing enabled and the ReplyTo header property specified to a non generic address.

This bug resulted in an immediate HTTP 202 response and the servlet request being early recycled by the container. This prevented endpoints from accessing the servlet request context information.

The issue has been resolved in this release of the product by an upgrade to the CXF component.
1079043 - MessageContext is lost when JAX-WS client is invoked from within a JAX-WS endpoint impl

In previous versions of JBoss EAP 6, when a JAX-WS client was invoked inside an endpoint, the endpoint's MessageContext was removed from the ThreadLocal and not replaced at the end of the client call.

This caused the MessageContext to be unavailable to endpoints after they make any JAX-WS invocation.

This bug has been addressed in this release of the product.
1031642 - WebServices subsystem attribute modify-wsdl-address false value ignored

Previous versions of JBoss EAP 6 carried a bug that prevented the WS stack from processing @WebService(wsdlLocation=...) when performing wsdl soap:address rewrite.

The annotation attribute above was not processed when the annotation was put on service endpoint interfaces only.

This issue has been corrected in this release.
1060355 - Schema validation + multiple schema imports in same namespace + catalog lookup doesn't work

An issue that caused the algorithm in org.apache.cxf.wsdl.EndpointReferenceUtils.SchemaLSResourceResolver#resolveResource to not resolve the correct schema and return only the first schema it found has been corrected with an upgrade to the CXF component.

jbossas

1067620 - Cannot change application permissions on EAP 6 when the Java Security Manager is enabled

An issue with the application of Java Security Manager (JSM) policies was discovered, where deployed applications were granted AllPermission permission, which contradicted the policy file. The root cause of this issue was that Virtual File System (VFS) was not enabled, so handling of vfs:/... URL-based policies were not loaded and the default permissions were applied instead. This issue has now been resolved, by ensuring the VFS module is loaded, and JSM policies are now correctly applied.

mod_cluster

1008901 - Some serious log messages don't have id to identify them

In previous versions of JBoss EAP 6, it was found that two log messages were not localized correctly.

As a result users did not see a MODCLUSTER{id} message nor a translation.

In this release, two messages have been added: MODCLUSTER000044 and MODCLUSTER000045.

The messages now appear as expected.
1030965 - Number of registered contexts negatively affects mod_cluster performance

A performance issue has been identified on the Apache HTTP Server with mod_cluster configured as a load balancer. httpd shared memory operations on the workers->nodes table negatively affects the performance of the load balancer. As a result, performance of the httpd load balancer decreases as the number of registered contexts increases.

To workaround this issue, attempt to lower the number of registered contexts.

To fix this bug, the httpd has been modified to utilize local memory rather than shared memory.
1020142 - modcluster subsystem XSDs do not describe worker-timeout attribute

In previous versions of JBoss EAP 6, the mod_cluster XSD used for validations did not specify worker-timeout attribute.

This meant that using XSD to validate configuration might have failed validation even though the configuration was correct and correctly parsed by the server.

The XSD schema has been fixed and now using XSD schema for validation when using worker-timeout attribute will now pass validation.
1058334 - ${project.version} is not resolved for mod_cluster in server log

In previous releases of JBoss EAP 6, the version string logic was using a ${project.version} in the ModClusterLogger.java

As a result, ${project.version} was written to the server log.

In this version, the logic has been fixed adding a version string in Version.properties and reading in before logging the start message. The version is now correctly displayed in the server log.
985101 - STOP-APP not included on mod_cluster-manager page along with ENABLE/DISABLE-APP

In previous versions of JBoss EAP 6, the STOP-APP command on the mod_cluster-manager page was not exposed.

This issue has been corrected in this release and the STOP-APP command is now available through the mod_cluster-manager page as expected.
980246 - mod_cluster-manager may break up aliases from a single VirtualHost, causing a messy page

In preavious releases of JBoss EAP, it was reported that when deploying multiple applications, each with a unique virtual-server and each virtual-server with multiple aliases, the mod_cluster_manager could incorrectly display the same Virtual Host multiple time (once for each alias).

This issue has been resolved and now all Virtual Hosts are displayed only once on the manager page together with all aliases as expected.
1098576 - ModClusterService stop commands are always draining sessions

In previous versions of JBoss EAP 6, using the ModClusterService stop or stopContext commands from the CLI interface failed to move a context to the STOPPED state after failing to drain the active sessions. This meant these commands were not viable for quickly stopping the context when desired (without draining). This issue has been resolved with an updated to the mod_cluster component.
1044594 - [WFLY-2663] mod_cluster metric properties are never applied

In previous versions of the mod_cluster subsystem configured load metrics and properties specified for them were parsed from the XML, but not applied to classes.

This meant that configuring properties for load metrics did not have any effect.

In this release, the properties are applied to the objects as expected.
1052185 - MODCLUSTER-365: Reset MCMPs are sent to all available proxies

A previous release of JBoss EAP carried a known issue that resulted in mod_cluster sending reset MCMPs (Mod_Cluster Manangement Protocols) to all httpd servers in its proxy-list after one of them was restarted. This behavior could have had a negative impact on systems with auto-enable context set to false.

The correct behavior is to send the reset request only to the restarted server. The issue occurred because DefaultMCMPHander.status called sendRequests which sends to all proxies by default.

This issue has been resolved due to an upgrade to the mod_cluster component.