JBoss Enterprise Web Platform 5
for use with JBoss Enterprise Web Platform 5.1.0
Copyright © 2010 Red Hat, Inc
Legal Notice
Copyright © 2010 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack Logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Abstract
These release notes contain important information related to JBoss Enterprise Web Platform 5.1.0 that may not be currently available in the product manuals. You should read these Release Notes in their entirety before installing JBoss Enterprise Web Platform 5.1.0.
- 1. Introduction
- 2. Features introduced with JBoss Enterprise Web Platform 5.1.0
- 2.1. The Native Package
- 2.2. JBoss Web Services
- 2.3. Hibernate
- 2.4. PicketLink Federation
- 2.5. Features introduced in previous releases
- 2.6. Component Versions
- 2.7. Installation Notes
- 2.8. Product Support
- 2.9. Documentation
- 2.10. Technology Previews
- 2.11. Excluded, Removed and Deprecated Items
- 2.12. Issues fixed in this release
- 2.13. Known Issues with this release
- A. Revision History
These release notes contain important information related to JBoss Enterprise Web Platform 5.1.0. New features, issues fixed in this release, and other known issues are addressed here.
JBoss Enterprise Web Platform is a core component of JBoss Open Choice, Red Hat's application server product strategy to deliver targeted platforms that support the variety of common Java application workloads in today's IT enterprise. As part of JBoss Open Choice, Red Hat provides three Java application server solutions:
- JBoss Enterprise Application Platform
- The Enterprise Application Platform is for highly transactional applications that utilize the full Java Enterprise Edition (EE) programming approach. It leverages the market leading JBoss Application Server and adds enterprise features for clustering, caching, messaging, transactions, and a full web services stack
- JBoss Enterprise Web Platform
- The Enterprise Web Platform is for mid-size workloads, focusing on light and rich Java applications. Web Platform is a slimmed down profile of the JBoss Enterprise Application Platform. Web Platform builds upon the Java EE Web Profile concept to provide a lightweight version of the popular JBoss Application Server, while still providing enterprise features for clustering, caching, and simple web services.
- JBoss Enterprise Web Server
- The Enterprise Web Server is for simple web applications and the lightest Java workloads, JBoss Enterprise Web Server provides enterprises with a stable, long-term enterprise product support lifecycle for Apache Web Server, Apache Tomcat and all of the common connectors used in between.
JBoss Enterprise Web Platform 5.0 is a lighter and slimmer version of JBoss Enterprise Application Platform.
By integrating best-of-breed open source frameworks such as JBoss Seam, Hibernate, CXF Web Services, and JBoss Cache, the Platform takes advantage of innovations in the open source community. As well, JBoss Enterprise Web Platform is fully tested and supported by Red Hat, and is certified to work on many leading enterprise hardware and software products.
About this release
JBoss Enterprise Web Platform 5.1.0 is a minor release. Minor releases aggregate the contents of prior patches and Cumulative Patches (CPs), and may add additional new functionality. Subsequent patches and Cumulative Patches assume the installation of the minor update that preceded them. During the life cycle of a product's major version, Red Hat makes commercially reasonable efforts to maintain API-level compatibility across all minor releases and asynchronous patches, ensuring that, for example, JBoss Enterprise Web Platform 5.1.0 maintains API-level compatibility with JBoss Enterprise Web Platform 5.0.0, the initial release of JBoss Enterprise Web Platform 5. Possible exceptions to this rule include fixes addressing critical security issues.
With the release of JBoss Enterprise Web Platform 5.1.0, JBoss Enterprise Web Platform 5.0.x customers should update to JBoss Enterprise Web Platform 5.1.0.
Refer to the JBoss Enterprise Middleware Product Update and Support Policy for further information.
JBoss Enterprise Web Platform 5.0.x contained many updated and new components. JBoss Enterprise Web Platform 5.1.0 adds performance enhancements, JBoss Web Services CXF Stack, and support for JDBC 4, and introduces PicketLink Federation as a Technology Preview. These components are detailed in this section.
The Native Package has been renamed following the pattern
jboss-ep-native-5.1.0*.zip. This new consolidated Native Package can be used with JBoss Enterprise Application Platform or with JBoss Enterprise Web Platform.
The Native package has also been expanded to provide NSAPI for Solaris technology. NSAPI is a connector used to connect Sun Java System Web Server to JBoss Enterprise Web Platform.
JBoss Enterprise Web Platform 5.0 introduced a pluggable architecture to provide choice of Web Services Stack, along with JBoss Web Services Native as the supported Web Services provider. JBoss Enterprise Platform 5.1.0 introduces an alternative Web Services stack, JBoss Web Services CXF.
Note
The choice of Web Services stack used by the Platform must be made at the time of installation. Refer to the Installation Guide for further details.
JBoss Web Services Native
JBoss Web Services Native is the Java EE 5-compliant JBoss implementation of web services standards. It is the only web services stack for versions of JBoss Enterprise Web Platform prior to 5.1, and is the default web services stack in JBoss Enterprise Web Platform 5.1.0.
JBoss Web Services CXF
JBoss Web Services CXF provides most of the features available in Apache CXF (including WS-Security, WS-Policy, WS-Addressing, WS-ReliableMessaging, basic WS-Trust, MTOM), plus common JBoss Web Services stack features like endpoint metrics, record management and endpoint address rewrite. JBoss Enterprise Web Platform 5.1.0 introduces JBoss Web Services CXF stack as an optional Web Services stack.
Hibernate now offers full support for Java Database Connectivity 4 (JDBC 4), which enables greater Clob and Blob support, and more sophisticated exception handling.
PicketLink Federation is a security and identity framework providing support for SAML v2.0 and and WS-Trust. JBoss Enterprise Web Platform 5.1.0 introduces PicketLink as a Technology Preview.
The Native package has been expanded to provide mod_cluster and ISAPI for Windows technologies, in addition to JBoss Native and mod_jk. The added technologies are described as follows:
- mod_cluster is an httpd-based load balancer. Like mod_jk, it uses a communication channel to forward requests from httpd to an application server node; however it also employs a communications channel from server nodes to the load balancer, providing real-time feedback and enabling more efficient load optimization and request routing. See the mod_cluster documentation available from http://docs.redhat.com/ for further details.
- ISAPI is a connector used to connect the Microsoft IIS web server to JBoss Enterprise Web Platform.
The JBoss AS 5 family represents the state of the art, second generation Microcontainer based enterprise Java run-time and the latest release of the world's most popular application server. In addition to supporting the latest Java EE specification (Java EE 5), it integrates many of the best enterprise class services for advanced messaging, persistence, transactions, caching and high-availability.
The JBoss Microcontainer is a refactoring of the modular JBoss JMX Microkernel. It is a lightweight kernel that manages the loading, lifecycle and dependencies between POJOs. Used to integrate enterprise services, the JBoss Microcontainer together with Servlet/JSP container, EJB container, deployers and management utilities, provides a standard Java EE 5 profile.
JBoss Cache is used to replicate EJB and HTTP session state and supports distributed entity caching for JPA, while continuing to push the performance and scalability envelope with a new and more efficient locking scheme (MVCC – MultiVersion Concurrency Control).
JBoss Web Services Native is the Java EE 5-compliant JBoss implementation of web services standards. It is the only web services stack for versions of JBoss Enterprise Web Platform prior to 5.1, and is the default web services stack in JBoss Enterprise Web Platform 5.1.
The Native package is an optional component for the JBoss Enterprise Web Platform and incorporates JBoss Native and the mod_jk technologies. These technologies are described as follows:
- JBoss Native consists of the Apache Portable Runtime (APR), OpenSSL and Tomcat Native (TC-native).
- Apache Portable Runtime (APR) provides superior scalability, performance, and improved integration with native server technologies. The Apache Portable Runtime is a highly portable library that is at the heart of Apache HTTP Server 2.x and contains many uses, including access to advanced IO functionality (for example: sendfile, epoll and OpenSSL), Operating System level functionality (for example: random number generation and system status), and native process handling (shared memory, NT pipes and Unix sockets).
- OpenSSL implements the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols and includes a basic crytographic library.
- Tomcat Native (TC-Native) is a Java Native Interface (JNI) that provides much of Tomcats core functionality in native code rather than Java. This allows for an overall increase in the speed of a server.
- mod_jk is a connector that is used to connect the Tomcat JSP container and different web services such as Apache.
Note
The Red Hat Enterprise Linux 5 distribution of the Native package does not contain OpenSSL or the Apache Portable Runtime since these technologies are already included in the Operating System.
This section details the versions of the components which create the Enterprise Web Platform 5.1.
Table 1. Component version comparison between releases 5.1.0 and 5.0.1
| Component | EWP 5.1 | EWP 5.0.1 |
|---|---|---|
| JBoss Application Server | 5.1.0.GA | 5.1.0.GA |
| JBoss Microcontainer | 2.0.10.GA | 2.0.9.GA |
| JBoss Native | 2.0.9.GA | 2.0.9.GA |
| Hibernate Core | 3.3.2.GA_CP03 | 3.3.2.GA_CP01 |
| Hibernate Entity Manager | 3.4.0.GA_CP03 | 3.4.0.GA_CP01 |
| Hibernate Annotations | 3.4.0.GA_CP03 | 3.4.0.GA_CP01 |
| Hibernate Search | 3.1.1.GA_CP03 | 3.1.1.GA_CP01 |
| Hibernate Validator | 3.1.0.GA | 3.1.0.GA |
| Clustered Remote EJB3 Proxies | 1.3.6.GA | 1.1.22.GA |
| JBoss Cache | 3.2.5.GA | 3.2.1.GA |
| JBoss HA Server API | 1.1.3.Final | 1.1.1.GA |
| JBoss JAXR | 2.0.1 | 2.0.1 |
| JGroups | 2.6.16.GA | 2.6.13.GA |
| JBoss EJB3 | 1.3.6.GA | 1.1.22.GA |
| JBoss JTA | 4.6.1.GA_CP07 | 4.6.1.GA_CP03 |
| JBoss JTS | 4.6.1.GA_CP07 | 4.6.1.GA_CP03 |
| JBoss Negotiation | 2.0.3.SP3 | 2.0.3.SP1 |
| JBoss Managed | 2.1.1.GA | 2.1.1.GA |
| JBoss Metadata | 1.0.6.GA | 1.0.2 |
| JBoss Web | 2.1.10.GA | 2.1.7.GA |
| JBoss Web Services - Native | 3.1.2.SP7 | 3.1.2.SP3 |
| JBoss Web Services - CXF | 3.1.2.SP7 | - |
| JBoss AOP | 2.1.6.CP01 | 2.1.6.GA |
| JBoss Remoting | 2.5.3.SP1 | 2.5.2 |
| JBoss Serialization | 1.0.4.FINAL | 1.0.3.GA |
| JBoss XB | 2.0.1.GA | 2.0.1.GA |
| JavaServer Faces | 1.2_13 | 1.2_13 |
| JacORB | 2.3.1.jboss.patch01 | 2.3.1.jboss.patch01 |
| JPA | 1.0.0 | 1.0.0 |
| JBoss Security | 2.0.4.SP4 | 2.0.4.SP1 |
| JBoss Profiler-jvmti | 1.0.0.CR5 | 1.0.0.CR5 |
| Admin Console | 1.3.4.SP1 | 1.3.2.GA |
| mod_jk | 1.2.30 | 1.2.28 |
| mod_cluster | 1.0.4.GA | 1.0.3.GA |
| Seam | 2.2.2.EAP5 | 2.2.1.EAP5 |
| RESTEasy | 1.2.GA_CP01 | 1.1.GA_CP01 |
| RichFaces (in Seam) | 3.3.1.SP2 | 3.3.1.GA |
Technology Preview
JBoss Enterprise Web Platform 5.1 includes PicketLink Federation as a Technology Preview.
Technology Preview features are not fully supported under Red Hat subscription level agreements (SLAs), may not be functionally complete, and are not intended for production use. However, these features provide early access to upcoming product innovations, enabling customers to test functionality and provide feedback during the development process. As Red Hat considers making future iterations of Technology Preview features generally available, we will provide commercially reasonable efforts to resolve any reported issues that customers experience when using these features.
An up-to-date matrix of compatible and certified configurations is available at http://www.jboss.com/products/platforms/application/supportedconfigurations/. Please refer to this list for information on tested and supported configurations.
Refer to the Installation Guide for instructions on installing and verifying the installation of the JBoss Enterprise Web Platform.
The default startup profile is
default which is a base Java EE 5 server profile containing a default set of services. It contains the most frequently used services required to deploy a Java EE 5 application. It does not include the JAXR service, the IIOP service, or any of the clustering services.
The
default profile is not intended for production use or for the running of load, stress, availability or performance tests. In addition, the performance of this beta release does not necessarily represent the final release.
Bugs, potential bugs, and development issues and/or questions should be filed as JBoss support cases via the Customer Support Portal, http://access.redhat.com.
This release adds the JBoss Security Guide, which brings together the Platform's security-related information.
JBoss WS CXF, introduced in this release, contributes a User Guide to the Platform documentation set.
All API documents, code examples and a link to the online release notes are distributed in a separate ZIP file,
jboss-ewp-docs-<version>.zip.
All other guides and documentation are avaliable online at http://docs.redhat.com. Select the appropriate product name (JBoss Enterprise Web Platform) and stream (5) from the sidebar, as shown in the image on the front page.
Your feedback on our documentation is highly appreciated. You can directly contact the documentation team via http://jira.jboss.org.
This section describes the Technology Preview features released alongside JBoss Enterprise Web Platform, their installation, and any known issues.
Technology Preview
Technology Preview features are not fully supported under Red Hat subscription level agreements (SLAs), may not be functionally complete, and are not intended for production use. However, these features provide early access to upcoming product innovations, enabling customers to test functionality and provide feedback during the development process. As Red Hat considers making future iterations of Technology Preview features generally available, we will provide commercially reasonable efforts to resolve any reported issues that customers experience when using these features.
Excluded, Deprecated, and Removed Items
- Excluded
- An item that has never featured in a product release but is otherwise part of one of the open source components of the product, is an excluded item.
- Deprecated
- An item that will be removed from a future release, usually the next major version, is a deprecated item.
- Removed
- An item that was previously in a release of the product and is no longer included is a removed item.. Items will usually be deprecated before being removed.
The following items are deprecated in this release.
- JBoss Cache JBAS-7837
- Pojo Cache FIELD replication granularity JBAS-7560
- JMX Console JBAS-7509
- JFreeChart JBAS-7716
- JMX Remoting JBAS-7510
- org.jboss.jdo.castor.CastorJDOImpl MBean JBAS-7511
- JDBC3 (JDK5) classes in the JDBC adaptor JBAS-7527
- Java Remote Method Protocol Invoker and HA Invoker JBAS-7563
- PooledInvoker and PooledInvokerHA JBAS-7564
- HASessionStateTopologyComputer and HASessionStateTopologyComputerImpl JBAS-7992
- SubPartitionsInfo and SubPartitionInfo interfaces JBAS-7992
- cglib
Following are the issues fixed in this release:
- JBPAPP-6987
- Microcontainer beans were being registered as MBeans on deployment. These MBeans are optional and provide some debugging information. This behavior has now been turned off by default. Microcontainer beans are no longer registered as MBeans on deployment by default.
- JBPAPP-4730
- The specific combination of JBoss Native, 64-bit hardware, and the
-javaagentJava option caused systems to hang when executing therun.shscript. The script passed user supplied parameters to Java while making a call to check for the system architecture. Therun.shscript is now modified to ignore user supplied parameters when making this call, and the script no longer hangs under this condition. - JBPAPP-4683
- When a management tool used the ProfileService management interface (as the embedded console does) to update the ServiceBindingManager service, the mapping of the received information was incorrect. The received value for a binding's "fixedHostName" property was applied as "fixedPort" and vice versa. In most cases, both properties are "false" so this was harmless. However, if either property were true, this led to an incorrect binding upon server restart when the updated values were applied. This has been corrected and the mappings are now applied as expected.
- JBPAPP-4471
- When user-type-mapped types were used in ejbql aggregate functions like MIN and MAX, a CCE exception was thrown. This is now fixed and CMP fields of types mapped with user-type-mapping can appear in aggregate functions in the SELECT clause of an EJB-QL query.
- JBPAPP-4337
- Deploying the
jaxws-jbws944.jarleads to aClassNotFoundException. - JBPAPP-3942
- The
run.shscript now creates a file to track processes and make it easier to obtain process IDs,jboss.pidfile. See the JIRA for further details. - JBPAPP-3674
- A status servlet error existed for <distributable> web apps. The Cache session manager had different attributes from the Web manager, but was perceived as the same JMX object because of a lack of case sensitivity. StandardManager used 'activeSessions' while the clustered version was 'ActiveSessions'. The code used by the servlet to render the status information can now detect and handle upper and lower case letters in the JMX attribute names for a session manager.
- JBPAPP-3171
- JBPAPP-544 fixed a security issue by removing the mapping for /status, leaving only the secure /web-console/status available. However, the unsecured /status was reincluded in JBPAPP-1146. This has been fixed by configuring the
ROOT.warwebapp's security. It solves the original problem of securing, and leaves the /status intact. - JBPAPP-1774
- Red Hat Enterprise Linux 5 users installing the JBoss Enterprise Web Platform rpm using yum must be subscribed to the Red Hat Enterprise Linux Extras channel in order to satisfy the Java requirement of JBoss Enterprise Web Platform with either the Sun or the IBM Java Development Kit.
- JBPAPP-4579
- Using
session.createSQLQuerycaused a memory leak because theequalsandhashCodemethods inNativeSQLQuerySpecificationwere incorrectly implemented, and concurrent use ofLRUMapcaused the map to grow larger than its maximum limit. These issues have been corrected and the memory leak no longer occurs. - JBPAPP-4326
- The changes for JBPAPP-4471 caused an issue when users mapped non-JDK Serializable classes with
SerializableType, and attempted to cache those values into a second level cache.SerializableTypereported the classloader ofjava.io.Serializableas the classloader to use for deserialization. However, this classloader could not see into the classloader, or non-JDK classes.The classloader fromorg.hibernate.util.SerializationHelper.deserialize(InputStream, ClassLoader)now attempts to resolve the classloader that needs to be deserialized. If it cannot do this successfully, it uses the context classloader from the current thread and the classloader that loads the Hibernate class. - JBPAPP-4224
- The Query Cache required the session or entity manager to be closed and reopened before it will become effective because Hibernate compares the timestamp of a cached query with the timestamp of the current session when it retrieves a query from the cache. This has now been fixed, and Hibernate uses
nextTimestamp()to fetch the current timestamp rather than the cached timestamp. - JBPAPP-4183
@CollectionIddescribes an identifier column for a bag (an idbag, for example).nullableshould have been set to false explicitly. This has been corrected, andnullableis now set tofalseby default.- JBPAPP-4123
- PostgreSQL failed to drop
SchemaExportif constraint names changed. Hibernate now issues a cascade when it tries to drop a table, fixing the issue. - JBPAPP-4105
- Hibernate uses
StandardDialectResolverto guess the Hibernate dialect if thehibernate.dialectproperty is not found in the Hibernate properties file,hibernate.cfg.xml, orpersistence.xml.StandardDialectResolverreturnedSybaseDialectif the database name it extracted from database metadata isSybase SQL ServerorAdaptive Server Enterprise. However, becauseSybaseDialectis deprecated, this caused some problems. TheStandardDialectResolvernow guesses the correct dialect to use ifhibernate.dialectis not configured. - JBPAPP-4095
- When scrolling a HQL query with join fetch on a collection,
FetchingScrollableResultsImpl.last()did not move to the last result if the cursor was positioned after the last result. Instead, the cursor stayed in position after the last result. This could causeorg.hibernate.exception.GenericJDBCException:could not perform sequential read of results. The fix for this issue ensures that the cursor moves to the last result, as expected. - JBPAPP-4088
- When a column name was defined in backticks (`),
@JoinTableand@JoinColumnmappings failed withAnnotationExceptionwhen the column name with backticks was referenced. Hibernate now compares thereferencedColumnNamewith the column's quote name rather than the table column's name. - JBPAPP-4022
getColumnSpanreturned0when comparing entities withOneToOnemappings, even when comparing the same entity, which resulted inTypeMismatchExceptions. The algorithm ofgetColumnSpanhas changed so that the column span can be identified by its identifier or unique key type.- JBPAPP-3946
LikeExpressiondid not handle theignoreCaseflag properly whenignoreCasewas set to false. The correct SQLproperty like ?was built, but the flag insidegetTypedValueswas not used, and a lowercase value was always produced. This issue has been fixed, and lowercase or the original case is used whenignoreCaseis set to false.- JBPAPP-3737
- In a stateless session, queries load objects in a two-phase process: in the first phase, a temporary persistence context is populated with empty objects; in the second phase, the objects' member data is read from the database. If an object contains an association or a collection, the query performs a recursive call to the session's get() method. This clears the temporary persistence context.If the parent object contained any other associations to be read as part of the second phase, Hibernate threw an assertion because the associations cannot be found in the persistence context.This has been fixed by introducing a new method:
org.hibernate.engine.PersistenceContext.isLoadFinished(). This method tells StatelessSession when to clean the temporary persistence context. - JBPAPP-3565
- A bug in
org.hibernate.cfg.OneToOneSecondPasscode sometimes caused anorg.hibernate.PropertyValueExceptionwhen processing a one-to-one mapping. The exception occurred because when JOINs did not containotherSideProperty,otherSideJoinretained old data instead of being null. Theorg.hibernate.cfg.OneToOneSecondPasscode has been corrected. - JBPAPP-3487
- Hibernate generated the wrong alias in the table-pre-class inheritance strategy in some situations. (See the JIRA for examples.)
AbstractCollectionPersisternow uses the key column aliases generated byColumn.getAlias(Dialect,Table), so the table-pre-class inheritance strategy mapping is correct. - JBPAPP-2440
- When a cache provider could not be found, a NoClassDefFoundError was thrown with the message:
net/sf/ehcache/CacheException
When a connection provider could not be found, aHibernateExceptionwas thrown with the following message:Could not instantiate connection provider: " + providerClass
More informative messages are now thrown when these errors occur. - JBPAPP-2276
- The iteration order of
HashMapsandHashSetsfor JDK 6 caused the order of columns in union clauses or union subclasses to differ depending on whether JDK 5 or 6 was used. Since the change in column order is consistent across union clauses, the resulting queries were valid; however, this change could affect performance. The implementation of HashSet has been changed to LinkedHashSet, for identical performance between the different JDKs. - JBPAPP-2275
- Hibernate could not previously be compiled under JDK 6 because the following classes did not fully implement JDK 6 interfaces:
org.hibernate.jdbc.ResultSetWrapperorg.hibernate.lob.BlobImplto implementjava.sql.Bloborg.hibernate.lob.ClobImplorg.hibernate.lob.SerializableBloborg.hibernate.lob.SerializableClob
A NoSuchMethodError occurred when an application required a method that was missing from these classes. The missing methods have now been implemented and this error no longer occurs.
- JBPAPP-3709
- When
org.jboss.remoting.marshal.MarshallerLoaderHandlergot a request for a class, it returned an instance oforg.jboss.remoting.loading.ClassBytes. IfMarshallerLoaderHandlerwas unable to find the desired class, then the returnedClassBytesobject had a null value for the class byte array. However,org.jboss.remoting.loading.ClassByteClassLoaderdoes not check for the possibility of a null byte array, so aNullPointerExceptionresulted. JBREM-1184, which caused this issue, has been fixed.
- JBPAPP-4876
- On injection of a jBPM
ProcessInstanceto a Seam component, the process instance returned was registered for auto-save. This caused a performance issue, as the jBPM ManagedContext saves all instances in theautoSaveProcessesListwhen it closes. The code for returning aProcessInstanceon injection has been changed, and the process instance is no longer registered for auto-save. - JBPAPP-4685
- An input sanitization flaw was found in the way JBoss Seam processed certain parametrized JBoss Expression Language (EL) expressions. A remote attacker could use this flaw to execute arbitrary code via a URL, containing appended, specially-crafted expression language parameters, provided to certain applications based on the JBoss Seam framework. Note: A properly configured and enabled Java Security Manager would prevent exploitation of this flaw. (CVE-2010-1871)Red Hat would like to thank Meder Kydyraliev of the Google Security Team for responsibly reporting this issue.
- JBPAPP-4577
- A change to Seam's
getInstanceFromFactorymethod to fix a concurrency issue caused some applications to enter a deadlock situation in a very specific combination of circumstances. The original fix togetInstanceFromFactorywas revised, and the issue has not been observed since. - JBPAPP-4568
- Seam was distributed with a copy of
activation.jarin its/libdirectory. This file is also supplied by JDK 6. The copy in Seam has been removed. - JBPAPP-4509
- Rich:comboBox components in Seam apps created with seam-gen were missing the drop-down arrow graphic. This was fixed by modifying the cascading style sheet used to control the display of the component in a web browser. The arrow graphic is now displayed correctly.
- JBPAPP-4317
- Seam would fail if two components with the same class name were found on the classpath, with an error: "
java.lang.IllegalStateException: Two components with the same name and precedence -", followed by the component and class names. Seam has been updated, and will now ignore any duplicate classes. When duplicate components are encountered with the same classname, the first one encountered will be loaded, and any subsequent components on the classpath with the same classname will be ignored. - JBPAPP-4273
MockServletContextwas unaware that JBoss Enterprise Web Platform 5 used the Virtual File System. It therefore attempted to access URIs as files.MockServletContextnow recognizes the web application root and fetches the path of the URL class, ensuring that the protocol does not form part of thejava.io.Fileconstructor parameter.- JBPAPP-4259
- Seam-gen templates used
resource://for objects that were not on the classpath. This resulted in an error when trying to transform a RichFaces template (XCSS) into a CSS file. Seam-gen no longer usesresource://, fixing the issue. - JBPAPP-4015
- When hot deployment was used for EARs that contained multiple WAR files, the first web application accessed worked correctly, but web requests to subsequent web applications caused a
NullPointerException. This occurred because the application context was not set up when the hot deployment filter ran. Each operation related to web application context now checks for the currentjavax.servlet.ServletContext, resolving the issue. - JBPAPP-4013
- When using the web services page of the Seambay example in Internet Explorer 8, values entered in the username and password fields do not propagate to the request area because of an undefined JavaScript object. This has been corrected.
- JBPAPP-4012
- The Tasks example did not work correctly in Internet Explorer 8. When "Undo this Task" is selected on the Resolved Tasks page, the task returns to the Tasks page, but does not disappear from the Resolved Tasks page. This issue has been fixed by turning off Ajax request caching.
- JBPAPP-4010
- Resources from the resource servlet, such as CAPTCHA images, were cached by the browser and did not re-render correctly because of incorrect response headers in
org.jboss.seam.captcha.CaptchaImage. The response headers have been corrected so that this no longer occurs. - JBPAPP-4009
- In Seam mail, attachments were not always included inline, so attachments were not visible in some mail clients. The patch for this issue was backported from JBSEAM-4630, and attachments should now be visible.
- JBPAPP-4008
- If
ELSupport.coerceToTypewas called with anBigDecimalinstance as the first Parameter 'obj' andBigDecimal.classas type, theBigDecimalwould be converted into a double and back into aBigDecimalwhich would lead to a different value being returned.This was addressed upstream, and was fixed in JBoss Enterprise Web Platform 5.1.0 by changing the Seam dependency on JBoss-EL to 1.0_02.CR5.ELSupport.coerceToType now returns an input value when it is assignable to the given type. - JBPAPP-4007
org.jboss.seam.transaction.EjbSynchronizationsdid not comply with Java specifications. As stated in http://java.sun.com/blueprints/guidelines/designing_enterprise_applications/transaction_management/qanda/index.html, classes that implement SessionSynchronization may not haveTransactionsAttribute TransactionAttributeType.SUPPORTS.TransactionsAttributeType.SUPPORTShas been replaced withTransactionsAttributeType.REQUIRED.- JBPAPP-4006
org.jboss.seam.core.Interpolatordid not report exceptions and printed warnings with limited information. Exceptions are now reported, and warnings are more informative.- JBPAPP-4005
- Seam JMS support did not work after failover to a slave node because the
topicConnectionfield in theSubscriptionRegistryobject became invalid when the connection to the master node failed. Subsequent calls toSubscriptionRegistry.subscribe()failed withSpyJMSException, and JMS subscriptions no longer worked even if the master node revived. This issue has been fixed. - JBPAPP-4004
- A typographical error existed in the message logged by the
org.jboss.seam.async.AsynchronousExceptionHandlerwhen handling "Exeception thrown while executing asynchronous call". "Exeception" should be "Exception". This has been fixed. - JBPAPP-4003
- Requirements have changed between JBoss Enterprise Web Platform 4.x and JBoss Enterprise Web Platform 5.x such that page-level
messages.propertiesin theResourceLoadermust be stored inMETA-INF/classesor they will not work. The documentation is not explicit about this. This issue has been fixed. - JBPAPP-4002
Initialization.redeployincluded code that created a new lock and then locked it immediately. This did not provide any level of protection, and could cause problems in debug mode. This has been fixed by removing the lock completely.- JBPAPP-3855
- The SeamSpace
testCreateBlogfailed with aNullPointerExceptionon IBM JDK 1.6. The getIdentifier method now behaves correctly on JDK 1.6. - JBPAPP-3769
- In profiles other than
production,MockResponseStateManagerdid not overrideResponseStateManager#isPostback. This meant that both Faces and non-Faces requests were evaluated as postbacks. AisPostback(FacesContext context)method has been added intoorg.jboss.seam.mock.MockResponseStateManager, which overrides the old method and allows NonFacesRequest to recognize postback. - JBPAPP-3713
- JAX-RS web services executed within an EJB transaction cannot use Seam HTTP authentication. HTTP requests to a web service protected by
AuthenticationFiltersplit into two seperateContextualHttpRequests. In the second one, it is not possible to look up EjbSynchronization beans, soComponent.getInstance("org.jboss.seam.transaction.synchronizations", ScopeType.EVENT)fails withNoSuchEjbException.This issue has been fixed. - JBPAPP-3525
s.tldinjboss-seam.ui.jar/MANIFEST.MFcontained attribute entries that were defined incorrectly according to the XML Schema for the JSP Taglibrary descriptor. This has been fixed with the upgrade to Richfaces 3.3.1.SP1.- JBPAPP-2384
- The Seam Chatroom example threw an
EJBTransactionRolledbackExceptionwhen a user attempted to log in. This exception did not influence the application's functionality, and has been fixed with an update to JBoss Cache.
Security Fixed Issues
- JBPAPP-4144
- The /status servlet was accessible from
http://localhost:8080/status?full=truewithout authentication. (CVE-2008-3273)This issue has been fixed and the servlet now requires authentication.
- JBPAPP-4244
- The parsing and deploying mechanism for
hibernate.cfg.xmlwas unstable. This resulted in an inability to use regular Hibernate property names, because properties had to be mapped to theorg.jboss.hibernate.jmx.Hibernate class. The original set of parsed key/value pairs is now inserted into theo.j.h.hmx.Hibernateobjects via a newsetProperties(Set<BaseNamedElement>)method. Thestart()method then builds the configuration from that set of properties.
- JBPAPP-5036
- Several typographical errors in the Seam Reference Guide have been corrected.
- JBPAPP-4849
- The section on Running as a Service on Windows in the Installation Guide listed incorrect long and short service names, and an incorrect location for the
service.batscript. This has been corrected. - JBPAPP-4391
- The RuleBasedPermissionResolver requirements for Drools 5 were out of date. This resulted in incorrect information being presented in the documentation. The out of date information has been replaced with up-to-date, accurate content.
- JBPAPP-4390
- The Seam Reference Guide contained some duplicate information, which has been removed.
- JBPAPP-4389
- The 'Charting' section in the Seam Reference Guide was missing information on <p:chart> tags. This has been corrected with a description; 'displays a chart already created in Java by a Seam component.'
- JBPAPP-4387
- Seam reference documentation source code blocks did not have syntax highlighting, which made the source code difficult to read. This code has all been updated with the correct highlighting.
- JBPAPP-4386
- The Seam Reference Guide was missing callout numbers in example code blocks. This made it difficult to connect the code and the accompanying explanatory notes. This has been fixed by introducing callouts.
- JBPAPP-3818
- "Using Seam with JBoss Tools" in the Seam Reference Guide has not been revised for use with JBoss Enterprise Web Platform and should be considered obsolete.The documentation how now been fixed and updated.
- JBPAPP-4307
- When using
SystemMemoryUsageLoadMetric, mod_cluster prioritizes dispatching requests to a machine that is using system memory higher than other machines. The metric returned its 'load' as 'free memory' instead of the expected 'used memory'. This has been corrected and the error no longer occurs.
- JBPAPP-4501
- Testing has revealed issues with the way Enterprise Application Platform 5.1.0 handles the transfer of many large files without MTOM enabled. Customers should note that MTOM should be enabled to transfer large files, and this kind of service consumes a high amount of memory. However, if you choose not to use MTOM, you can implement the following to stop your Application Server crashing:
- Configure the limited listener for this service
- Allocate more memory and configure the right garbage collection (GC) policy for a Java Virtual Machine
- JBPAPP-4243
- The web services context example did not work, and threw a
ClassCastException. The example has been patched and now works as expected. - JBPAPP-3785
- When a method with an additional namespace for a header parameter was invoked after a method that did not have this additional namespace, the wrong namespace was used in the SOAP operation when the method was serialized. The issue has been fixed by correcting the way transitions are made between Java Objects and XML, so that the final SOAP Message is generated with correct namespaces.
- JBPAPP-3019
- The doc/examples/jboss-web-services-examples context caused a number of exceptions to occur. This context error meant that the JBoss Web Services examples would not work correctly. The example code was modified as per JBPAPP-2995, and the examples now run correctly.
- JBPAPP-2162
- Sun JAXB silently accepts messages with non-fatal errors where they should be rejected. The fix for JBPAPP-2114 corrects this, so that badly-formed messages are rejected.
- JBPAPP-4061
- An
IndexOutOfBoundsExceptionoccurred in thePOJOResourceFactorybecause the interface was annotated instead of the implementation. Support has been added for annotated interfaces.
- JBPAPP-4887
- When an application that uses JPA or Hibernate is configured to use a clustered Hibernate second-level cache, it introduces an explicit dependency on the application server's CacheManager Service. This dependency is not recorded in the application server's service dependency system, so when the Platform is stopped, the CacheManager may shut down before the application. This causes a WARN message in the log when the application shuts down. This issue leads only to warnings in the error log and has been fixed with a HA Server Cache upgrade.
- JBPAPP-4254
- ha-server-cache-jbc has been upgraded to 2.0.3.Final.
- MODCLUSTER-113
org.jboss.modcluster.demo.servlet.ThreadCountLoadServlethas been removed from mod_cluster but is still specified in theweb.xmlfile belonging toload-demo.war. This results in deployment errors. This issue has been fixed and the non-existent servlet has been removed.
Following is a list of known issues at the time of release.
- JBPAPP-5110
- The graphical installer allows the user to specify a custom JAAS security domain for securing consoles and invokers, but always secures the Tomcat console with the JAAS security domain "jmx-console", even if it does not exist. To use a custom JAAS security domain, specify the name in the "JMX Security" screen during installation. When the installer completes, edit the
jboss-as-web/server/$PROFILE/deploy/ROOT.war/WEB-INF/jboss-web.xmlfile. In the<security-domain>element, replace the name "jmx-console" with the name of the security domain you used during installation. This secures the Tomcat console with the same custom JAAS security domain that secures the Admin console and any other consoles and invokers you elected during installation. - JBPAPP-4542
- The locations of
jbosssx.jar,jboss-javaee.jar,jboss-security-spi.jar, andjbosssx-server.jarhave changed in this release due to a security fix. In this release they have been relocated tojboss-as-web/lib/. Any scripts that rely on the location ofjbosssx.jarshould be updated to reflect this change. - JBPAPP-4665
- Resteasy-guice applications fail to deploy because of a java.lang.SecurityException. An error message similar to the following is displayed: java.lang.SecurityException: class "org.jboss.resteasy.examples.guice.hello.DefaultGreeter$$FastClassByGuice$$70fd68d0"'s signer information does not match signer information of other classes in the same package"This occurs because the cglib.jar in JBoss Enterprise Web Platform is signed, and the cglib- instrumented proxy uses the cglib.jar signer information instead of the signer information of the application target class. The patch for this issue has been released alongside JBoss Enterprise Web Platform 5.1.0 and can be downloaded from Red Hat Support at https://access.redhat.com/jbossnetwork/restricted/softwareDetail.html?softwareId=4453&product=enterpriseweb.platform&version=5.0.0&downloadType=patches.
- JBPAPP-4456
- Other agent-enabled tools may run into a class that contains a field, method, constructor, or other that was not loaded by Javassist. In this case, when the Advisor tries to manipulate that method, a
javassist.NotFoundExceptionis thrown. This exception should be ignored and the field considered non-existent. - JBPAPP-4130
- An
org.jboss.ejb3.stateless.StatelessDelegateWrappercannot be assigned to anorg.jboss.system.ServiceMBeanwhen creating a monitor withorg.jboss.console.plugins.monitor.CreateThresholdMonitorServlet. The monitor is created as an attribute rather than a <depends>, so it fails to deploy upon restart. The workaround for this issue is to manually alter the created*-service.xmlto allow the monitor to deploy correctly on restarting. - JBPAPP-4041
- The
ServiceMetaDataParser.parseValueFactoryParameter()only considers the first child of the<parameter>element. Therefore if the<null/>child element is surrounded by carriage returns ('enter' or white space) the node is treated as a text value and the parameter is not correctly substituted later on. The following will cause an error:<parameter> <null/> </parameter>The workaround is to ensure there is no whitespace in<parameter>elements, like so:<parameter><null/></parameter> - JBPAPP-3929
- When
java.sql.Date.valueOfattemps to parse dates of the format yyyy-mm-dd, the TCK test threw ajava.lang.IllegalArgumentException. This was due to a regression in the latest Sun JVM, Sun JDK 1.6.0_18-b07 (see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6898593 for more information). The workaround for this issue is to downgrade to Sun JDK 1.6.0_17-b04. - JBPAPP-3766
- Each time a
org.jboss.mail.MailServiceis configured and bound to JNDI, theSessionObjectFactoriesproperties are overwritten. This means that when multipleMailServiceconfigurations exist, allMailServices bound to JNDI will have the properties of the most recently configuredMailServicein their Session. - JBPAPP-3308
- In isolated deployments, a
ClassNotFoundExceptionis thrown when the application server tries to deserialize aninfoobject associated with theTimer. This occurs because the wrong classloader (threadContextClassLoader) is used to deserialize the object. - JBPAPP-3280
- When accessing the admin console
WARNmessages are generated in the logs, stating "Cannot get the process table information without native support". These messages can be safely ignored. In a future release of the admin console these messages will be changed toINFO. - JBPAPP-3133
- A bug in JVM implementations means that the JVM may crash when an incomplete deployment is overwritten by a new version of the deployment during hot deployment. For example, a deployment may contain a formatting error in a deployment descriptor. When deployed, the error is encountered and the deployment fails. If a corrected deployment is copied over the top of the erroneous deployment to replace it, the JVM may crash during hot deployment of the new version. The workaround for this issue is to remove the old, incompletely deployed archive before copying the new corrected deployment into the
deploydirectory. - JBPAPP-3036
- The
jboss_init_hpuxscript does not pick up environment variables when executed in the GNU bash shell. This is related to JBPAPP-2036: https://jira.jboss.org/jira/browse/JBPAPP-2306. - JBPAPP-3035
- The
-eand-Harguments of theshutdown.shscript cannot be used to directly terminate the JVM. - JBPAPP-2998
- When the server is started via a desktop icon, the machine's default Java set is used. This can cause exceptions when a Java version other than JDK 1.6 is set as the default. Users should ensure that JDK 1.6 is set as the default Java version before attempting to start JBoss Enterprise Web Platform via the desktop icon.
- JBPAPP-2894
- Setting the
hibernate.bytecode.providersystem property injpa-deployers-jboss-beans.xmlis unreliable. The workaround for this issue is to add-Dhibernate.bytecode.provider=cglibto$JAVA_OPTSinjboss-as-web/bin/run.conf. - JBPAPP-2871
- High CPU utilization and reduced performance and transaction throughput has been observed when MySQL 5.0.41 when optimized settings are in use, as described in JBQA-2610. We recommend upgrading to MySQL 5.0.86 and applying optimized settings as described in JBQA-2610 to reduce CPU utilization and increase performance.
- JBPAPP-2598
- Once the workaround for the JBAS-7049 issue is applied a new issue presents itself. A server running the security manager using OpenJDK 6 still fails to start, now with an access denied error. There is no currently known workaround for this issue.
- JBPAPP-2590
- An issue exists in the
policy.providerdefined in${JAVA_HOME}/jre/lib/security/java.securitywhen IBM JDK 6 is used. By defaultorg.apache.harmony.security.fortress.DefaultPolicyis used and this should bepolicy.provider=sun.security.provider.PolicyFile. The workaround for this issue is to manually make this adjustment. - JBPAPP-2576
- The MySQL JDBC driver does not currently implement XA Recovery correctly.
- JBPAPP-2027
- The server manager does not function correctly when OpenJDK 6 is used because a
NullPointerExceptioncheck is missing in OpenJDK 6. The workaround is to comment out the java.security.debug statement in theimports/server-config.xmlfile. - JBPAPP-2027
- The IBM distribution of JDK 6 does not support the
SSLv2Helloprotocol and generates a ERROR [AbstractKernelController] when used. It is currently recommended not to use this protocol.
- JBPAPP-5116
- When a custom JAAS security domain is created during the graphical installation process, the custom JAAS security domain continues to use
jmx-console-users.propertiesandjmx-console-roles.propertiesinstead of creating its own named users and roles properties files. - JBPAPP-4262
- After all files have been extracted during installation on Solaris 10 (both 32-bit and 64-bit architectures), the console displays an unnecessary request for a password. Installation will not proceed until the user presses .
- JBPAPP-4926
- Cascading tables containing auto-incremented primary keys were not saving correctly because tables were not being processed in the correct order in the save queue.One table (A) has an assigned primary key. A second table (B) is linked to Table A, has cascading enabled, and uses an auto-incremented primary key. When attempting to save Table B, Hibernate detects that Table A should be saved first and adds it to a save queue. Hibernate then attempts to save Table B immediately. This save operation fails, because to succeed Table B must obtain a primary key reference from Table A, which is null while it remains in the save queue.To work around this issue, disable table cascade and ensure that the table with the assigned primary key is saved before attempting to save a table with an auto-incremented primary key.
- JBPAPP-4895
- When a
refresh()method is invoked immediately prior to aninsert(), and second-level caching is enabled, the entity is inserted into the second-level cache. If therefresh()does not commit successfully, however, the cached data will not be automatically evicted. This occurs becauserefresh()does not track entity state. Since therefresh()operation is usually used for generated properties, one workaround for this issue is to use the@Generatedannotation. Another workaround is to manually evict the cache entry. - JBPAPP-4738
- The updated JDBC 3.0 driver for MS SQL Server 2008 now supports the following data types:
- time
- date
- datetime2
- datetimeoffset
For more information about these SQL Server types, see Date and Time Data Types and Functions (Transact-SQL).This type change causes theorg.hibernate.test.hql.ASTParserLoadingTesttest and theorg.hibernate.test.stateless.StatelessSessionTesttest to fail. The workaround for this issue is to define a new dialect, like so:public class SQLServer2008Dialect extends SQLServerDialect { public SQLServer2008Dialect() { registerColumnType( Types.DATE, "date" ); registerColumnType( Types.TIME, "time" ); registerColumnType( Types.TIMESTAMP, "datetime2" ); registerFunction( "current_timestamp", new NoArgSQLFunction("current_timestamp", Hibernate.TIMESTAMP,false) ); } } - JBPAPP-4731
- When an insert operation was performed using
jconn3.jar, null bit values were converted to0, so no exception was thrown. Sybase does not allow a null value for the bit datatype, so null bit values should result in exceptions.To work around this issue within Hibernate and persist the value as a null as intended, map type toorg.hibernate.test.where.NumericTrueFalseTypeinstead ofboolean, like so:type="org.hibernate.test.where.NumericTrueFalseType"
- JBPAPP-4334
- A bug in jConnect means that the
FetchingScrollableResultsImpl.isResultSetEmpty()method returns the following to determine if a ResultSet is empty:currentPosition == 0 && ! getResultSet().isBeforeFirst() && ! getResultSet().isAfterLast();
When the ResultSet is empty,FetchingScrollableResultsImpl.isResultSetEmpty()should return false but Sybase JDBC returns true. There is currently no workaround for this issue. - JBPAPP-4175
- When Hibernate executes a cacheable query using a
ResultTransformer, it will attempt to cache the results after applying theResultTransformer. However, the data may be modified so that Hibernate cannot read it. In this case, aClassCastExceptionwill occur when attempting to cache the results. - JBPAPP-3913
- From Oracle 11g R2 (RAC), the behavior of the CREATE TABLE statement changed such that when creating a conventional table in a database created with the default options, the initial segment is not created until the first row is inserted into the table (see http://download.oracle.com/docs/cd/E11882_01/server.112/e10595/tables002.htm#ADMIN13319 for details).As a result of this change, if the ID generator class is
sequence-identity, sequences created as default start with 2 or 4 instead of 1. To work around this issue:- Use a different ID generator class, or
- Disable deferred segment creation on Oracle by setting the initialization parameter
DEFERRED_SEGMENT_CREATIONtoFALSE. The CREATE TABLE statement has two new clauses (SEGMENT CREATION DEFERRED and SEGMENT CREATION IMMEDIATE), which override the value of theDEFERRED_SEGMENT_CREATIONparameter.
- 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. This is not a Hibernate bug, and is related to database configuration. See Bug Hunting for more information. The workaround for this issue is to avoid usingLockMode.UPGRADEon such queries. - JBPAPP-3483
- Hibernate does not currently log the execution time for each query. This is expected in future versions of JBoss Enterprise Web Platform.
- JBPAPP-3284
- This is an issue with cglib, which is deprecated in this release of JBoss Enterprise Web Platform. See
http://sourceforge.net/tracker/index.php?func=detail&aid=2796998&group_id=56933&atid=482368for more details. cglib removes field annotations when transforming a class withTransformingClassGeneratorbecause of a problem with thevisitFieldmethod. It is possible to work around this issue by annotating getters instead of fields, but this may not be possible for heavy applications ported to JBoss Enterprise Web Platform 5. - JBPAPP-3223
- Hibernate does not currently support tuple syntax in HQL or Criteria on databases which do not support tuple syntax. For example, if a database does not support tuple syntax:
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 on databases that do not support tuple syntax. - JBPAPP-3075
- If a database reserved keyword is used as a property name with a Hibernate Validator annotation (for example,
@Minor@Max), it will cause exceptions inSchemaExport, even if you specify a column name. This is because Hibernate ignores the name specified. The workaround is to map the property name to something that is not a database reserved keyword with the@Columnannotation. The fix for this issue is expected in Hibernate 4. - JBPAPP-3069
- The
QueryByExampleTest.testJunctionNotExpressionQBEtest fails in Sybase because ansinull is set to off by default. This test builds a disjunction predicate such as( OR^ (ex) (NOT ex) ). This should match everything in the database, but because ANSI SQL evaluates all comparisons involving NULL values as UNKNOWN, not all matches are returned. To work around this problem, append the following string to the JDBC URL:?SQLINITSTRING=set ansinull on
If this is not possible, an alternative is to execute the following Java code (or similar) after obtaining a Hibernate sessions:s.connection().createStatement().execute("set ansinull on"); - JBPAPP-3034
- When batch insert statements are ordered, embedded classes are not taken into account. There are two possible workarounds for this issue. The first is to set
ORDER_INSERTStoFALSEwhen embedded classes are used. The second option is to explicitly callsession.save()on child objects to enforce their SQL insertion orders. - JBPAPP-3032
- MySQL does not currently support millisecond and microsecond measurements when returning database values such as
TIMEandTIMESTAMP. - JBPAPP-3031
- On Sybase, the
current_timestamptext is not being recognized by the translator as a method mode. There is currently no way to work around this issue except to avoid relying upon function replacement forcurrent_timestamp. - JBPAPP-3030
- On Sybase,
SchemaExportcannot be used to create stored procedures while in while in chained transaction mode. The workaround for this case is to add the following code immediately after the definition of the new stored prodecure:<database-object> <create> sp_procxmode paramHandling, 'chained' </create> <drop/> </database-object> - JBPAPP-3010
- The
evict(Object)method inEntityRegionAccessStrategyandCollectionRegionAccessStrategyattempts to remove objects from the cache without regard for transaction isolation. This is currently unsupported because JBoss Cache'sremoveNodemethod does not deal with transactions. - JBPAPP-2945
- Setting the query timeout for a PreparedStatement is not supported by PostgreSQL 8.3.7. This limitation means that queries will fail if they use an annotation like the following:
@QueryHint(name = "org.hibernate.timeout", value = "100") - JBPAPP-2971
- Applications that map Hibernate to use
cglibas a byte provider fail to deploy because of ajava.lang.SecurityException. An error message similar to the following is displayed:Deployment "persistence.unit:unitName=lobtest.ear/ lobtest-ejb-1.0-SNAPSHOT.jar#lobtest-jpa-jndi" is in error due to the following reason(s): java.lang.SecurityException: class "com.redhat.gss.lobtest.jpa.Item$$EnhancerByCGLIB$$defd1a7f"'s signer information does not match signer information of other classes in the same packageThis occurs because thecglib.jarin JBoss Enterprise Web Platform is signed, and the cglib-instrumented proxy uses thecglib.jarsigner information instead of the signer information of the application target class.cglib is deprecated in the 5.1 release of JBoss Enterprise Web Platform. - JBPAPP-2867
- Sybase does not currently support Hibernate
Blobs orClobs, and Hibernate does not support Sybasetextorimagedata types. The workaround for this issue is to create user-defined types that map to the Sybasetextandimagetypes. - JBPAPP-2792
- Sybase fails to insert a new entity if it overflows its column. However, it does not throw an exception, so Hibernate cannot tell that the insert failed. One workaround for this issue is to use the
jconn3.jarwithDYNAMIC_PREPARE=trueset in the Hibernate configuration file.<property name="connection.url">jdbc:sybase:Tds:aurum:1503/masterDb? DYNAMIC_PREPARE=true</property>
Another workaround is to use thejconn4.jar. - JBPAPP-2789
SchemaExportfails on Oracle and Sybase when a redundant@Column(unique=true)orUniqueContraint(columnnames={...})annotation is used on a column that is implicitly defined as unique by the declared model. The workaround is to remove the redundant@Column(unique=true)orUniqueContraint(columnnames={...})annotation.- JBPAPP-2613
- When the DB2 version 9.7 driver is used with progressive streaming (the default), operations on
BlobandCloblocators fail. There are two possible workarounds to this issue:- Create a property file named
DB2JccConfiguration.properties, either on your class path or in a JAR on your class path. Add the following line to this file to disable progressive streaming on DB2:db2.jcc.override.progressiveStreaming=2
- Use the DB2 version 9.1 driver instead of DB2 version 9.7.
- JBPAPP-2408
- An issue exists with the DB2 v9.7 driver when using an identity or native ID generator with Hibernate. The
Statement.getGeneratedKeys()driver method in DB2 returns an empty resultset instead of the generated keys, which causes Hibernate to throw an exception that states that the database returned no natively generated identity value. This issue has been fixed in the version of DB2 9.7 JDBC driver released with Data Studio 2.2 and is available for download from the DB2 website. This is the recommended version for use with Hibernate. - JBPAPP-2278
- The
Saveoperation may fail when a transient entity is reachable by multiple paths and at least one of those paths does not cascade for theSaveopperation. The current workaround for this is to save the transient entity before executing the save that had previously failed. If this is not possible, another workaround is to modify either or both cascade and entity mappings to change the order of the cascade paths so that the transient entity is saved before it cascades to the entity that requires it to be non-transient. - JBPAPP-1895
- The Hibernate tests
JoinTest.javaandQueryAndSQLTest.javafail when testing 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 an appropriate data type, as described on the JIRA. - JBPAPP-1613
- Null values for columns mapped as
Booleanin Sybase are persisted as0instead ofnull. The workaround for this issue is to maptype="org.hibernate.test.where.NumericTrueFalseType"instead oftype="boolean". - JBPAPP-1554
- Sybase only allows only one entry (for example, column name or '*') in a subquery select list. The HQL function,
elements(), fails when the collection elements have a composite ID, because the generated SQL contains a subquery select list with multiple entries. The workaround is to avoid using HQLelements()if the elements have a composite key. Instead, reformulate the HQL so that no subquery has multiple entries in its select list. - JBPAPP-1545
- On Sybase, when a query has an ANSI join with three or more joins, and one join involves a union subclass, the query may fail with
SybSQLExceptionbecause a column is not within the scope of the joined table expression. The current recommendation is to avoid using join fetches that involve union subclasses. - JBPAPP-1230
- When a
DetachedCriteriais used as a subquery, the generated SQL contains a column alias in the subquery. On Sybase, aSybSQLExceptionis thrown because Sybase does not allow column aliases in subqueries. The workaround for this issue is to use an HQL query instead of aDetachedCriteriain a subquery. - JBPAPP-1123
- When
@OrderByis used on joined classes (using a join table), the generated SQL is invalid on MySQL, PostgreSQL, Oracle, and MSSQL because the "order by" clause qualifies the columns using the actual table name. The "order by" clause should use the table alias instead. - JBPAPP-1082
- When a
charproperty is used and it is not initialized, then Hibernate initializes it to0and persists a string containing the character\u0000. PostgreSQL throws an exception because it does not allow the character\u0000embedded in a string. There is currently no workaround for persisting\u0000in acharcolumn using PostgreSQL.To persist a NULL for an uninitializedcharproperty instead of\u0000, usejava.lang.Characterinstead of the primitivechartype. This avoids the exception when the property is initialized. Attempting to persist ajava.lang.Characterproperty that is set to\u0000still results in an exception. - JBPAPP-1071
- In some cases, when there are foreign key constraints defined on columns in a primary key,
SchemaExportincorrectly declares them as nullable when it generatesCREATE TABLEstatements. This fails on MSSQL, DB2, and Sybase because those databases require primary 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=falseto@JoinColumn - Add
optional=falseto@ManyToOne - Add an
@AttributeOverridewith@Column(name="mapkey", nullable=false)in case of a@CollectionOfElementsusing a Map - Add
nullable=falsein@Columnwhen inside a@CollectionIdor inside@MapKey
- JBPAPP-3463
- When an application is undeployed, sessions that were forwarded to the application server by mod_cluster before undeploy notification was received may result in an error 503 - This application is not currently available.
- MODCLUSTER-123
- If the
rootcontext ("/") is deployed and enabled, other contexts cannot be disabled. It is also impossible to specify that other contexts not be forwarded to therootcontext.
- JBPAPP-5021
- The
jbossws-cxf-installer/docs/Install.txtfile in the JBoss WS CXF installer incorrectly calls JBoss WS CXF a Technology Preview. The text ofInstall.txtshould be as follows:Simply run "ant" from the jbossws-cxf-installer directory extracted from the jbossws-cxf-installer.zip into your JBOSS_HOME for your JBoss Enterprise Platform.
- JBPAPP-4561
- With JBoss Web Services Native, when MTOM is enabled and the DataHandler getter signature of a return-type class does not match the JavaBean getter signature, the response will be sent as an inline string instead of using XOP. This occurs because scanning for attachment annotations is based on the JavaBean getter signature.
- JBPAPP-4506
- When services are deployed to JBoss Web Services Native, any XML Schema Declaration (XSD) imports with relative URLs are rewritten as absolute URLs relative to the WSDL service contract. If an imported XSD imports a second XSD using a relative path, this path is incorrectly rewritten to be relative to the XSD instead of the WSDL service contract. The workaround for this issue is to move all XSD and WSDL files into the same directory and change all the imports.
- JBPAPP-3028
- The upgrade from JBoss Web Services 2.0.1.SP to JBoss Web Services Native 3.1.2.SP incorporated many changes and new features. The additional processing time required for several new features (resource injection, support for
@PostConstructand@PreDestroy, etc.) has resulted in a slight degradation in overall performance.
- JBPAPP-3392
- EJB3 clients do not reuse existing socket connections on subsequent invocations; a new connection is created per invocation.
- JBPAPP-5038
- The
jettison.jarfile is not included in thejboss-ewp-5.1/resteasy/libdirectory ofjboss-ewp-noauth-5.1.0.zip. To work around this issue, use thejettison.jarfile included in the Seam distribution,jboss-ewp-5.1/seam/lib/jettison.jar. - JBPAPP-2993
- The
spring-hibernate-contactsexample fails with the errorjava.lang.IllegalArgumentException: object is not an instance of declaring class. This occurs because thegetContactById(@PathParam("id") Long id)method in theContactServiceImplclass is missing the @GET annotation.
- JBPAPP-4808
- Seam applications backed by POJO Cache with field-level session replication turned on can fail with an
InstantiationException. This is due to architectural features of POJO Cache, which requires specific functionality and behavior from clients in order to provide field-level session replication.A workaround exists. Add the following code to the JSF configuration (faces-config.xml)<context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>client</param-value> </context-param>>
- JBPAPP-4508
- When uploading files with <s:fileUpload> inside <h:dataTable>, errors occur which lead to identical filenames and incorrect content. This occurs because the local value is not returned by the
getLocalValue()method. - JBPAPP-4231
- A
NullPointerExceptionoccurs when undeploying or uninstalling Seam examples. It does not cause any application to shutdown, but this error should not occur. The issue is seen in the nestedbooking, dvdstore, itext and excel examples, but does not appear in ui example. - JBPAPP-3546
- The iText example contains a "Programming Skills" section. Items selected in the multi-select list are supposed to be included in the generated PDF. Due to a bug in iText, when multiple items are selected, only the first item is included in the generated PDF.
- JBPAPP-2385
- Seam's Spring example fails with an
IllegalStateExceptionwhen the login form is submitted on the IBM virtual machine. This is due to a defect in the IBM virtual machine. The fix for this issue has been deferred until the IBM virtual machine has been fixed. - JBPAPP-2377
- The Seamspace example fails with a
NullPointerExceptionwhen submitting a new blog entry on the IBM virtual machine. This is due to a defect in the IBM virtual machine. The fix for this issue has been deferred until the IBM virtual machine has been fixed.
- JBPAPP-4308
- The following classes have been added to the jboss-ejb3-deployer.jar:
org/jboss/ejb3/iiop/ org/jboss/ejb3/iiop/BeanCorbaServant.class org/jboss/ejb3/iiop/EJB3IIOPWebClassLoader.class org/jboss/ejb3/iiop/IORFactory$1.class org/jboss/ejb3/iiop/IORFactory$2.class org/jboss/ejb3/iiop/IORFactory.class org/jboss/as/ejb3/deployers/IORDeployer.classHowever, the @Remote* annotations in Enterprise Application Platform 'web' configuration and Enterprise Web Platform throw a NullPointerException. This is becausejboss-iiop.jaris not included in the web configuration, which is essentially the Enterprise Web Platform. - JBPAPP-4692
- The deployment of a persistence unit into an EAR will fail when the unit is outside of the EAR and the bean attempting to inject the persistence unit is within the EAR. The injection fails because the persistence unit cannot be found. This is expected behavior of the EJB3 spec. For strict EJB3-spec compliance, the persistence unit should be packaged within the EAR.A JBoss-specific behavior allows persistence units to exist outside EARs. This is configured in the file
deployers/ejb3.deployer/META-INF/jpa-deployer-jboss-beans.xmlunder a JBoss AS server profile. The relevant section is:<!-- Can be DefaultPersistenceUnitDependencyResolver for spec compliant resolving, InterApplicationPersistenceUnitDependencyResolver for resolving beyond EARs, or DynamicPersistencePersistenceUnitDependencyResolver which allows configuration via JMX. --> <bean name="PersistenceUnitDependencyResolver" class="org.jboss.jpa.resolvers.DynamicPersistenceUnitDependencyResolver"/>>By default, theDynamicPersistenceUnitDependencyResolver(https://svn.jboss.org/repos/jbossas/projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/resolvers/DynamicPersistenceUnitDependencyResolver.java) is used, which allows the spec-compliant behavior to be controlled through the MBean in the JMX Console. The spec-noncompliant JBoss variant search strategy can be found at https://svn.jboss.org/repos/jbossas/projects/jpa/trunk/deployers/src/main/java/org/jboss/jpa/resolvers/strategy/JBossSearchStrategy.java.
- JBPAPP-3795
- When an exploded archive that contains a 0-byte file (among other files) is deployed, a NullPointerException is thrown on the remote node. This aborts the farm deployment process. No workaround currently exists.
- JBPAPP-5048
- The mod_cluster manager module's status page is not updated upon worker node failover. This means that the worker is listed as active and available after it has failed.
- JBPAPP-4767
- The following error log messages are produced when the client unexpectedly closes the connection in AJP:
[error] [client <ip>] proxy: error processing body [error] proxy: dialog to 192.168.0.1:8009 (192.168.0.1) failedThese errors should be logged as warn or debug rather than error.