8.  Known Issues with this release

Following is a list of known issues at the time of release.
General Known Issues
  • JBPAPP-3673: The current JBoss Operations Network (version 2.3) has several known issues when used with JBoss Enterprise Web Platform. JBoss ON support for Enterprise Web Platform is planned for a future release of JBoss ON.
  • 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 the shutdown.sh script cannot be used to directly terminate the JVM.
  • JBPAPP-3029: The jboss_init_redhat.sh script is used to start and stop a server instance under a given user name. When using a non-loopback bind address, calling jboss_init_redhat.sh stop results in a CommunicationException because of a missing hostname parameter for the remote server the script attempts to contact.
  • 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 used.
  • JBAS-7049: The server manager does not function correctly when Open JDK 6 is used because a NullPointerException check is missing in Open JDK 6. The workaround is to comment out the java.security.debug statement in the imports/server-config.xml file.
  • JBPAPP-2598: Once the workaround for the JBAS-7049 issue is applied a new issue presents itself. A server running the surity manager using Open JDK 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 default org.apache.harmony.security.fortress.DefaultPolicy is used and this should be policy.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-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-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-2765: LoadMgr3 logs a failure to load a class as an error even when the failure to load is expected and intentional. (Seam, for example, catches exceptions in order to disable unnecessary components if a particular class is not found.)
  • JBPAPP-2894: Setting the hibernate.bytecode.provider system property in jpa-deployers-jboss-beans.xml is unreliable. The workaround for this issue is to add -Dhibernate.bytecode.provider=cglib to $JAVA_OPTS in jboss-as/bin/run.conf.
  • JBPAPP-2818: The current main/src/bin/run.sh does not allow users to override $JBOSS_HOME/bin/run.conf with a profile-specific $JBOSS_HOME/server/$PROFILE/run.conf.
  • JBPAPP-2713: org.jboss.test.xml.DDValidatorUnitTestCase constantly fails and crashes the Java Virtual Machine. The workaround for this issue is to disable the JIT compiler by setting JAVA_COMPILER=NONE or using the command line switch -Djava.compiler=NONE.
  • JBAS-6966: 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.
Hibernate Known Issues
  • 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 to FALSE when embedded classes are used. The second option is to explicitly call session.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 and TIMESTAMP.
  • 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 for current_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-2791: Applications that map Hibernate to use cglib as a byte provider fail to deploy because of a java.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 the cglib.jar in JBoss Enterprise Web Platform 5.0 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.0 and can be downloaded from Red Hat Support.
  • JBPAPP-2957: The evictAll() method in EntityRegionAccessStrategy and CollectionRegionAccessStrategy attempts to remove objects from the cache without regard for transaction isolation. Disregarding transaction isolation is currently unsupported because JBoss Cache is allowed visibility to any active transaction and will therefore use the transaction to control access to data in the cache.
  • 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-2892: When Enterprise JavaBean 3.0 entities are used with optimistic caching, org.jboss.ejb3.entity.OptimisticJBCCache.DataVersionAdapter.newerThan incorrectly returns true for A.newerThan ( A ). This causes a DataVersioningException when JBoss Cache attempts to remove the entry. The workaround for this issue is to use Multiversion Concurrency Control (mvcc-entity) instead of optimistic caching. This is recommended even if the exception has not been observed.
  • JBPAPP-2867: Sybase does not currently support Hibernate Blobs or Clobs, and Hibernate does not support Sybase text or image data types. The workaround for this issue is to create user-defined types that map to the Sybase text and image types.
  • JBPAPP-2789: ShemaExport fails on Oracle and Sybase when a redundant @Column(unique=true) or UniqueContraint(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) or UniqueContraint(columnnames={...}) annotation.
  • JBPAPP-2613: When the DB2 v9.7 driver is used with progressive streaming (the default), operations on Blob and Clob locators fail. The workaround is to disable progressive streaming using connection properties, as recommended in the linked JIRA issue.
  • 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 the Save 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-2277: Hibernate uses ClassLoader.loadClass() for arrays, which is no longer supported by default as of Java 6. The current workaround for this issue is to use the -Dsun.lang.ClassLoader.allowArraySyntax=true property. This workaround is implemented by default as the default in jboss-eap-5.0/jboss-as/run.conf.
  • JBPAPP-2276: The iteration order of HashMaps and HashSets for JDK 6 causes the order of columns in union clauses or union subclasses to differ depending on whether JDK 5 or 6 is used. Since the change in column order is consistent across union clauses, the resulting queries are valid; however, this change can potentially affect performance.
  • JBPAPP-2275: Hibernate cannot be compiled under JDK 6. This occurs because the following classes require methods to be added in order to fully implement JDK 6 interfaces:
    • org.hibernate.jdbc.ResultSetWrapper
    • org.hibernate.lob.BlobImpl to implement java.sql.Blob
    • org.hibernate.lob.ClobImpl
    • org.hibernate.lob.SerializableBlob
    • org.hibernate.lob.SerializableClob
    If the application you are running requires a method missing from the above classes, a NoSuchMethodError will be generated.
  • JBPAPP-2922: Hibernate warns that The CGLIB BytecodeProvider impl is considered deprecated and not recommended for use. cglib is not deprecated, so this warning can be safely ignored.
  • 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. To work around this issue, the application must validate entity properties to ensure that they do not overflow the underlying column.
  • JBPAPP-2791: SchemaUpdates fail in Sybase ASE 15 tables when a new column is added without a default value. To work around this issue, ensure that a default value is included when adding new columns with SchemaUpdate.
  • JBPAPP-1613: Null values for columns mapped as Boolean in Sybase are persisted as 0 instead of null. The workaround for this issue is to map type="org.hibernate.test.where.NumericTrueFalseType" instead of type="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 HQL elements() if the elements have a composite key. Instead, reformulate the HQL so that no subquery has multiple entries in its select list.
  • JBPAPP-1547: org.hibernate.dialect.SybaseASE15Dialect.areStringComparisonsCaseInsensitive() returns false and is not overridden by SybaseDialect.
  • 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-2858: getSingleResult() fails for some databases and queries when automatic pagination is attempted. The workaround for this issue is to use getResultList() instead of getSingleResult().
  • JBPAPP-1998: EntityNotFoundException is incorrectly thrown upon an optimistic locking failure when one EntityManager tries to delete an entity that has been updated by a different EntityManager and hibernate.jdbc.batch_versioned_data is set to false (the default value). OptimisticLockException should be thrown instead.
  • JBPAPP-1230: When a DetachedCriteria is used as a subquery, the generated SQL contains a column alias in the subquery. On Sybase, a SybSQLException is thrown because Sybase does not allow column aliases in subqueries. The workaround for this issue is to use an HQL query instead of a DetachedCriteria 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 to 0 and persists a string containing the character \u0000. PostgreSQL throws an exception because it does not allow character \u0000 embedded in a string. An email thread describing this problem is available from:
    • http://markmail.org/message/jvzlzxw6ui2rcsmv#query:\u0000%20postgresql+page:1+mid:gpu34f4iwanbyjqh+state:results
    There is currently no workaround for persisting \u0000 in a char column using PostgreSQL.
    If the user intends to persist a NULL for an uninitialized char property instead of \u0000, then java.lang.Character should be used instead of the primitive char type. This avoids the exception when the property is initialized. Attempting to persist a java.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 generates CREATE 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
  • JBPAPP-3010: The evict(Object) method in EntityRegionAccessStrategy and CollectionRegionAccessStrategy attempts to remove objects from the cache without regard for transaction isolation. This is currently unsupported because JBoss Cache's removeNode method does not deal with transactions.
  • JBPAPP-3019: The doc/examples/jboss-web-services-examples context causes a number of exceptions to occur. This context error means that the JBoss Web Services examples will not work correctly.
