27
JBoss Enterprise Application Platform 4.3 Release Notes CP08 for Use with JBoss Enterprise Application Platform 4.3 Cumulative Patch 8 Edition 4.3.8 Last Updated: 2017-10-18

JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

JBoss Enterprise Application Platform4.3

Release Notes CP08

for Use with JBoss Enterprise Application Platform 4.3 Cumulative Patch 8Edition 4.3.8

Last Updated: 2017-10-18

Page 2: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal
Page 3: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

JBoss Enterprise Application Platform 4.3 Release Notes CP08

for Use with JBoss Enterprise Application Platform 4.3 Cumulative Patch 8Edition 4.3.8

Laura [email protected]

Page 4: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

Legal Notice

Copyright © 2010 Red Hat, Inc.

This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0Unported License. If you distribute this document, or a modified version of it, you must provideattribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hattrademarks must be removed.

Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert,Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.

Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinitylogo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and othercountries.

Linux ® is the registered trademark of Linus Torvalds in the United States and other countries.

Java ® is a registered trademark of Oracle and/or its affiliates.

XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United Statesand/or other countries.

MySQL ® is a registered trademark of MySQL AB in the United States, the European Union andother countries.

Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related toor endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marksor trademarks/service marks of the OpenStack Foundation, in the United States and other countriesand are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed orsponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

Abstract

These release notes contain important information related to JBoss Enterprise Application Platform4.3.0.CP08 that may not be currently available in the Product Manuals. You should read theseRelease Notes in their entirety before installing JBoss Enterprise Application Platform 4.3.0.CP08.

Page 5: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Table of Contents

1. INTRODUCTION1.1. Overview

2. NEW FEATURES IN JBOSS ENTERPRISE APPLICATION PLATFORM 4.3.0.CP082.1. Database Certifications2.2. IPv6 Certification2.3. Component Versions

3. INSTALLATION AND MIGRATION NOTES3.1. Installation Notes3.2. Upgrading from JBoss Enterprise Application Platform 4.3.0.CP07

4. IMPORTANT NOTES4.1. Oracle 9i is no longer supported4.2. Changes to Naming Structure4.3. Running the example Seam Applications4.4. Default Security Settings4.5. Embedded Hypersonic Database4.6. Source Files

5. PRODUCT SUPPORT AND LICENSE WEBSITE LINKS5.1. Documentation5.2. JSR-181 support

6. ISSUES FIXED IN THIS RELEASE

7. KNOWN ISSUES WITH THIS RELEASE

A. REVISION HISTORY

22

2222

334

4444555

566

7

14

23

Table of Contents

1

Page 6: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

1. INTRODUCTION

These release notes contain important information related to JBoss Enterprise Application Platform4.3.0.CP08. New features, known problems, resources, and other current issues are addressed here.

1.1. Overview

JBoss Enterprise Application Platform is the next evolutionary step in open source enterprise software. Itis a powerful tool for developing rich, high performance, Web 2.0 applications on a pure Java Platform.

JBoss Enterprise Application Platform provides complete compatibility with existing J2EE 1.4 enterpriseJava applications. At the same time, almost all the key features and components defined in the Java EE5.0 specification are supported. So your new enterprise Java applications can take immediate advantageof the Java EE 5.0's significantly simpler POJO-based programming model.

Further, by integrating best-of-breed open source frameworks such as JBoss Seam, Hibernate, Tomcat,and JBoss Cache the Platform takes advantage of innovations in the open source community. As well,JBoss Enterprise Application Platform is fully tested and supported by Red Hat, and is certified to workon many leading enterprise hardware and software products.

All of which means you can develop your new application taking advantage of Java EE 5.0 technologiesimmediately and with the confidence of knowing it will remain forward-compatible with future versions ofthe JBoss Platform.

2. NEW FEATURES IN JBOSS ENTERPRISE APPLICATION PLATFORM4.3.0.CP08

2.1. Database Certifications

JBoss Enterprise Application Platform 5.0.1 is now certified for the Oracle 11g R2 and Oracle 11g R2RAC databases when used with Oracle JDBC Driver version 11.2.0.1.0.

It is also certified for Sybase ASE 15.0.3 when used with JConnect driver version 6.0.5.

2.2. IPv6 Certification

JBoss Enterprise Application Platform 4.3.0 CP08 and onward can be used with IPv6 addresses.However, please be aware of the known issues associated with using IPv6 addresses listed in Section 7,“ Known Issues with this release ”.

2.3. Component Versions

This section details the versions of the components which create the Enterprise Application Platform 4.2that can be found in this Cumulative Patch release.

JBoss Application Server 4.2.z

JBoss Microcontainer 1.0.2

Hibernate Core 3.2.4.SP1_CP09

Release Notes CP08

2

Page 7: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

Hibernate Annotations 3.3.1.GA_CP02

Hibernate Entity Manager 3.3.2.GA_CP01

Hibernate Validator 3.0.0.GA

Apache Xalan 2.7.0.patch02

JacORB 2.3.0jboss.patch7

JAF 1.1.0

JavaServer Faces 1.2_13

JBoss AOP 1.5.5.GA_CP05

JBoss Cache 1.4.1_SP14

JBoss JAXR 1.2.0.SP2

JBoss Messaging 1.4.0.SP3_CP10

JBoss Remoting 2.2.3.SP2

JBoss Serialization 1.0.3.GA

JBoss Transactions 4.2.3.SP5_CP07

JBoss XB 1.0.0.SP3

JBoss Web 2.0.0.GA_CP12

JBoss Web Services 2.0.1.SP2_CP07

JGroups 2.4.7.GA

Seam 1.2.1.GA

Seam 2.0.2.GA

includes RichFaces 3.3.1.SP1

NOTE

The Enterprise Application Platform Server has been redefined for the enterprise marketto a level where direct association to a community release can no longer be drawn.

3. INSTALLATION AND MIGRATION NOTES

This section contains information related to installing or upgrading to JBoss Enterprise ApplicationPlatform version 4.3.0.CP08, including hardware and platform requirements and prerequisites.

3.1. Installation Notes

You must have adequate disk space to install JDK and JBoss Enterprise Application Platform while alsoallowing enough space for your applications. You must have a working installation of JDK 1.5. For the

3. INSTALLATION AND MIGRATION NOTES

3

Page 8: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

latest information on supported Operating System / JVM combinations, supported Database platformsand current information on the revision level of included components, please refer tohttp://www.jboss.com/products/platforms/application/testedconfigurations. Refer to the installation guideavailable online from http://www.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/ fordetailed instructions to install and verify JBoss Enterprise Application Platform.

3.2. Upgrading from JBoss Enterprise Application Platform 4.3.0.CP07

