Release Notes 5.1.0
for use with JBoss Enterprise Application Platform 5.1.0
Copyright © 2010 Red Hat, Inc
Abstract
1. Introduction
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 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 Application Platform 5.1.0 maintains API-level compatibility with JBoss Enterprise Application Platform 5.0.0, the initial release of JBoss Enterprise Application Platform 5. Possible exceptions to this rule include fixes addressing critical security issues.
2. Features introduced with JBoss Enterprise Application Platform 5.1.0
2.1. Red Hat Enterprise Linux 6 Support
2.2. The Native Package
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.
2.3. JBoss Web Services
Note
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 Application Platform prior to 5.1, and is the default web services stack in JBoss Enterprise Application Platform 5.1.0.
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 Application Platform 5.1.0 introduces JBoss Web Services CXF stack as an optional Web Services stack.
2.4. Hibernate
2.5. PicketLink Federation
2.6. Features introduced in previous releases
2.6.1. Features introduced with JBoss Enterprise Application Platform 5.0.1
2.6.1.1. The Native Package
- 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 Application Platform.
2.6.1.1.1. Native Solaris SPARC Packages
2.6.2. Features introduced with JBoss Enterprise Application Platform 5.0
2.6.2.1. JBoss AS
2.6.2.2. JBoss Microcontainer
2.6.2.3. JBoss Messaging
2.6.2.4. JBoss Cache
2.6.2.5. JBoss Web Services Native
2.6.2.6. The Native Package
- 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
3. Component Versions
Table 1. Component version comparison between releases 5.1.0 and 5.0.1
Component | EAP 5.1 | EAP 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 Messaging | 1.4.7.GA | 1.4.6.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 |
Note
4. Installation Notes
4.1. Supported Configurations
4.2. Installing JBoss Enterprise Application Platform
4.3. Default Startup Profile
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.
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.
4.4. Source Files
5. Product Support
6. Documentation
jboss-eap-docs-<version>.zip
.
7. Technology Previews
Warning
7.1. PicketLink
8. Excluded, Removed and Deprecated Items
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.
8.1. Excluded Items
8.2. Deprecated Items
- 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
8.3. Removed Items
9. Issues fixed in this release
9.1. General Fixed Issues
- 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
-javaagent
Java option caused systems to hang when executing therun.sh
script. The script passed user supplied parameters to Java while making a call to check for the system architecture. Therun.sh
script 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-3942
- The
run.sh
script 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.war
webapp's security. It solves the original problem of securing, and leaves the /status intact. - JBPAPP-2571
- Running the Microsoft SQL server with Microsoft JDBC drivers 2.0 causes unstable builds in JBoss Messaging. This issue is created by the
Adaptive Buffering
being the default behavior for the driver as this only allows for large values ot be read once by using theget<Type>Stream
method. The current workaround for this issue is to change theresponseBuffering
parameter of the JDBC connection URL from beingadaptive
, to beingfull
(as it was for version 1.2 of the JDBC driver).<url>jdbc:sqlserver://[host];database=[database];responseBuffering=full;</url>
- JBPAPP-1774
- Red Hat Enterprise Linux 5 users installing the JBoss Enterprise Application 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 Application Platform with either the Sun or the IBM Java Development Kit.
9.2. Hibernate Fixed Issues
- JBPAPP-4579
- Using
session.createSQLQuery
caused a memory leak because theequals
andhashCode
methods inNativeSQLQuerySpecification
were incorrectly implemented, and concurrent use ofLRUMap
caused 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.SerializableType
reported the classloader ofjava.io.Serializable
as 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
@CollectionId
describes an identifier column for a bag (an idbag, for example).nullable
should have been set to false explicitly. This has been corrected, andnullable
is now set tofalse
by default.- JBPAPP-4123
- PostgreSQL failed to drop
SchemaExport
if constraint names changed. Hibernate now issues a cascade when it tries to drop a table, fixing the issue. - JBPAPP-4105
- Hibernate uses
StandardDialectResolver
to guess the Hibernate dialect if thehibernate.dialect
property is not found in the Hibernate properties file,hibernate.cfg.xml
, orpersistence.xml
.StandardDialectResolver
returnedSybaseDialect
if the database name it extracted from database metadata isSybase SQL Server
orAdaptive Server Enterprise
. However, becauseSybaseDialect
is deprecated, this caused some problems. TheStandardDialectResolver
now guesses the correct dialect to use ifhibernate.dialect
is 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 (`),
@JoinTable
and@JoinColumn
mappings failed withAnnotationException
when the column name with backticks was referenced. Hibernate now compares thereferencedColumnName
with the column's quote name rather than the table column's name. - JBPAPP-4022
getColumnSpan
returned0
when comparing entities withOneToOne
mappings, even when comparing the same entity, which resulted inTypeMismatchException
s. The algorithm ofgetColumnSpan
has changed so that the column span can be identified by its identifier or unique key type.- JBPAPP-3946
LikeExpression
did not handle theignoreCase
flag properly whenignoreCase
was set to false. The correct SQLproperty like ?
was built, but the flag insidegetTypedValues
was not used, and a lowercase value was always produced. This issue has been fixed, and lowercase or the original case is used whenignoreCase
is 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.OneToOneSecondPass
code sometimes caused anorg.hibernate.PropertyValueException
when processing a one-to-one mapping. The exception occurred because when JOINs did not containotherSideProperty
,otherSideJoin
retained old data instead of being null. Theorg.hibernate.cfg.OneToOneSecondPass
code 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.)
AbstractCollectionPersister
now 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, aHibernateException
was 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
HashMaps
andHashSets
for 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.ResultSetWrapper
org.hibernate.lob.BlobImpl
to implementjava.sql.Blob
org.hibernate.lob.ClobImpl
org.hibernate.lob.SerializableBlob
org.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.
9.3. Remoting Fixed Issues
- JBPAPP-3709
- When
org.jboss.remoting.marshal.MarshallerLoaderHandler
got a request for a class, it returned an instance oforg.jboss.remoting.loading.ClassBytes
. IfMarshallerLoaderHandler
was unable to find the desired class, then the returnedClassBytes
object had a null value for the class byte array. However,org.jboss.remoting.loading.ClassByteClassLoader
does not check for the possibility of a null byte array, so aNullPointerException
resulted. JBREM-1184, which caused this issue, has been fixed.
9.4. Seam Fixed Issues
- JBPAPP-4876
- On injection of a jBPM
ProcessInstance
to 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 theautoSaveProcessesList
when it closes. The code for returning aProcessInstance
on 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
getInstanceFromFactory
method to fix a concurrency issue caused some applications to enter a deadlock situation in a very specific combination of circumstances. The original fix togetInstanceFromFactory
was revised, and the issue has not been observed since. - JBPAPP-4568
- Seam was distributed with a copy of
activation.jar
in its/lib
directory. 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
MockServletContext
was unaware that JBoss Enterprise Application Platform 5 used the Virtual File System. It therefore attempted to access URIs as files.MockServletContext
now recognizes the web application root and fetches the path of the URL class, ensuring that the protocol does not form part of thejava.io.File
constructor 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.coerceToType
was called with anBigDecimal
instance as the first Parameter 'obj' andBigDecimal.class
as type, theBigDecimal
would be converted into a double and back into aBigDecimal
which would lead to a different value being returned.This was addressed upstream, and was fixed in JBoss Enterprise Application 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.EjbSynchronizations
did 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.SUPPORTS
has been replaced withTransactionsAttributeType.REQUIRED
.- JBPAPP-4006
org.jboss.seam.core.Interpolator
did 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
topicConnection
field in theSubscriptionRegistry
object 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.AsynchronousExceptionHandler
when handling "Exeception thrown while executing asynchronous call". "Exeception" should be "Exception". This has been fixed. - JBPAPP-4003
- Requirements have changed between JBoss Enterprise Application Platform 4.x and JBoss Enterprise Application Platform 5.x such that page-level
messages.properties
in theResourceLoader
must be stored inMETA-INF/classes
or they will not work. The documentation is not explicit about this. This issue has been fixed. - JBPAPP-4002
Initialization.redeploy
included 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
testCreateBlog
failed with aNullPointerException
on IBM JDK 1.6. The getIdentifier method now behaves correctly on JDK 1.6. - JBPAPP-3769
- In profiles other than
production
,MockResponseStateManager
did 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
AuthenticationFilter
split 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.tld
injboss-seam.ui.jar/MANIFEST.MF
contained 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
EJBTransactionRolledbackException
when 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.
9.5. Security Fixed Issues
- JBPAPP-4144
- The /status servlet was accessible from
http://localhost:8080/status?full=true
without authentication. (CVE-2008-3273)This issue has been fixed and the servlet now requires authentication.
9.6. Application Server Fixed Issues
- JBPAPP-4244
- The parsing and deploying mechanism for
hibernate.cfg.xml
was 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.Hibernate
objects via a newsetProperties(Set<BaseNamedElement>)
method. Thestart()
method then builds the configuration from that set of properties.
9.7. Documentation Fixed Issues
- 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.bat
script. 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 Application Platform and should be considered obsolete.The documentation how now been fixed and updated.
9.8. Messaging Fixed Issues
- JBPAPP-4135
ServerConsumerEndpoint.localClose()
threw aNullPointerException
during shutdown. This has been corrected with an updated version of JBoss Messaging.- JBPAPP-3157
- When unicode multibyte characters are used in a message Selector, JBoss Messaging throws a TokenMgrError.This issue has been fixed, and multibyte characters are now allowed.
- JBPAPP-3003
- When JBoss Transactions is upgraded from version 4.4.0 to version 4.6.1, the JBoss Messaging
XAResourceRecoveryTest
fails. The test is meant to simulate a failure during the commit process to prompt the Recovery Manager to recover the transaction, but with JBoss Transactions 4.6.1, the transaction is not recovered.This issue has been fixed and a new test has been created to work with the change in transactions behaviour.
9.9. Web Services Fixed Issues
- 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.
9.10. RESTEasy Fixed Issues
- JBPAPP-4061
- An
IndexOutOfBoundsException
occurred in thePOJOResourceFactory
because the interface was annotated instead of the implementation. Support has been added for annotated interfaces.
9.11. Clustering Fixed Issues
- 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.
9.12. Cache Fixed Issues
- JBPAPP-4254
- ha-server-cache-jbc has been upgraded to 2.0.3.Final.
9.13. Connector Fixed Issues
- 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. - MODCLUSTER-113
org.jboss.modcluster.demo.servlet.ThreadCountLoadServlet
has been removed from mod_cluster but is still specified in theweb.xml
file belonging toload-demo.war
. This results in deployment errors. This issue has been fixed and the non-existent servlet has been removed.
10. Known Issues with this release
10.1. Unsupported JARs
client/hornetq-core-client.jar
client/hornetq-jms-client.jar
hornetq
RPM is likewise unsupported in this release.
10.2. General Known Issues
- 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/server/$PROFILE/deploy/ROOT.war/WEB-INF/jboss-web.xml
file. 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-5014
- The web profile incorrectly includes a recovery setting for JBoss Messaging, which is not part of the web profile. This results in
ClassNotFoundException
s inserver.log
.To work around this issue, remove the following lines fromjbossts-properties.xml
:<property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING1" value="org.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/DefaultJMSProvider"/>
- JBPAPP-4542
- The locations of
jbosssx.jar
,jboss-javaee.jar
,jboss-security-spi.jar
, andjbosssx-server.jar
have changed in this release due to a security fix. In this release they have been relocated tojboss-as/lib/
. Any scripts that rely on the location ofjbosssx.jar
should 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 Application 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 Application Platform 5.1.0 and can be downloaded from Red Hat Support.
- 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.NotFoundException
is thrown. This exception should be ignored and the field considered non-existent. - JBPAPP-4130
- An
org.jboss.ejb3.stateless.StatelessDelegateWrapper
cannot be assigned to anorg.jboss.system.ServiceMBean
when 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.xml
to 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.valueOf
attemps 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.MailService
is configured and bound to JNDI, theSessionObjectFactories
properties are overwritten. This means that when multipleMailService
configurations exist, allMailService
s bound to JNDI will have the properties of the most recently configuredMailService
in their Session. - JBPAPP-3308
- In isolated deployments, a
ClassNotFoundException
is thrown when the application server tries to deserialize aninfo
object associated with theTimer
. This occurs because the wrong classloader (threadContextClassLoader
) is used to deserialize the object. - JBPAPP-3280
- When accessing the admin console
WARN
messages 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
deploy
directory. - JBPAPP-3036
- The
jboss_init_hpux
script 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
-e
and-H
arguments of theshutdown.sh
script 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 Application Platform via the desktop icon.
- JBPAPP-2894
- Setting the
hibernate.bytecode.provider
system property injpa-deployers-jboss-beans.xml
is unreliable. The workaround for this issue is to add-Dhibernate.bytecode.provider=cglib
to$JAVA_OPTS
injboss-as/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.provider
defined in${JAVA_HOME}/jre/lib/security/java.security
when IBM JDK 6 is used. By defaultorg.apache.harmony.security.fortress.DefaultPolicy
is 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
NullPointerException
check is missing in OpenJDK 6. The workaround is to comment out the java.security.debug statement in theimports/server-config.xml
file. - JBPAPP-2027
- The IBM distribution of JDK 6 does not support the
SSLv2Hello
protocol and generates a ERROR [AbstractKernelController] when used. It is currently recommended not to use this protocol.
10.3. Installer Known Issues
- 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.properties
andjmx-console-roles.properties
instead 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 Enter.
10.4. Hibernate Known Issues
- 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@Generated
annotation. 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.ASTParserLoadingTest
test and theorg.hibernate.test.stateless.StatelessSessionTest
test 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.NumericTrueFalseType
instead 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, aClassCastException
will 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_CREATION
toFALSE
. The CREATE TABLE statement has two new clauses (SEGMENT CREATION DEFERRED and SEGMENT CREATION IMMEDIATE), which override the value of theDEFERRED_SEGMENT_CREATION
parameter.
- 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.UPGRADE
on such queries. - JBPAPP-3483
- Hibernate does not currently log the execution time for each query. This is expected in future versions of JBoss Enterprise Application Platform.
- JBPAPP-3284
- This is an issue with cglib, which is deprecated in this release of JBoss Enterprise Application Platform. See
http://sourceforge.net/tracker/index.php?func=detail&aid=2796998&group_id=56933&atid=482368
for more details. cglib removes field annotations when transforming a class withTransformingClassGenerator
because of a problem with thevisitField
method. 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 Application 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,
@Min
or@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@Column
annotation. The fix for this issue is expected in Hibernate 4. - JBPAPP-3069
- The
QueryByExampleTest.testJunctionNotExpressionQBE
test 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_INSERTS
toFALSE
when 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
TIME
andTIMESTAMP
. - JBPAPP-3031
- On Sybase, the
current_timestamp
text 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,
SchemaExport
cannot 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 inEntityRegionAccessStrategy
andCollectionRegionAccessStrategy
attempts to remove objects from the cache without regard for transaction isolation. This is currently unsupported because JBoss Cache'sremoveNode
method 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
cglib
as 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 package
This occurs because thecglib.jar
in JBoss Enterprise Application Platform is signed, and the cglib-instrumented proxy uses thecglib.jar
signer information instead of the signer information of the application target class.cglib is deprecated in the 5.1 release of JBoss Enterprise Application Platform. - JBPAPP-2867
- Sybase does not currently support Hibernate
Blob
s orClob
s, and Hibernate does not support Sybasetext
orimage
data types. The workaround for this issue is to create user-defined types that map to the Sybasetext
andimage
types. - 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.jar
withDYNAMIC_PREPARE=true
set 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
SchemaExport
fails 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
Blob
andClob
locators 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
Save
operation may fail when a transient entity is reachable by multiple paths and at least one of those paths does not cascade for theSave
opperation. 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.java
andQueryAndSQLTest.java
fail 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
Boolean
in Sybase are persisted as0
instead 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
SybSQLException
because 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
DetachedCriteria
is used as a subquery, the generated SQL contains a column alias in the subquery. On Sybase, aSybSQLException
is thrown because Sybase does not allow column aliases in subqueries. The workaround for this issue is to use an HQL query instead of aDetachedCriteria
in a subquery. - JBPAPP-1123
- When
@OrderBy
is 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
char
property is used and it is not initialized, then Hibernate initializes it to0
and persists a string containing the character\u0000
. PostgreSQL throws an exception because it does not allow the character\u0000
embedded in a string. There is currently no workaround for persisting\u0000
in achar
column using PostgreSQL.To persist a NULL for an uninitializedchar
property instead of\u0000
, usejava.lang.Character
instead of the primitivechar
type. This avoids the exception when the property is initialized. Attempting to persist ajava.lang.Character
property that is set to\u0000
still results in an exception. - JBPAPP-1071
- In some cases, when there are foreign key constraints defined on columns in a primary key,
SchemaExport
incorrectly declares them as nullable when it generatesCREATE TABLE
statements. 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=false
to@JoinColumn
- Add
optional=false
to@ManyToOne
- Add an
@AttributeOverride
with@Column(name="mapkey", nullable=false)
in case of a@CollectionOfElements
using a Map - Add
nullable=false
in@Column
when inside a@CollectionId
or inside@MapKey
10.5. JBoss Messaging Known Issues
- JBPAPP-5124
- When using Sybase database with the JDBC driver Sybase jConnect JDBC driver v7 (Build 26502), a
MaxParams
attribute in thesybase-persistence-service.xml
configuration file cannot be set higher than481
due to a limitation of thePreparedStatement
class in this driver. Unexpected failures can occur when theMaxParams
attribute is set to a value higher than481
. To avoid this issue, setMaxParams
to a smaller value than481
. - JBPAPP-4668 (previously JBPAPP-3965)
- Two JBoss Messaging Test Suite tests fail on Oracle 11g R1, R2 and RAC with the latest JDBC driver, version 11.2.0.1.0:
- QueueManagementTest.testDestroyDestinationProgrammatically
- QueueManagementTest.testDestroyDestinationProgrammaticallyWithParams
These tests use a large value for the fullSize queue configuration parameter, which is passed to thesetFetchSize
method on thejava.sql.PreparedStatement
. A problem with the JDBC driver means that more than the usual amount of memory is consumed whenexecuteQuery()
is called, which results in ajava.lang.OutOfMemoryError
, causing the test to fail. - JBPAPP-3904
- Oracle JDBC driver version 11.1.0.7.0 causes the JBoss Messaging Test Suite to fail with a
SQLException
("Bigger type length than Maximum") on Oracle 11g R1. This is caused by a regression in Oracle JDBC driver 11.1.0.7.0. We recommend Oracle JDBC driver version 11.2.0.1.0 for use with Oracle 11g R1, Oracle 11g R2, Oracle RAC 11g R1 and Oracle RAC 11g R2. - JBPAPP-3352
- If a message-driven bean is deployed with the default settings ((useDLQ=true, DLQMaxResent=5) and message redelivery is prompted, messages remain in the queue in a "delivering" state even after the message is delivered to the dead letter queue. The workaround for this issue is to disable the use of the dead letter queue: useDLQ=false.
- JBPAPP-2033
EnableMessageCounters
on thejboss.messaging.ServerPeer
JMX interface, cannot be set totrue
. A workaround to enable message counters is to invoke theenableMessageCounters()
operation on the same JMX interface.
10.6. JBoss Web Services Known Issues
- JBPAPP-5021
- The
jbossws-cxf-installer/docs/Install.txt
file in the JBoss WS CXF installer incorrectly calls JBoss WS CXF a Technology Preview. The text ofInstall.txt
should 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
@PostConstruct
and@PreDestroy
, etc.) has resulted in a slight degradation in overall performance.
10.7. Remoting Known Issues
- JBPAPP-3392
- EJB3 clients do not reuse existing socket connections on subsequent invocations; a new connection is created per invocation.
10.8. RESTEasy Known Issues
- JBPAPP-5038
- The
jettison.jar
file is not included in thejboss-eap-5.1/resteasy/lib
directory ofjboss-eap-noauth-5.1.0.zip
. To work around this issue, use thejettison.jar
file included in the Seam distribution,jboss-eap-5.1/seam/lib/jettison.jar
. - JBPAPP-2993
- The
spring-hibernate-contacts
example fails with the errorjava.lang.IllegalArgumentException: object is not an instance of declaring class
. This occurs because thegetContactById(@PathParam("id") Long id)
method in theContactServiceImpl
class is missing the @GET annotation.
10.9. Seam Known Issues
- 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
NullPointerException
occurs 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
IllegalStateException
when 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
NullPointerException
when 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.
10.10. EJB3 Known Issues
- 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.class
However, the @Remote* annotations in Enterprise Application Platform 'web' configuration and Enterprise Web Platform throw a NullPointerException. This is becausejboss-iiop.jar
is 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.xml
under 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.
10.11. Clustering Known Issues
- 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.
10.12. Connector Known Issues
- 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) failed
These errors should be logged as warn or debug rather than error. - 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
root
context ("/
") is deployed and enabled, other contexts cannot be disabled. It is also impossible to specify that other contexts not be forwarded to theroot
context.
A. Revision History
Revision History | |||
---|---|---|---|
Revision 5.1.0-111.400 | 2013-10-31 | Rüdiger Landmann | |
| |||
Revision 5.1.0-111 | 2012-07-18 | Anthony Towns | |
| |||
Revision 5.1.0-1 | Wed Nov 10 2010 | Laura Bailey | |
| |||
Revision 5.1.0-0 | Fri Oct 15 2010 | Laura Bailey | |
|