JBoss Web Services Known Issues
  • 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.
RESTEasy Known Issues
  • JBPAPP-3802: the readme file for the JAXB/JSON example located at doc/examples/resteasy-examples/jaxb-json/README.txt contains the wrong Maven goal. The following text is incorrect:
    - mvn jetty6:run-exploded
    It should read as follows:
    - mvn jetty:run-exploded
Seam Known Issues
  • JBPAPP-3572: The Seam todo example application cannot be deployed because bsh.jar is not included as part of JBoss Enterprise Web Platform. Attempting to deploy this example application will result in a java.lang.NoClassDefFoundError.
  • JBPAPP-3562: Seam integration with jBPM currently requires that bsh-1..0.jar be added to your application's lib directory. You can download this JAR file from http://repository.jboss.org/maven2-brew/org/beanshell/bsh/1.3.0/bsh-1.3.0.jar.
  • JBPAPP-3561: The Seam remoting/chatroom example was included in this distribution, but cannot be deployed on JBoss Enterprise Web Platform because it relies on JBoss Messaging functionality.
  • JBPAPP-3543: The Seam seambay example cannot be deployed because quartz.jar is not included as part of JBoss Enterprise Web Platform.
  • JBPAPP-3541: Seam cannot be compiled from source because its root.pom.xml references an incorrect version of javax.transaction:jta:jar.
  • 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.
  • JBPAPP-3001: The seam script included in this distribution does not have an executable permission set. An executable permission set is planned for inclusion in the next release of JBoss Enterprise Web Platform 5.
mod_cluster Known Issues
  • JBPAPP-3724: In mod-cluster-jboss-beans.xml, the default value for maxAttempts is incorrectly set to -1. This value is invalid. The correct value, 1, is used by default.
  • 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 the root context.
  • MODCLUSTER-120: Should you encounter an [emerg] create_mem_node <node file path> failed error, use the ipcrm -m command before restarting httpd.
  • MODCLUSTER-113: org.jboss.modcluster.demo.servlet.ThreadCountLoadServlet has been removed from mod_cluster but is still specified in the web.xml file belonging to load-demo.war. This results in deployment errors. The workaround for this issue is to remove the <servlet> and <servlet-mapping> sections for the threads servlet.