Using CSP/JON

Installing a Cumulative Patch

1. Use Browse Resources to navigate to the resource you wish to patch.

2. Click on the Software tab. All patches applicable to your resource and all patches that havebeen previously installed by JON on this resource will be displayed.

3. An Install link will be listed beside all patches that can be installed by JON. Any patcheswithout this link must be installed manually. Any patch that appears beside a Manually Uninstall link must be uninstalled manually before the new patch can be installed.

For more information about installing a patch with CSP/JON, see the JON documentation.

4. IMPORTANT NOTES

4.1. Oracle 9i is no longer supported

JBoss Enterprise Application Platform 4.3.0 CP08 and higher will no longer be tested for compatibilitywith Oracle 9i.

4.2. Changes to Naming Structure

There is no Feature Pack planned for release with Cumulative Patch 7 and onward. The previousnaming structure (for example, seamfp) is therefore no longer relevant. The JBoss Installer now refersto Seam2 instead of SeamFP. The directory location for seam is now seam1, and the directory locationfor seam2 is now seam2.

4.3. Running the example Seam Applications

It is recommended to run the example Seam applications that are included with the documentation usingthe production configuration. Using another configuration may result in memory issues. Note that thedefault configuration for the server to start with, if no other configuration is specified, is the productionconfiguration.

Release Notes CP08

4

Page 9: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

WARNING

To avoid memory issues, adjust the memory settings before deploying theapplications. You can do this by updating JAVA_OPTS settings in the file JBOSS_DIST/jboss-as/server/production/run.conf with theserecommended values:

Refer to the "Seam Reference Guide" included in the documentation set(JBOSS_DIST/doc/seam/Seam_Reference_Guide.pdf) for important information regarding thedeployment of Seam examples and detailed information on developing applications using Seam.

NOTE

Seam version used in this release is 1.2.1.GA.

4.4. Default Security Settings

If you are using the rpm, or the zip distribution, please note that by default, authentication is enabled andno user accounts are set up. This is done to prevent unauthorized access to various services of JBossAS. Please refer to the Installation Guide, or see http://kbase.redhat.com/faq/FAQ_107_9963.shtm forinformation on how to make the services accessible again.

4.5. Embedded Hypersonic Database

Hypersonic SQL provides default "out of the box" database functionality for evaluation and developmentuse only. It is NOT recommended or supported as a production-use database. Technical support is notavailable for this component, and while we are happy to accept bugs filed against this component, we donot make any commitment to fix them within a specific timeframe.

4.6. Source Files

SRPMs

ftp://ftp.redhat.com/pub/redhat/linux/updates/enterprise/4AS/en/JBEAP/SRPMS

ftp://ftp.redhat.com/pub/redhat/linux/updates/enterprise/4ES/en/JBEAP/SRPMS

ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/JBEAP/SRPMS

Source ZIP

ftp://ftp.redhat.com/pub/redhat/jbeap/4.3.0/en/source/jboss-eap-src-4.3.0-CP08.zip

5. PRODUCT SUPPORT AND LICENSE WEBSITE LINKS

Support Processes

-Xms1303m -Xmx1303m -XX:PermSize=256m -XX:MaxPermSize=256m

5. PRODUCT SUPPORT AND LICENSE WEBSITE LINKS

5

Page 10: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

http://www.redhat.com/support/process/

Production Support Scope of Coverage

http://www.redhat.com/support/policy/soc/production

Production Support Service Level Agreement

http://www.redhat.com/support/policy/sla/production/

Developer Support Scope of Coverage

http://www.redhat.com/support/policy/soc/developer/

Developer Support Service Level Agreement

http://www.redhat.com/support/policy/sla/developer/

Product Update and Support Policy by Product

http://www.redhat.com/security/updates/jboss_notes/

JBoss End User License Agreement

http://www.redhat.com/licenses/jboss_eula.html

5.1. Documentation

Refer to the index.html file in the documentation directory for a list of included documentation.

In the zip distribution, documentation for the Platform and its individual components is distributed in aseparate zip file, jboss-eap-docs-<version>.zip.

On a Linux system, the documentation is found in two rpms that will need to be installed manually. Theserpms are jboss-seam-docs-<version>.noarch.rpm, and rh-eap-docs-<version>.noarch.rpm. For help with installing rpm packages on Red Hat Enterprise Linux, pleaserefer to the Red Hat Knowledge base article located at http://kbase.redhat.com/faq/FAQ_35_198.shtm

Installation Guide explains how to install and verify the installation of JBoss EnterpriseApplication Platform using different installation modes.

Getting Started details the directory structure of the platform and a quick tour of theApplication Server and different configuration sets and services. Using a simple web applicationit illustrates the use of JSF-EJB3 components and how to use Seam to integrate the JSF andEJB3 components.

Server Configuration Guide explains all administrative and configuration functions indetail.

Updated versions of the documentation with errata and additional information, example application code,as well as the most recent version of the release notes may be accessed via the web fromhttp://www.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/.

5.2. JSR-181 support

JSR-181 related functionality is not supported in this version of the JBoss Enterprise ApplicationPlatform. This functionality is supported in version 4.3.

Release Notes CP08

6

Page 11: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

6. ISSUES FIXED IN THIS RELEASE

Following is a list of issues fixed in this release:

Security

JBPAPP-3952: A security issue in the JMX Console configuration has been identified that allowsan attacker to bypass security authentication.

The JMX Console configuration only specified an authentication requirement for requests thatused the GET and POST HTTP "verbs". An attacker could create a HTTP request that did notspecify GET or POST and it would be executed by the default GET handler withoutauthentication. This release contains a JMX Console with an updated configuration that nolonger specifies the HTTP verbs. This means that the authentication requirement is applied to allrequests.

For additional information on this vulnerability refer to: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0738

All users are advised to upgrade to this release to resolve this issue.

If an immediate upgrade is not possible or the server deployment has been customized then thefix can be applied by editing the deployment descriptor (WEB-INF/web.xml) of the JMXConsole WAR. Details of how to apply this fix can be found athttp://kbase.redhat.com/faq/docs/DOC-30741. Contact Red Hat JBoss Support for advice beforemaking these changes.

Red Hat would like to thank Stefano di Paola and Giorgio Fedon of Minded Security forresponsibly reporting the CVE-2010-0738 issue.

JBPAPP-3979: Unauthenticated access to the JBoss Application Server Web Console (/web-console) is blocked by default. However, it was found that this block was incomplete, and onlyblocked GET and POST HTTP verbs. A remote attacker could use this flaw to gain access tosensitive information. This release contains a Web Console with an updated configuration thatnow blocks all unauthenticated access to it by default. (See CVE-2010-1428 for furtherinformation.)

