JBoss Enterprise Application Platform 4.2

Release Notes CP05

for Use with JBoss Enterprise Application Platform 4.2 Cumulative Patch 5

Red Hat Documentation Group

Legal Notice

Copyright © 2008 Red Hat, Inc. This material may only be distributed subject to the terms and conditions set forth in the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License (which is presently available at http://creativecommons.org/licenses/by-nc-sa/3.0/).

Red Hat and the Red Hat "Shadow Man" logo are registered trademarks of Red Hat, Inc. in the United States and other countries.

All other trademarks referenced herein are the property of their respective owners.

The GPG fingerprint of the security@redhat.com key is:

CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E


1801 Varsity Drive
RaleighNC 27606-2072USAPhone: +1 919 754 3700
Phone: 888 733 4281
Fax: +1 919 754 3701
PO Box 13588Research Triangle ParkNC 27709USA

Abstract

These release notes contain important information related to JBoss Enterprise Application Platform 4.2.0.CP05 that may not be currently available in the Product Manuals. You should read these Release Notes in their entirety before installing JBoss Enterprise Application Platform 4.2.0.CP05.


1.  Introduction

These release notes contain important information related to JBoss Enterprise Application Platform 4.2.0.CP04. 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. It is 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 enterprise Java applications. At the same time, almost all the key features and components defined in the Java EE 5.0 specification are supported. So your new enterprise Java applications can take immediate advantage of 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 work on many leading enterprise hardware and software products.

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

2. Installation and Migration Notes

This section contains information related to installing or upgrading to JBoss Enterprise Application Platform version 4.2.0.CP04, including hardware and platform requirements and prerequisites.

2.1. Installation Notes

You must have adequate disk space to install JDK and JBoss Enterprise Application Platform while also allowing enough space for your applications. You must have a working installation of JDK 1.5. For the latest information on supported Operating System / JVM combinations, supported Database platforms and current information on the revision level of included components, please refer to http://www.jboss.com/products/platforms/application/testedconfigurations. Refer to the installation guide available online from http://www.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/ for detailed instructions to install and verify JBoss Enterprise Application Platform.

2.2. Upgrading from JBoss Enterprise Application Platform 4.2.0.CP04

Using CSP/JON
Refer to https://network.jboss.com/confluence/display/DOC/Installing+a+Patch for instructions on installing a Cumulative Patch.

3. Important Notes

3.1.  Running the example Seam Applications

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

Warning

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

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

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

Note

Seam version used in this release is 1.2.1.GA.

3.2.  Default Security Settings

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

3.3.  Embedded Hypersonic Database

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

Support Processes
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.  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 a separate 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. These rpms 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, please refer 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 Enteprise Application Platform using different installation modes.

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

  • Server Configuration Guide explains all administrative and configuration functions in detail.

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 from http://www.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/.

6.  JSR-181 support

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

7.  Issues fixed in this release

Following is a list of issues fixed in this release:

  • JBPAPP-1271: Within test cases where an Entity Manager is necessary the command EntityManager em = factory.createEntityManager(); was being used but did not handle exceptions correctly. In order to fix this issue the command has been replaced with the following: EntityManager em = getOrCreateEntityManager(); and the code to always reopen a new Entity Manager and to close the existing one at the beginning of the test case has been re-written.

  • JBPAPP-1270: The Hibernate Entity Manager has been upgraded to version 3.2.1-2.GA_CP04 for this EAP CP release.

  • JBPAPP-1269: The Hibernate Annotations has been upgraded to version 3.2.1-4.GA_CP03 for this EAP CP release.

  • JBPAPP-1265: Within Hibernate Annotations the method AnnotationBinder.mustBeSkipped had a hardcoded string reference to the class org.hibernate.tool.instrument.javassist.FieldHandler. This reference would fail as the class is located in another package to that specified. The new hardcoded string reference points to the class being in the correct package of bytecode: org.hibernate.bytecode.javassist.FieldHandler.

  • JBPAPP-1258: The ProxyBreakingTest failed on case sensitive systems because the file hammer.hbm.xml should be named Hammer.hbm.xml. This case error has been corrected for this release.

  • JBPAPP-1253: Implementations of the ValidConnectionChecker class were not serializable. The way in which the implementations handle excepetion cases has been rewritten, along with the testing of valid connections. By recoding these methods, the implementations are now serializable.

  • JBPAPP-1252: Both methods afterCompletion and the called method unregisterConnection within TxConnectionManager.java would return a connection to the pool and the InternalManagedConnectionPool class was not able to handle duplicates causing problems such as a leaked connection permit with an eventual overflow of the pool. The way in which the connections are managed has been modified to correct a race condition between the methods connection.close() and transaction.rollback() that in turn ensures no duplication of connections in the pool.

  • JBPAPP-1227: There was an issue where the timerServiceMap within the EJBTimerServiceImpl implementation should be synchornized. In order to allow for this the following methods have been modified:

    • removeTimerService (variation 2)

    • removeTimerService (variation 3)

    • String listTimers

    Note

    Variation numbering is based upon when each method appears in the code.

  • JBPAPP-1225: A javax.ejb.NoSuchEJBException exception would occur after the sfsb.remove() method was called from within the HttpSessionListener class. This cluser-wide operation being executed would mean that when one node was shutdown the HttpDessions would still be available on the other nodes for fail over security, however the SFSB would be missing causing the mentioned exception that the stateful bean could not be found.

    In order to address this issue, a clustered session notification policy has been created. For documentation that explains this, refer to section 16.11 of the Server Configuration Guide.

  • JBPAPP-1218: If an illegal character was entered into the JMX console search function, a 500 exception would be presented to a user isntead of an error message explaining the exception occurrance. With this latest EAP release, the JMX console search function now displays an error message when given a malformed string.

  • JBPAPP-1217: The Installation Guide did not provide correct information on how a Red Hat Enterprise Linux customer would install or update their Java JDK using Red Hat Network (RHN). This necessary information has now been included and the distinction made between the Red Hat Enterprise Linux customer Java installation method and installing Java on a generic Linux distribution.

  • JBPAPP-1214: The Hibernate core version has been upgraded to 3.2.4.SP1_CP06 that incorporates numerious fixes and enhancements.

  • JBPAPP-1212: JBoss Remoting has been upgraded to version 2.2.2.SP10, fixing five major bugs.

  • JBPAPP-1208: When load time weaving was enabled a ConcurrentModificationException would appear in the jboss log output for JoinpointSimpleClassifier.classifyJoinpoint. This bug in reporting has been rectified with these updated packages.

  • JBPAPP-1207: A bug existed where when tx would commit and cache would wish to remove a directory from its structure as in removing /a/b and adding /a/b/d through cache, then the remove would not be successful. This failure was a result of the program failing to traverse the children of a given directory and instead seeing that both had /a/b/ and thus the add had made the remove obsolete.

    In correcting this issue the TreeCache.java file has been altered to include the successful mapping of a directories children by use of an interator and the RemoveOnTxTest.java file was altered to check if children are marked for deletion.

  • JBPAPP-1205: When using an Oracle Driver without an offset, the query that is generated ommits rownum > 0. This resulted in an incorrect number of rows being returned. This issue is fixed with this CP release and the aforementioned code is now included.

  • JBPAPP-1203: In previous versions of the Server Configuration Guide and the Getting Started Guide, the properties ha-local-tx-datasource and ha-xa-datasource as well as their respective packages jboss-ha-local-jdbc.rar and jboss-ha-xa-jdbc.rar were listed as experimental when this is no longer the case. This updated CP documentation now exludes the wording of experimental so that there is no confusion.

  • JBPAPP-1201: When removing a Stateful Session Bean, references would still remain in the infinite pool causing a memory leak. The removal of a Stateful Session Bean is now undertaken correctly so that all references are removed from the infinite pool when the bean is destroyed.

  • JBPAPP-1199: The system properties within jboss-aop.xml has been upgraded to incorporate the ability to use environment variables.

  • JBPAPP-1198: Marshalling logic within TreeCacheMarshaller140 used to use a HashMap to store objects that were previously written in order to easily refer to this through a number for subsequent writes. Use of the HashMap however allowed for an object that only satisfied the method equals() but did not adhrere to an == assignment, to be incorrectly detected as being of the same identity. Correcting this issue has seen the HashMap programming change to the use of a java.util.IdentityHashMap instead.

  • JBPAPP-1185: A test case org.jboss.seam.test.InterpolatorTest.testFail() would fail when it should have passed. This issue has been rectified by changing the expected date of the test method to what the Java Virtual Machine (JVM) provides for a US locale.

  • JBPAPP-1179: The Apache JServ Protocol (AJP) connector handle posted data as a request header if an exception or error occured before reading the data and the data was between 512 and 767.This issue has been fixed for this latest CP release.

  • JBPAPP-1165: There was a request to add a socketBuffer attribute to the HTTP connector in order to allow the specification of a custom buffer size. This addition has been incorporated with the possibility of TCP traffic reduction while improving performance of large responses when suffiecient memory is avaliable to support buffer size increases.

  • JBPAPP-1140: JBoss AOP has been upgraded to version 1.5.5.CP03.

  • JBPAPP-1111: The section on max-bean-life within the Server Configuration Guide required improvement so that no abiguity would exist in the Japanese translation. This issue has been fixed by rewording the English sentence that caused the issue.

  • JBPAPP-1093: The numberguess example asked that the user guess a number between 1 and 100 enclusive, however the application would generate a number between 0 and 99 inclusive. The issue has now been rectified so that the number a user can guess and the numbers the example can generate are the same.

  • JBPAPP-1083: Outer join support should be added for aliases of the DetachedCriteria class. To do this, the following methods have been added to the class:

    • All variants of createAlias()

    • All variants of createCriteria()

    • All variants of setLockMode()

    • setComment()

  • JBPAPP-1065: Quoting in Hibernate clashed with particular defaults within the NamingStrategy class. In order to fix this, the files Ejb3JoinColumn.java and TableBinder.java have undergone extensive re-working.

  • JBPAPP-1064: Select annotation tests within IndexedCollectionTest would fail due to a failure reguarding the foreign key constraint within MySQL. To fix this issue, after each test the transaction needs to be committed instead of rolled back. Within the testMapKeyToEntity.java file the following ammendment has been made in order to fix this issue:

    The original code at the end of a test consisted of the following:

    s.delete( book );
    tx.rollback();
    s.close();
    

    The corrected code at the end of a test consists of the following:

    s.delete( book );
    tx.commit();
    s.close();
    

    Where the tx.rollback(); call is replaced with a tx.commit(); call.

  • JBPAPP-1053: Seam icefaces would generate an error stipulating that an instance of the compiler.ExpressionFactory feature could not be achieved. In this release, the application deploys successfully and without the instance issue.

  • JBPAPP-1049: JBoss Web has been upgraded to version 2.0.0.CP08 for this latest JBoss Enterprise Application Platform CP release.

  • JBPAPP-1046: There was an error in the Spring example where if a user created an invalid booking, the example would still allow the booking to proceed. The booking would not be stored and an IllegalStateException would be generated when the user tried to start a new conversation. To rectify this issue, a rule element has been added into the pages.xml file to insure the validity of the booking.

  • JBPAPP-1042: An empty file jboss-seam-1.2.1.AP-src.tar.gz was included in the distribution. In order to avoid confusion, this file has been removed for this release.

  • JBPAPP-1035:All the books for the JBoss Enterprise Application Platform should have the word aspectized removed as this is not a true word and fails to convey any meaningful information. to fix this issue, the word aspectized has been removed from all documentation.

  • JBPAPP-1024: The Tomcat Web Service component of the Application Server would generate a Null Pointer Exception (NPE) in the ExtendedFormAuthenticator class when trying to authenticate in a form after a session had timed out. In fixing this issue, the NPE has been removed from the login page.

  • JBPAPP-1008: There was an error in the Server Configuration Guide xmbean example where the command given specified a deloyment configuration that did not exist. The deployment commands for the xmbean example now deploy to the default configuration of the server.

  • JBPAPP-984: When a CollectionLoadContext is created for an empty ResultSet it is not registered with LoadContexts. This means that the CollectionLoadContext is not removed until the PersistenceContext.clear() method is executed. Hibernate now checks to make sure that a CollectionLoadContext is registered when created.

  • JBPAPP-983: The JBoss Enterprise Application Platform 4.3 has been certified on DB2 versions 8.2 and 9.1.

  • JBPAPP-965: SchemaValidator would fail when views were involved. To fix this problem, the DatabaseMetadata.java file has been updated so that when a static final String[] is created, it is done so with types table and view.

  • JBPAPP-950: The testScrollingJoinFetchesForward class was unsupported by DB2. To fix this, the DB2Dialect class has had to override the Dialect.supportsResultSetPositionQueryMethodsOnForwardOnlyCursor() method and return false.

  • JBPAPP-949: There was an issue that Hibernate would not account for parameters within the select clause of the INSERT-SELECT statement of DB2. The following files within Hibernate have been updated for compatibility with parameters within the select clause of the INSERT-SELECT statement of DB2:

    • DB2Dialect.java

    • Dialect.java

    • HqlSqlWalker.java

    • BulkManipulationTest.java

  • JBPAPP-948: The Hibernate test ASTParserLoadingTest.java tested unsupported queries for DB2. This problem arose because DB2 does not support untyped parameters. To fix this the queries have had to be modified so that the parameters are cast to an appropriate data type.

  • JBPAPP-940: The hibernate tests org.hibernate.test.jpa.lock.JPALockTest and org.hibernate.test.tm.CMTTest would not conclude when executed on a DB2 server. To overcome this problem, the method doesReadCommittedCauseWritersToBlockReaders(), which returns true if executed correctly, has been added to DB2Dialect in order to override Dialect's default settings.

  • JBPAPP-934: Message Transmission Optimization Mechanism (MTOM) support was broken in earlier releases of the EAP. The bug has now been fixed and MTOM support is opperational.

  • JBPAPP-882: The Java Server Faces (JSF) needed its libraries to be upgraded to 1.2_09-b01. This issue has been fixed by upgrading to version 1.2_09 of the libraries, which is no longer in beta.

  • JBPAPP-730: The Clustering Section of the Server Configuration Guide needed to be updated with the latest information relevant to the EAP. To rectify this issue, the updated community clustering section (along with information from the relevant wiki) has replaced the outdated information.

  • JBPAPP-596: Nulls were being returned in an array when toArray was called on a list of Xids in the Txmanager because the size of the array may not be the same. To fix this issue relating to JBossMQ, the preparedXids.size() method is not called to create a new Xid when calling the preparedXids.toArray() method.

  • JBPAPP-526: The uninstall shortcut created within the Microsoft Windows Start menu would not always work as it would always use the javaw path during the uninstall instead of first checking if a JAVA_HOME path is set. The uninstaller now checks if A JAVA_HOME path is set. If it is, it uses this path during the uninstall; if not, the uninstaller falls back to the javaw path.

8.  Known Issues with this release

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

  • JBPAPP-1286: Footnotes within documentation tables and lists do not appear within PDFs. This issue resides within FOP and currently no workaround exists. Where possible footnotes are not used in the circumstances mentioned, however in documents such as the Release Notes the web address of a JIRA is automaticly generated as a footnote and places a number beside that of the JIRA, referencing a footnote that does not appear.

  • JBPAPP-909: Within the Hibernate component of the EAP the HashMap and HashSet iteration order changed from past releases because of support for JDK 1.6. However this has meant that the order of columns in union clauses and union-subclasses has changed, generating a slight impact on the components performance.

A. Revision History

Revision History
Revision 1.0