JBPAPP-3633: JBPAPP-544 fixed a security issue by removing the mapping for /statusservlet, leaving only the protected /web-console/status available. However, JBPAPP-1146re-added the unsecured /status mapping. The /status servlet is now secured with the JMXconsole JAAS security domain.

JBPAPP-2872: Twiddle logged all command line arguments, including the JMX password, to twiddle.log, which has public read permissions, and is created in the current workingdirectory. The password is now masked in the log, removing the risk to security. (This issue isrelated to CVE-2009-3554.)

JBPAPP-2500: When a stateless session bean annotated with @RunAs and @RunAsPrincipalinvoked another stateless session bean, the second bean's EJBContext.getCallerPrincipal method returned the unauthenticated identity instead ofthe identity set with @RunAsPrincipal on the first bean. The correct identity is now returned.

JBPAPP-2312: A new PrincipalSessionAttributeFilter has been created to include theprincipal session as an attribute of the HTTP Session. This attribute is checked upon sessionexpiry and the authenticated cache will be flushed if found. In order to use this filter, uncommentthe filter in JBoss Web's web.xml.

6. ISSUES FIXED IN THIS RELEASE

7

Page 12: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

JBoss Application Server

JBPAPP-4018: HSQLDB has been upgraded to version 1.8.0.8.patch03 to enable correcthandling for IPv6 addresses.

JBPAPP-4017: Apache HTTP Client has been updated with a patch to enable corrent handlingfor IPv6 addresses.

JBPAPP-3925: When an EJBTimer is persisted and read back after a server restart, its timerId value is reset. This means that any TimerHandles that are persisted cannot reliablyreturn the timer. This led to javax.ejb.NoSuchObjectLocalException: Timer notavailable.

The fix for this issue requires that the UUIDTimerIdGenerator is set as the TimerIdGeneratorClassName in the $JBOSS_HOME/server/$PROFILE/deploy/ejb-deployer.xml file, like so:

The system property jboss.ejb.txtimer.preserveTimerId must also be set upon serverstartup:

IMPORTANT

timerIds are not preserved by default. This behavior is kept because BigIntegerTimerIdGenerator, which was previously configured in $JBOSS_HOME/server/$PROFILE/deploy/ejb-deployer.xml, would notbe updated when upgrading with JON, because JON does not update the XMLfile. When BigIntegerTimerIdGenerator is used with jboss.ejb.txtimer.preserveTimerId, timerId collisions are likely.

JBPAPP-3336: When unmarshalling a replicated HTTP session with JDK 6, a ClassNotFoundException is raised when MarshalledValueInputStream#resolveClass() attempts to resolve the array class with WebappClassLoader#loadClass(name). Since loadClass() cannot handle array syntax,it delegated to the parent class, which could not locate the class, and raised the exception. The loadClass() method has been replaced with Class.forName(name, false, WebappClassLoader), which understands array syntax, so the error no longer occurs.

JBPAPP-2905: The ScanPeriod in the production configuration is set to sixty seconds. If the

<mbean code="org.jboss.ejb.txtimer.EJBTimerServiceImpl" name="jboss.ejb:service=EJBTimerService"> <attribute name="RetryPolicy"> jboss.ejb:service=EJBTimerService,retryPolicy=fixedDelay </attribute> <attribute name="PersistencePolicy"> jboss.ejb:service=EJBTimerService,persistencePolicy=database </attribute> <attribute name="TimerIdGeneratorClassName"> org.jboss.ejb.txtimer.UUIDTimerIdGenerator </attribute>

$JBOSS_HOME/bin/run.sh -c default -Djboss.ejb.txtimer.preserveTimerId

Release Notes CP08

8

Page 13: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

deployment scanner thread was sleeping when shutdown was initiated, shutdown waited for thelength of the deployment scanner's sleep time. The deployment scanner thread is now stoppedwhen shutdown is initiated, and the wait no longer occurs.

JBPAPP-2764: LoadMgr3 logged a failure to load a class as an error, but in certain situationsthis should be regarded as correct. The ERROR message has been downgraded to a WARNING.

JBPAPP-2578: Configuration information for the JBoss Messaging service in sample-bindings.xml has been updated to make use of new settings.

JBPAPP-2451: Servlet statistics could not be reset with the JMX Console because the TimeStatisticImpl.reset() method was not being called correctly. This has beencorrected and the reset function now works as expected.

Clustering

JBPAPP-2854: When multiple nodes were started concurrently, an address mismatch wouldoccur between cluster members and message senders. This caused inconsistent internal statein NAKACK, which would log errors similar to the following:

This mismatch has been corrected and the errors no longer present.

JBPAPP-2970: When optimistic locking was enabled, remove(String fqn) and remove(String fgn,Object key) did not act on other cluster members if the nodes did notexist in the local cache. This could occur when using invalidation or when a node had beenevicted. The remove method now works cluster-wide with optimistic locking, even if the nodedoes not exist in the local cache.

JBPAPP-2928: With buddy replication, when multiple concurrent requests are made with thesame session ID after failover, the requests may abort with an org.jboss.cache.lock.UpgradeException while attempting to migrate the cache data tothe local node. This no longer occurs, and multiple concurrent web requests made after failoverwith buddy replication enabled now works correctly.

JBPAPP-2013: To work around the incorrect processing of IPv6 addresses, the bind addresswas enclosed in square brackets:

However, this was not valid JGroups syntax for hostname and port combinations, so JGroupswas unable to parse IPv6 literals in TCPPING protocol configuration. The fix for JBPAPP-3018resolves this issue.

EJB3

JBPAPP-2811: The EJB3 timer service did not support retry as defined in the EJB3 CoreSpecification. This support has been included.

WARN [org.jgroups.protocols.pbcast.NAKACK] (IncomingPacketHandler (channel=Tomcat-DefaultPartition):) node2:1234] discarded message from non-member node3:1234, my view is [node1:1234|2] [node1:1234, node2:1234, node3:1234]

ERROR [org.jgroups.protocols.pbcast.NAKACK] (Timer-3:) sender node3:1234 not found in received_msgs

./run.sh -b [$IPv6_ADDRESS] -c all

6. ISSUES FIXED IN THIS RELEASE

9

Page 14: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

JBPAPP-2782: When EJB3 entities were used with optimistic caching, the newerThan methodwould incorrectly return true for A.newerThan ( A ). This caused a DataVersioningException when attempting to remove the entry from the cache. The EJB3entity cache service is now configured to use pessimistic caching to avoid this issue.

JBPAPP-2290: If tx.registerSynchronization fails, then the bean is not attached to thetransaction and thus should not take part in any transaction semantics.

JBPAPP-2248: EJB3 clients did not reuse existing socket connections on subsequentinvocations.

JBoss Hibernate

JBPAPP-4088: When a column name is defined in backticks (`), @JoinTable and @JoinColumn mappings fail with a AnnotationException when the column name withbackticks is referenced. The following fails:

Whereas the following succeeds:

The workaround for this issue is not to specify the referencedColumnName where it refers tothe primary key, since Hibernate will choose the primary key automatically.

JBPAPP-3487: AbstractCollectionPersister used the key column aliases generated by Column.getAlias(Dialect) rather than Column.getAlias(Dialect,Table), soHibernate generates the wrong alias in the table-pre-class inheritance strategy. This incorrectalias then caused an exception when Hibernate retrieved data from the ResultSet. AbstractCollectionPersister now uses the key column aliases generated by Column.getAlias(Dialect,Table), so the table-pre-class inheritance strategy mapping iscorrect.

JBPAPP-3384: Hibernate collection mapping encountered exceptions if @MapKey was usedwithout an explicit @Type annotation. Without an explicit @Type annotation, Hibernate assumedthat the property key type was Serializable and attempted to deserialize an object streamfrom the database column value. With this update, if @MapKey is not given an explicit @Type,Hibernate uses the original property type instead of the serializable type.

JBPAPP-3371: The round function is meant to return values of the same type as the firstargument provided (integer, double, or decimal). Previously, it rounded all values regardless oftype. All values should now return as the correct type.

JBPAPP-3173: Using Javassist as the bytecode provider to instrument your domain modelcaused errors if an entity extended a parent class with an abstract method. Hibernate code usedreturn instead of continue in a while statement, which caused the statement to skip allother attributes that should have been used. This has been corrected.

JBPAPP-3098: When a filter with a collection type parameter was used, and the number ofparameters in that collection changed during the lifetime of the SessionFactory, the SQL

@JoinTable(name = "SYS_GROUPS_USERS", joinColumns = @JoinColumn(name = "USERID", referencedColumnName = "`uid`"), inverseJoinColumns = @JoinColumn(name = "GROUPID", referencedColumnName = "GROUPID"))

@ManyToMany(fetch = FetchType.LAZY)@JoinTable(name = "SYS_GROUPS_USERS", joinColumns = @JoinColumn(name = "USERID"), inverseJoinColumns = @JoinColumn(name = "GROUPID"))

Release Notes CP08

10

Page 15: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

would not be updated to reflect the change in the number of parameters. This typically resultedin the following error:

java.sql.SQLException: Parameter index out of bounds. 2 is not between valid values of 1 and 1

This occurred only with HQL, not Criteria, and has now been corrected.

JBPAPP-3089: A long IN list could result in stack overflow during parsing. A query element like where x in (:x) or a manually-constructed where x in (1,2,3,...) could generate astack overflow if the number of elements referenced by x exceeded a number dependent onavailable stack space. For Java Virtual Machines, the limit is between 9000 and 10000,assuming a relatively empty stack at the point of query execution.

The stack overflow occurred in org.hibernate.hql.ast.util.NodeTraverser becauseit used a recursive algorithm to walk a parse tree. A long IN list generated a very deep sub-tree,so a sufficiently long list caused the stack overflow when NodeTraverser's internal method visitDepthFirst calls itself too many times. This recursive algorithm has been replaced withan iterative tree-walking implementation to fix this issue.

JBPAPP-3068: Mapping an Enum as @Id on MySQL caused a SchemaExport exception witherror messages similar to the following:

This occurred because Hibernate bound the id property of an Enum type as a tinyBlob (onMySQL) without a length property. The fix for this issue ensures that bindId() in AnnotationBinder calls SimpleValueBinder.setType() to set the column type to string resp. int., preventing the issue.

JBPAPP-3060: @JoinColumn mapping assumed that the column definition was void even if itwas also defined by @ManyToOne. Ejb3JoinColumn.java has been updated so that definedcolumn properties like length, precision and scale are observed in @JoinColumnmapping.

JBPAPP-3052: When org.hibernate.id.enhanced.SequenceStyleGeneratorgenerates identifiers, the select script generated is as follows:

However, in PostgreSQL, as is required between next_val and id_val. See http://sql-info.de/en/postgresql/postgres-gotchas.html#1_1 for further details.

JBPAPP-3038: Hibernate Core has been upgraded to version 3.2.4.SP1.CP09. HibernateAnnotations has been upgraded to version 3.3.1.GA.CP02. Hibernate Entity Manager has beenupgraded to version 3.3.2.GA.CP01.

JBPAPP-2900: MySQL uses the TEMPORARY keyword to bypass implicit transaction commits.Previously, Hibernate used <CREATE TEMPORARY TABLE> with <DROP TABLE>. Omitting the

Unsuccessful: create table PlanetCheatSheet (planet tinyblobnot null,mass double precision not null, numberOfInhabitantsbigint not null, radius double precision not null, primarykey (planet)) ENGINE=InnoDBBLOB/TEXT column 'planet' used in key specification withouta key length

select next_val id_val from hibernate_sequence for update

6. ISSUES FIXED IN THIS RELEASE

11

Page 16: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

TEMPORARY keyword caused an implicit commit, and immediate failure within an XA Transaction.<DROP TEMPORARY TABLE> is now supported and this issue no longer presents.

JBPAPP-2082: Associations marked as mappedBy must not define database mappings like@JoinTable or @JoinColumn. This fix adds an AnnotationsException, which is thrownwhen Hibernate receives this invalid mapping.

JBPAPP-2049: The HQL translator attempted to render IS NULL and IS NOT NULL checksagainst a component by using tuple syntax. Exploded syntax is now used instead, to make SQLmore readable.

JBPAPP-1998: EntityNotFoundException is incorrectly thrown upon an optimistic lockingfailure when one EntityManager tries to delete an entity that has been updated by a different EntityManager and hibernate.jdbc.batch_versioned_data is set to false (thedefault value). OptimisticLockException, the correct exception for this situation, is nowthrown instead.

JBPAPP-1547: By default, Sybase ASE 15 string comparisons are case-insensitive. The org.hibernate.dialect.SybaseASE15Dialect.areStringComparisonsCaseInsensitive() method now returns true.

If the Sybase database is configured to perform case-sensitive operations, this setting will beincorrect. However, since Hibernate only uses this method for unit tests, this change has noeffect on Hibernate's internal processing.

JBPAPP-906: A bug exists within the Hibernate Core whereby the unstable synchronized Java 6ClassLoader.loadClass method is utilized creating a deserialized String. This causes aproblem where if multiple threads are loading database rows containing arrays of strings, onethread is forced to undertake all the procedure while the other threads are left dormant. The fixfor this issue was to change SerializationHelper$CustomObjectInputStreaml to usethe form Class.forName(String,Boolean,ClassLoader), and to alter the way thatdeserialization occurs so that the best effort classloader is used wherever possible, particularlythe classloader or the returnedClass for various org.hibernate.type.Typeimplementations.

JBoss Messaging

JBPAPP-3593: If the application server failed and restarted after the prepare phase of atransaction, the rollback process would roll back the database, but would not restore or cancelthe in-memory state of the message queue. Messages could therefore become 'stuck' in thequeue until the JMS server was restarted and the database rolled back correctly. The rollbackprocess has been corrected so that this issue no longer occurs.

JBPAPP-3157: When unicode multibyte characters were used in a message Selector, JBossMessaging threw a TokenMgrError, even though the Java Message Service specification allowsthis. org.jboss.jms.server.selector.SelectorParser.jj has been modified tocorrect this.

Remoting

JBPAPP-3707: When org.jboss.remoting.marshal.MarshallerLoaderHandlerreceives a request for a class, it returns an instance of org.jboss.remoting.loading.ClassBytes. However, if MarshallerLoaderHandlercannot locate the requested class, the returned ClassBytes object has a null value for the

Release Notes CP08

12

Page 17: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

class byte array. Because org.jboss.remoting.loading.ClassByteClassLoader didnot check for the possibility of a null byte array, a NullPointerException occurred. ClassByteClassLoader now checks for null values and this issue no longer occurs.

JBoss Seam

JBPAPP-4093: The password could not be changed in the Seam Booking example because thetransaction was aborted due to invalid validation. This occurred because the default passwordhad a shorter length than the minimum valid length specified by the validation rule. Thisminimum valid length has been lowered to correspond with the default password of the demouser.

JBPAPP-4056: Seam-gen generated an incorrect .classpath file for Eclipse because a jboss-cache.jar upgrade was not reflected in all files.

JBPAPP-4054: Seam 2.0.2 requires Apache Ant 1.6.5. However, the build.xml file includesthe searchparents attribute, which is allowed only from Ant 1.7.0 and onward.

JBPAPP-3188: Seam 2.0.2 core classes could not be compiled with IBM JDK 1.5 because of ajavac bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6548436. The workaround forthis issue has been applied to Seam 2.0.2.

JBPAPP-3185: Some stdout output was printed in the PDFs produced in the Seam iTextexample. This has been corrected.

JBPAPP-3182: The fix for JBPAPP-2272 caused a problem with the Seambay example suchthat the list of categories did not load. This has now been corrected and the Seambay exampleworks as expected.

JBPAPP-3181: The Seam 2.0.2 documentation was not previously included in thedocumentation bundle. The documentation for both Seam versions is now included in thebundle.

JBPAPP-3176: The org.jboss.seam.test.RemotingTest testMapWrapper methodfailed because it attempted to compare marshalled XML output against a hard-coded stingvalue. This has been corrected and the method now compares the content of XML elements.

JBPAPP-3138: Several BlogTest unit test methods (test.BlogTest.testEntry() and test.BlogTest.testLatest()) failed on all platforms. In addition, test.BlogTest.testSearch() failed on certain platforms. (For further information, see theconsole output in the JIRA.) The classes that were causing the problems have been modified tocorrectly handle Blog unit test cases.

JBPAPP-2967: A shared value binding returned a null value when under load, which caused a javax.el.PropertyNotFoundException. The value binding is no longer shared and theissue no longer presents.

JBoss Web

JBPAPP-3343: org.apache.catalina.loader.WebappClassLoader makes a recordeach time a non-existent resource is requested, and stores them in notFoundResources. Nolimit was placed on this cache method, so large amounts of memory could be expended storingnon-existent resources. A limit of 1000 has been placed on this cache to prevent this problem.

JBPAPP-2039: The fix for JBPAPP-1992 means that Version 1 cookies are used in JBoss Webinstead of Version 0. This older version is linked to a security issue, described in CVE-2007-

6. ISSUES FIXED IN THIS RELEASE

13

Page 18: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

5333. To return to the previous behavior despite this, add a conf/catalina.properties fileand set the following property in it:

Web Services

JBPAPP-3457: The wsprovide tool did not work correctly. Upgrading the JAX-WSimplementation corrected this issue.

7. KNOWN ISSUES WITH THIS RELEASE

Following is a list of known issues at the time of release.

General Known Issues

JBPAPP-4172: Attempting to install the IBM JDK 1.5 on 64-bit Red Hat Enterprise Linux 5results in broken links to Java binaries. This prevents the application server from starting. Theworkaround for this issue is to use the Sun JDK 1.6 instead.

JBPAPP-4140: Xalan iterators do not update the cache correctly when they reach the end node.This results in incorrect transform output. More information about this bug is available fromXALANJ-2204.

JBPAPP-4085: When probe.sh terminates, it produces a list of terms that match a given stringand a summary line that reflects the number of responses that matched the -match <string>parameter, for example:

Total responses=1, 1 matches, 3 non-matches

This summary line does not appear because a thread set up to close the multicast socket upontimeout causes the multicast socket to generate an exception and return before the summary linecan be printed.

JBPAPP-3365: UnifiedClassLoader3.cacheLoadedResource() is called from two paths,one of which did not check for a null value. When a non-existent resource was loaded, a cacheentry was created with a null value, which resulted in a memory leak. A null value check hasbeen added and the memory leak no longer occurs.

JBPAPP-3117: If an incorrect mcast_addr value is set, users are pointed to an outdated URLfor information about cross talking. If you experience problems with mcast_addr and crosstalking, the updated URL for further information is https://www.jboss.org/community/docs/DOC-9469.

JBPAPP-3050: When JBoss Enterprise Application Platform is started with the -b <hostname> flag, filtering by jboss.web:name=ajp-<hostname>/<ip_address>-8009,type=ThreadPool,* returns no results. This makes it impossible to use SNMP toexport data to other monitoring tools because the configuration in deploy/snmp-adapter.sar/attributes.xml cannot find the bean.

It is worth noting that while the following definition does not work:

<mbean name="jboss.web:name=ajp-<hostname>/<ip_address>-8009,type=ThreadPool" oid-prefix=".1.2.3.4.1">

org.apache.tomcat.util.http.ServerCookie.VERSION_SWITCH=false

Release Notes CP08

14

Page 19: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

The following definition does work as expected:

<mbean name="jboss.web:name=ajp-<ip_address>-8009,type=ThreadPool" oid-prefix=".1.2.3.4.1">

JBPAPP-2306: The HP-UX init script, jboss_init_hpux.sh, does not let users define a bindaddress with the -b option.

JBPAPP-1774: The JBoss Enterprise Application Platform RPM cannot be installed with only theOpenJDK distribution.

JBPAPP-1286: Footnotes within documentation tables and lists do not appear within PDFs. Thisissue resides within FOP and currently no workaround exists. Where possible footnotes are notused in the circumstances mentioned, however in documents such as the Release Notes theweb address of a documented issue is automatically generated as a footnote and places anumber beside that of the documented issue, referencing a footnote that does not appear.

Documentation Known Issues

JBPAPP-4149: The JBoss Messaging User Guide PDF included in the documentation zip for thisrelease includes the following incorrect paragraph:

Before running these examples, you must deploy the example-destinationslocated under /docs/examples/jboss-messaging-examples/destinations.

These destinations are already deployed in JBoss Enterprise Application Platform, so this stepdoes not need to be performed.

JBPAPP-3335: The Seam 2.0.2 documentation included in the documentation bundle includesreferences to Meldware. Meldware is not supported for use with JBoss Enterprise ApplicationPlatform, and all references to it should be ignored.

EJB Known Issues

JBPAPP-3908: When ValidateDTD is set to true in EJB deployer, standardjboss.xmlvalidation fails because the properties for Message Driven Beans (such as those in JMSContainerInvoker) do not exist in jboss_4_2.dtd. To work around this issue, removethe reference to jboss_4_2.dtd in standardjboss.xml.

Hibernate Known Issues

JBPAPP-4175: When Hibernate executes a cacheable query using a ResultTransformer, itwill attempt to cache the results after applying the ResultTransformer. However, the datamay be modified so that Hibernate cannot read it. In this case, a ClassCastException willoccur when attempting to cache the results.

JBPAPP-4123: PostgreSQL fails to drop SchemaExport if constraint names change.

JBPAPP-4095: When scrolling a HQL query with join fetch on a collection, FetchingScrollableResultsImpl.last() does not move to the last result if the cursor ispositioned after the last result. Instead, the cursor stays in position after the last result. This cancause org.hibernate.exception.GenericJDBCException: could not perform sequential read of results.

7. KNOWN ISSUES WITH THIS RELEASE

15

Page 20: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

JBPAPP-3946: LikeExpression does not handle the ignoreCase flag properly when ignoreCase is set to false. It builds the correct SQL property like ?, but does not use theflag inside getTypedValues. A lowercase value is always produced.

JBPAPP-3913: In Oracle 11g R2 (both RAC and standalone), a sequence may start at 2 insteadof 1. The root cause is still under analysis.

JBPAPP-3911: In Oracle 11g R2 (both RAC and standalone), a complex query with LockMode.UPGRADE (that is, "for update") may cause a "No more data to read from socket"error. The workaround for this issue is to avoid using LockMode.UPGRADE on such queries. Theroot cause analysis is still under investigation.

JBPAPP-3565: org.hibernate.cfg.OneToOneSecondPass metadata causes an org.hibernate.PropertyValueException at runtime. If JOINs exist but do not contain theproperty otherSideProperty, otherSideJoin will not be null and will retain old invalid data.

JBPAPP-3223: Hibernate does not currently support tuple syntax in HQL or Criteria ondatabases which do not support tuple syntax. For example, if a database does not support tuplesyntax:

where (a,b) in ( (1,2), (3,4) )

Hibernate should translate to:

where ( (a=1 AND b=2) OR ( (a=3 AND b=4) )

There is currently no workaround for this issue except to avoid using this syntax query ondatabases that do not support tuple syntax.

JBPAPP-3105: The number of elements that can be included in a single IN expression is limitedto a certain number (for Oracle, 1000). If an Array or Collection is passed into the IN method,Oracle throws an error stating that the IN clause must contain at most 1000 items. This affectsboth HQL and Criteria API. To work around this issue, users should split large arrays andcollections into sub-arrays or sub-collections. If 'in', use the form in(1,2,...,1000) or in(1001+); if 'not in', use the form not(1,2,...,1000) or in(1001+), as described inthe JIRA.

JBPAPP-3075: If a database reserved keyword is used as a property name with a HibernateValidator annotation (for example, @Min or @Max), it will cause exceptions in SchemaExport,even if you specify a column name. This is because Hibernate ignores the name specified. Theworkaround is to map the property name to something that is not a database reserved keywordwith the @Column annotation. The fix for this issue is expected in Hibernate 4.

JBPAPP-3069: The QueryByExampleTest.testJunctionNotExpressionQBE test fails inSybase because ansinull is set to off by default. This test builds a disjunction predicatesuch as ( OR^ (ex) (NOT ex) ). This should match everything in the database, butbecause ANSI SQL evaluates all comparisons involving NULL values as UNKNOWN, not allmatches are returned.

To work around this issue, append this string to the JDBC URL:

?SQLINITSTRING=set ansinull on

Release Notes CP08

16

Page 21: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

If this is not possible, an alternative is to execute the following Java code (or similar) after gettinga Hibernate Session, s.

JBPAPP-3056: The Hibernate test org.hibernate.test.hql.ASTParserLoadingTest.java fails on DB2 with an SQL Errorbecause of invalid use of a parameter marker. This occurs because DB2 does not supportuntyped parameters. To work around this issue, modify your queries so that the parameters arecast to an appropriate data type.

JBPAPP-2945: The Hibernate test org.hibernate.test.annotations.query.QueryAndSQLTest.java fails onPostgreSQL 8.3.7 with the following log messages:

Caused by: org.postgresql.util.PSQLException: Method org.postgresql.jdbc3.Jdbc3PreparedStatement.setQueryTimeout(int) is not yet implemented.

This occurs because PostgreSQL JDBC driver does not support the Statement.setQueryTimeout method.

JBPAPP-2839: Failing to re-inject the interceptors for instrumented entities causes NullPointerExceptions when entities are retrieved from a deserialized PersistenceContext.

JBPAPP-2440: When a cache provider cannot be found, a NoClassDefFoundError is thrownwith the message:

net/sf/ehcache/CacheException

When a connection provider cannot be found, a HibernateException is thrown with thefollowing message:

Could not instantiate connection provider: " + providerClass

If you experience these errors, we suggest checking the cache or connection providerconfiguration to ensure that the provider is included in the classpath.

JBPAPP-2316: Hibernate does not currently provide property types that enable applications toprocess data in a long string or binary column as a Java String. This feature is expected inJBoss Enterprise Application Platform 5.1.0.GA.

JBPAPP-2315: Hibernate does not currently provide property types that enable applications toprocess data in a java.sql.Types.LONGVARCHAR or java.sql.Types.CLOB column as aJava String. Processing of a java.sql.Types.LONGVARBINARY or java.sql.Types.BLOBas a Java byte[] is also unavailable. These features are expected in JBoss EnterpriseApplication Platform 5.1.0.GA.

JBPAPP-1895: The Hibernate tests JoinTest.java and QueryAndSQLTest.java fail whentesting queries with untyped parameters for DB2, which does not support untyped parameters.You can work around this issue by modifying the queries so that the parameters are cast to anappropriate data type, as described on the JIRA.

s.connection().createStatement().execute("set ansinull on");

7. KNOWN ISSUES WITH THIS RELEASE

17

Page 22: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

JBPAPP-1722: Sybase fails to insert a new entity if the entity overflows the column. However, itdoes not throw an exception, so Hibernate cannot tell that the insert has failed. To work aroundthis issue, your application must validate entity properties to ensure that the value will notoverflow the underlying column.

JBPAPP-1709: The version of ejb3-persistence.jar shipped with the current version ofJBoss Enterprise Application Platform 4.x is incorrect. Hibernate Entity Manager currently ships ejb3-persistence.jar 1.0.0.GA, but it should use ejb3-persistence.jar 1.0.1.GA.

There are two changes between the 1.0.0.GA and 1.0.1.GA versions of the JAR:

The JPA specification defines the constant with a value that has a typo in the classname:

Because the JAR inluded in the JBoss Enterprise Application Platform does not include thistypo, it is not compliant with the JPA specification. Seehttp://opensource.atlassian.com/projects/hibernate/browse/EJB-321 for details.

The Javadoc for javax.persistence.Query.getSingleResult() states that EntityNotFoundException will be thrown if there is no result. It should say NoResultException.

JBPAPP-1613: Null values for columns mapped as Boolean in Sybase are persisted as 0instead of null. The current workaround for this issue is to map these values as type="org.hibernate.test.where.NumericTrueFalseType" instead of type="boolean".

JBPAPP-1555: Sybase uses image and text instead of Blob and Clob, so there is no supportfor Blob and Clob on Sybase. This feature is expected in JBoss Enterprise Application Platform5.1.0.GA. Currently, user-defined types can be created to process Sybase text and imageproperties.

JBPAPP-1554: Sybase only allows only one entry (for example, column name or '*') in asubquery select list. The HQL function, elements(), fails when the collection elements have acomposite ID, because the generated SQL contains a subquery select list with multiple entries.The workaround is to avoid using HQL elements() if the elements have a composite key.Instead, reformulate the HQL so that no subquery has multiple entries in its select list.

JBPAPP-1551: Embedded classes are not considered when batch insert statements areordered. There are two possible workarounds for this issue:

Leave ORDER_INSERTS at the default value (FALSE) when embedded classes are used.

Explicitly call session.save() on child objects to enforce their SQL insertion orders.

JBPAPP-1546: When using Sybase, SchemaExport cannot be used to create storedprocedures while in chained transaction mode. The suggested workaround for this case is toadd the following code follwing the defining of the new stored procedure:

javax.persistence.Persistence.PERSISTENCE_PROVIDER = "javax.persistence.spi.PeristenceProvider"

<database-object><create>sp_procxmode paramHandling, 'chained'

Release Notes CP08

18

Page 23: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

JBPAPP-1545: On Sybase, when a query has an ANSI join with three or more joins, and onejoin involves a union subclass, the query may fail with SybSQLException because a column isnot within the scope of the joined table expression. The current recommendation is to avoid usingjoin fetches that involve union subclasses.

JBPAPP-1328: When attempting to perform a delete or update statement with a subselect, thegenerated SQL will refer to an unknown table alias and cause the query to fail.

Currently the workaround is to reverse the conditions in the where clause.

Incorrect:

Correct:

JBPAPP-1230: When a DetachedCriteria is used as a subquery, the generated SQLcontains a column alias in the subquery. On Sybase, a SybSQLException is thrown becauseSybase does not allow column aliases in subqueries. The workaround for this issue is to use anHQL query instead of a DetachedCriteria in a subquery.

JBPAPP-1229: On Sybase, the text current_timestamp is not being recognised as a methodmode by the translator. Only SQL function calls with parentheses are recognized as methodmodes. There is no workaround for this issue except to avoid relying upon function replacementfor current_timestamp.

JBPAPP-1123: When @OrderBy is used on joined classes (using a join table), the generatedSQL is invalid on MySQL, PostgreSQL, Oracle, and MSSQL because the "order by" clausequalifies the columns using the actual table name. The "order by" clause should use the tablealias instead.

JBPAPP-1082: When a char property is used and it is not initialized, then Hibernate initializes itto 0 and persists a string containing the character \u0000. PostgreSQL throws an exceptionbecause it does not allow character \u0000 embedded in a string. An email thread describingthis problem is available from:

http://markmail.org/message/jvzlzxw6ui2rcsmv#query:\u0000%20postgresql+page:1+mid:gpu34f4iwanbyjqh+state:results

There is currently no workaround for persisting \u0000 in a char column using PostgreSQL.

If the user intends to persist a NULL for an uninitialized char property instead of \u0000, then java.lang.Character should be used instead of the primitive char type. This avoids theexception when the property is initialized. Attempting to persist a java.lang.Characterproperty that is set to \u0000 still results in an exception.

JBPAPP-1075: SchemaExport fails on Oracle and Sybase when a redundant @Column(

</create><drop/></database-object>

update Person set name = ?1 where id in (select c.id from Customer c) and name <> ?2

update Person set name = ?1 where name <> ?2 and id in (select c.id from Customer c)

7. KNOWN ISSUES WITH THIS RELEASE

19

Page 24: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

unique = true ) or @UniqueConstraint( columnNames = { ... } ) annotation isused for a column that is implicitly defined as unique by the declared model. The workaround isto remove the redundant @Column annotation.

JBPAPP-1071: In some cases, when there are foreign key constraints defined on columns in aprimary key, SchemaExport incorrectly declares them as nullable when it generates CREATE TABLE statements. This fails on MSSQL, DB2, and Sybase because those databases requireprimary key columns to be non-nullable.

The workaround for this issue is to explicitly indicate which columns should be non-nullable,such as:

Add nullable=false to @JoinColumn

Add optional=false to @ManyToOne

Add an @AttributeOverride with @Column(name="mapkey", nullable=false) incase of a @CollectionOfElements using a Map

Add nullable=false in @Column when inside a @CollectionId or inside @MapKey

JBPAPP-1063: Currently MySQL does not support millisecond and microsecond measurementswhen returning database values such as TIME and TIMESTAMP.

JBPAPP-1613: Null values for columns mapped as boolean in Hibernate, are persisted as zeroinstead of null. When the PreparedStatement.setNull( index, java.sql.Types.BIT ) method is executed in the Sybase environment, Sybase JDBC converts the null value to azero because Sybase does not allow null bit columns.

JBPAPP-1555: Currently in Hibernate the SybaseDialect uses Blob and Clob where it should beset up to use image and text. Tests attaining to this currently fail with the message:

The method com.sybase.jdbc2.jdbc.SybResultSet.getBlob(String) is not supported and should not be called.

JBPAPP-1554: The FumTest.testCompositeKeyPathExpressions() method withinHibernate fails since Sybase currently only allows one column in a subquery select list, with theonly exception to this being that a subquery in an EXISTS() predicate can have * as the selectlist.

The current workaround for this is to not use the HQL elements() method if the elements havea composite key. Instead the HQL should be reformatted to ensure there is no subquery withmore than one item in the select list.

JBPAPP-1082: A limitation in the PostgreSQL JDBC driver causes a javax.persistence.RollbackException. This occurs when the char property is usedwithout a value set as Hibernate then persists a string containing the character \u0000, whichcauses PostgreSQL to generate an exception as it does not allow this character to be embeddedin a string.

Currently a workaround for persisting the \u0000 character in a char column usingPostgreSQL does not exist. Instead it is reconmended that to persist a null value for the charproperty when it is uninitialized, the java.lang.Character method should be used.

Release Notes CP08

20

Page 25: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

JBPAPP-1068: When using Microsoft SQL and @Type(type="text") in creating a table, thefield is correctly created as text however when a delete operation is issued the field becomesset as a varchar, forcing the Microsoft SQL driver to return the error:

The data types text and varchar are incompatible in the equal to operator.

JBPAPP-1063: Currently MySQL does not support millisecond and microsecond measurementswhen returning database values such as TIME and TIMESTAMP.

JBPAPP-946: Within the Hibernate Entity Manager three different NullPointerExceptionsare being investigated in relation to the EJB3 configuration, transaction operations when theyare extended and packaging.

JBPAPP-909: Within the Hibernate component of the Enterprise Application Platform theHashMap and HashSet iteration order changed from past releases because of support for JDK1.6. However this has meant that the order of columns in union clauses and union-subclasseshas changed, generating a slight impact on the components performance.

JBoss Messaging Known Issues

JBPAPP-4079: Two JBoss Messaging Test Suite tests fail on Oracle 11g R1, R2 and RAC withthe latest JDBC driver, version 11.2.0.1.0:

QueueManagementTest.testDestroyDestinationProgrammatically

QueueManagementTest.testDestroyDestinationProgrammaticallyWithParams

These tests use a large value for the fullSize queue configuration parameter, which is passedto the setFetchSize method on the java.sql.PreparedStatement. A problem with theJDBC driver means that more than the usual amount of memory is consumed when executeQuery() is called, which results in a java.lang.OutOfMemoryError, causing the test tofail.

JBPAPP-3352: If a message-driven bean is deployed with the default settings (useDLQ=true, DLQMaxResent=5) and message redelivery is prompted, messages remain in the queue in a"delivering" state even after the message is delivered to the dead letter queue. The workaroundfor this issue is to disable the use of the dead letter queue by setting useDLQ=false.

JBPAPP-3207: The Bridge example distributed with the documentation bundle does not workwith the all or production profile.

JBPAPP-3206: The JBoss Messaging examples included in the documentation bundle containincorrect configuration information and do not work with JBoss Enterprise Application Platform. Acorrected example archive is available for use with JBoss Enterprise Application Platform 4.3.0CP08 from http://www.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/. Replacethe /docs/examples/jboss-messaging-examples directory in your distribution with theextracted contents of this archive.

Further information is available from the JIRA if you wish to correct these examples manually.Note that the web service example does not work regardless.

IPv6 Known Issues

JBPAPP-3146: JBoss Web Services does not handle IPv6 addresses correctly and has anumber of compatibility issues.

7. KNOWN ISSUES WITH THIS RELEASE

21

Page 26: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

JBPAPP-3096: JBoss Transactions does not support the use of IPv6 addresses.

JBPAPP-2005: IPv6 link-local addresses are not handled correctly when used as bind ormulticast addresses. The workaround for this issue is to use IPv6 global addresses instead.

Seam Known Issues

JBPAPP-4153: Applications that use ajax4jsf do not work with IBM JDK 1.6. The workaround forthis issue is to use a different cache, such as OSCache, by setting the following environmentvariable:

JBPAPP-4100: A problem with the IBM JDK means that the Spring key is not bound to the Seamentity manager. This means that the Seam Spring example deploys, but the home page is neverdisplayed.

JBPAPP-4065: Several Seam 2.0.2 unit and integration tests fail on IBM JVM in Red HatEnterprise Linux. The affected examples are the DVD store, booking, nested booking, registerand seamdiscs examples.

JBPAPP-4064: An incorrect RichFaces build is bundled with Seam 2.0.2 in JBoss EnterpriseApplication Platform 4.3.0 CP08.

JBPAPP-4060: The Quartz Example.testTransactionSuccessEvents fails with ajava.lang.AssertionError on Red Hat Enterprise Linux 4 when used with IBM JDK 1.6.

JBPAPP-3187: The junitreport Ant tag in the Seam build.xml did not work on IBM Java1.5 or 1.6 because the JAXP processor was set incorrectly. In order to use IBM JVM with junitreport, create a jaxp.properties file in the IBM jre/lib directory, and set the javax.xml.transform.TransformerFactory key to the value of the org.apache.xalan.processor.TransformerFactoryImpl.

JBoss Web Known Issue

JBPAPP-4058: CacheEntry resources are not cleaned when ApplicationContexts areshut down, causing a memory leak.

org.ajax4jsf.cache.CacheFactory=org.ajax4jsf.cache.OSCacheCacheFactory

Release Notes CP08

22

Page 27: JBoss Enterprise Application Platform 4 - Red Hat Customer Portal

A. REVISION HISTORY

Revision 4.3.8-17.400 2013-10-31 Rüdiger LandmannRebuild with publican 4.0.0

Revision 4.3.8-17 2012-07-18 Anthony TownsRebuild for Publican 3.0

Revision 1.1-0 Thu Oct 07 2010 Laura BaileyUpdated document for docs.redhat.com .

Revision 1.0-0 Mon Apr 26 2010 Laura BaileyFinal draft.

A. REVISION HISTORY

23