8.  Known Issues with this release

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

  • JBPAPP-3929: When java.sql.Date.valueOf attemps to parse dates of the format yyyy-mm-dd, the TCK test threw a java.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, the SessionObjectFactories properties are overwritten. This means that when multiple MailService configurations exist, all MailServices bound to JNDI will have the properties of the most recently configured MailService in their Session.
  • 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. The workaround for this issue is to remove the /status mapping from ROOT.war/web.xml as described in the JIRA.
  • 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 the shutdown.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-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 the get<Type>Stream method. The current workaround for this issue is to change the responseBuffering parameter of the JDBC connection URL from being adaptive, to being full (as it was for version 1.2 of the JDBC driver).
    <url>jdbc:sqlserver://[host];database=[database];responseBuffering=full;</url>
    
  • 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 security 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 logged a failure to load a class as an error even when the failure to load was expected and intentional. (Seam, for example, catches exceptions in order to disable unnecessary components if a particular class is not found.) Failure to load a class is now logged as a warning instead of an error.
  • 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-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.
  • 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.
    OpenJDK is included in the Red Hat Enterprise Linux 5 base channel, but should not be used to install JBoss Enterprise Application Platform. Users who wish to use OpenJDK should first install JBoss Enterprise Application Platform with the Sun or IBM JDK:
    yum install jbossas
    Then use alternatives for java and javac:
    alternatives --config java
    alternatives --config javac
    Switch to OpenJDK by selecting it from the list presented by alternatives.
  • 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-4175: When Hibernate executes a cacheable query using a ResultTransformer, it will attempt to cache the results after applying the ResultTransformer. However, the data may be modified so that Hibernate cannot read it. In this case, a ClassCastException will occur when attempting to cache the results.
  • JBPAPP-4123: PostgreSQL fails to drop SchemaExport if constraint names change.
  • JBPAPP-4105: Hibernate uses StandardDialectResolver to guess the Hibernate dialect if the hibernate.dialect property is not found in the Hibernate properties file, hibernate.cfg.xml, or persistence.xml. StandardDialectResolver returns SybaseDialect if the database name it extracts from database metadata is Sybase SQL Server or Adaptive Server Enterprise. However, because SybaseDialect has been deprecated, this can cause some problems. To work around this issue, set the hibernate.dialect property to the correct dialect.
  • JBPAPP-4095: When scrolling a HQL query with join fetch on a collection, FetchingScrollableResultsImpl.last() does not move to the last result if the cursor is positioned after the last result. Instead, the cursor stays in position after the last result. This can cause org.hibernate.exception.GenericJDBCException: could not perform sequential read of results.
  • JBPAPP-4088: When a column name is defined in backticks (`), @JoinTable and @JoinColumn mappings fail with a AnnotationException when the column name with backticks is referenced. The following fails:
    @JoinTable(name = "SYS_GROUPS_USERS", joinColumns = @JoinColumn(name = "USERID", referencedColumnName = "`uid`"), inverseJoinColumns = @JoinColumn(name = "GROUPID", referencedColumnName = "GROUPID"))
    Whereas the following succeeds:
    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "SYS_GROUPS_USERS", joinColumns = @JoinColumn(name = "USERID"), inverseJoinColumns = @JoinColumn(name = "GROUPID"))
    The workaround for this issue is not to specify the referencedColumnName where it refers to the primary key, since Hibernate will choose the primary key automatically.
  • JBPAPP-4022: getColumnSpan returns 0 when comparing entities with OneToOne mappings, even when comparing the same entity, which results in a TypeMismatchException. To work around this issue, change the mapping to ManyToOne.
  • JBPAPP-3946: LikeExpression does not handle the ignoreCase flag properly when ignoreCase is set to false. It builds the correct SQL property like ?, but does not use the flag inside getTypedValues. A lowercase value is always produced.
  • JBPAPP-3913: In Oracle 11g R2 (both RAC and standalone), a sequence may start at 2 instead of 1. The root cause is still under analysis.
  • JBPAPP-3911: In Oracle 11g R2 (both RAC and standalone), a complex query with LockMode.UPGRADE (that is, "for update") may cause a "No more data to read from socket" error. The workaround for this issue is to avoid using LockMode.UPGRADE on such queries. The root cause analysis is still under investigation.
  • 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 contains any other associations to be read as part of the second phase, Hibernate throws an assertion because the associations cannot be found in the persistence context.
    A workaround is to increase the maximum fetch depth until the error no longer occurs, by setting the hibernate.max_fetch_depth to a large value.
  • JBPAPP-3565: org.hibernate.cfg.OneToOneSecondPass metadata causes an org.hibernate.PropertyValueException at runtime. If JOINs exist but do not contain the property otherSideProperty, otherSideJoin will not be null and will retain old invalid data.
  • JBPAPP-3487: Hibernate generates the wrong alias in the table-pre-class inheritance strategy in some situations. Take the following mapping as an example:
    <class abstract="true" name="Customer">
    	<composite-id class="PersonID" name="id">
    		<key-property column="NR_RZBK" name="num" />
    		<key-property column="TXT_OID" name="name" />
    	</composite-id>
    	<union-subclass name="CarBuyer">
    		<property column="PID" name="pid" update="false" />
    		<property column="TXT_OID_TESTB" name="sellerName" />
    		<many-to-one cascade="persist, merge, save-update" class="Seller"
    			insert="false" name="seller" update="false">
    			<column name="NR_RZBK" />
    			<column name="TXT_OID_TESTB" />
    		</many-to-one>
    	</union-subclass>
    </class>
    
    In this case, the SELECT statement issued is:
    select
        testc0_.NR_RZBK as NR1_1_,
        testc0_.TXT_OID_TESTB as TXT2_1_,
        testc0_.NR_RZBK as NR1_1_0_,
        testc0_.TXT_OID as TXT2_1_0_,
        testc0_.PID as PID2_0_,
        testc0_.TXT_OID_TESTB as TXT2_2_0_,
        testc0_.NR_RZBK as NR1_2_0_ 
    from
        CarBuyer testc0_ 
    where
        testc0_.NR_RZBK=? 
        and testc0_.TXT_OID_TESTB=?
    In org.hibernate.collection.PersistentSet, Hibernate will attempt to construct the CarBuyer object:
    public Object readFrom(
            ResultSet rs,
            CollectionPersister persister,
            CollectionAliases descriptor,
            Object owner) throws HibernateException, SQLException {
    	Object element = persister.readElement( rs, owner, descriptor.getSuffixedElementAliases(), getSession() );
    	if (element!=null) tempList.add(element);
    	return element;
    }
    However, the aliases returned by descriptor.getSuffixedElementAliases() are from:
    org.hibernate.persister.collection.AbstractCollectionPersister
    .AbstractCollectionPersister(Collection, CollectionRegionAccessStrategy, Configuration, SessionFactoryImplementor)
    
    ...
    keyColumnNames = new String[keySpan];
    keyColumnAliases = new String[keySpan];
    int k = 0;
    while ( iter.hasNext() ) {
    	// NativeSQL: collect key column and auto-aliases
    	Column col = ( (Column) iter.next() );
    	keyColumnNames[k] = col.getQuotedName(dialect);
    	keyColumnAliases[k] = col.getAlias(dialect,table);
    	k++;
    }
    In this case, according to the Column.getAlias(Dialect) algorithm, the alias of key column TXT_OID is TXT2_1_, which is the same as the column TXT_OID_TESTB's alias.
    There are three possible workarounds for this issue:
    • Map your column name to something else, for example, change TXT_OID_TESTB to TXT2_OID_TESTB.
    • Use a different inheritance strategy.
    • Change the order of the properties mapped in Hibernate mapping. (This has not yet been verified for Hibernate Annotations.)
  • JBPAPP-3485: Hibernate does not currently contain support for uncommitted "dirty" reads. This can cause problems in DB2 environments, where select statements automatically block tables while the query is being performed. Uncommitted read support is planned for the next version of JBoss Enterprise Application Platform.
  • 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. 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 with TransformingClassGenerator because of a problem with the visitField 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.x.
  • 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 in SchemaExport, 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 session s:
    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 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 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.0 and can be downloaded from Red Hat Support.
  • 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-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: SchemaExport 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 version 9.7 driver is used with progressive streaming (the default), operations on Blob and Clob 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-2440: When a cache provider cannot be found, a NoClassDefFoundError is thrown with the message:
    net/sf/ehcache/CacheException
    When a connection provider cannot be found, a HibernateException is thrown with the following message:
    Could not instantiate connection provider: " + providerClass
    If you experience these errors, we suggest checking the cache or connection provider configuration to ensure that the provider is included in the classpath.
  • 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-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-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-1895: The Hibernate tests JoinTest.java and QueryAndSQLTest.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 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-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, 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 the character \u0000 embedded in a string. There is currently no workaround for persisting \u0000 in a char column using PostgreSQL.
    To persist a NULL for an uninitialized char property instead of \u0000, use java.lang.Character 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 Messaging Known Issues

  • 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 the setFetchSize method on the java.sql.PreparedStatement. A problem with the JDBC driver means that more than the usual amount of memory is consumed when executeQuery() is called, which results in a java.lang.OutOfMemoryError, causing the test 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-3157: When unicode multibyte characters are used in a message Selector, JBoss Messaging throws a TokenMgrError.
  • JBPAPP-1745: 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. The workaround for this failure is to manually start the Recovery Manager with the following code:
                        recoveryManager = RecoveryManager.manager(RecoveryManager.INDIRECT_MANAGEMENT);
    
  • JBPAPP-1746: When JGroups is upgraded to version 2.6.13, the JBoss Messaging LargeClusterTest fails. The test attempts to start seven nodes on one machine before testing, but some nodes fail to start. The test passes if the number of nodes is reduced.
  • JBPAPP-2033: EnableMessageCounters on the jboss.messaging.ServerPeer JMX interface, cannot be set to true. A workaround to enable message counters is to invoke the enableMessageCounters() operation on the same JMX interface.

JBoss 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.

JBoss Web Services Known Issues

  • JBPAPP-3785: When a method with an additional namespace for a header parameter is invoked after a method that does not have this additional namespace, the wrong namespace is used in the SOAP operation when it is serialized.
  • 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.

Remoting Known Issues

  • JBPAPP-3709: When org.jboss.remoting.marshal.MarshallerLoaderHandler gets a request for a class, it returns an instance of org.jboss.remoting.loading.ClassBytes. If MarshallerLoaderHandler is unable to find the desired class, then the returned ClassBytes object has 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 a NullPointerException results.
  • JBPAPP-3392: EJB3 clients do not reuse existing socket connections on subsequent invocations; a new connection is created per invocation.

RESTEasy Known Issues

  • JBPAPP-2993: The spring-hibernate-contacts example cannot be compiled because it depends on an archive that is no longer available in the Maven repositories.
  • JBPAPP-2992: the readme file for the Spring MVC example located at doc/examples/resteasy-examples/resteasy-springMVC/README.txt contains an invalid URL. The current text:
      List all available contacts:
      http://localhost:9095/contacts
    Should be replaced with the following:
      List all available contacts:
      http://localhost:8080/contacts
  • JBPAPP-2991: The readme file for the API Clients example located in doc/examples/resteasy-examples/api-clients contains an invalid command for the Twitter example startup:
    Twitter Client:
    - Run:
        mvn exec:java -Dexec.mainClass="org.jboss.resteasy.examples.twitter.Twitter" -Dexec.args="<userId> <password>"
    Replace the previous code with the following:
    Twitter Client:
    - Run:
        mvn exec:java -Dexec.mainClass="org.jboss.resteasy.examples.twitter.TwitterClient" -Dexec.args="<userId> <password>"
    doc/examples/resteasy-examples/api-clients/ also contains two superfluous Eclipse project files, .classpath and .project. We recommend deleting these files.

Seam Known Issues

  • JBPAPP-4015: When hot deployment is used for EARs that contain multiple WAR files, the first web application to be accessed works correctly, but a web request to subsequent web applications causes a NullPointerException because the application context is not set up when the hot deployment filter runs.
  • 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. To work around this issue, manually enter values for the request area.
  • JBPAPP-4012: The Tasks example does 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.
  • JBPAPP-4010: Resources from the resource servlet, such as CAPTCHA images, do not re-render correctly because they are cached by the browser. An example of a workaround to force re-rendering is available on the JIRA.
  • JBPAPP-4009: When attachments are included in Seam Mail, the attachment is not show in Outlook 2007. The workaround for this issue is to edit org.jboss.seam.mail.ui.UIBody. Instead of:
    MimeMultipart bodyRootMultipart = new MimeMultipart("related");
    Use:
    MimeMultipart bodyRootMultipart = new MimeMultipart("mixed");
    
    And then recompile Seam Mail.
  • JBPAPP-4007: org.jboss.seam.transaction.EjbSynchronizations does 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 have the TransactionsAttribute TransactionAttributeType.SUPPORTS. To work around this issue, use TransactionAttributeType.REQUIRED instead.
  • JBPAPP-4006: org.jboss.seam.core.Interpolator swallows all exceptions and prints warnings with limited information.
  • JBPAPP-4005: Seam JMS support does not work after failover to a slave node because the topicConnection field in the SubscriptionRegistry object becomes invalid when the connection to the master node fails. Every subsequent call to SubscriptionRegistry.subscribe() fails with SpyJMSException, and JMS subscriptions will no longer work even if the master node revives. To work around this issue, catch the exception and retry with a new topicConnection if a subscribe request fails, as described on the JIRA.
  • JBPAPP-4004: There is a typo in the message logged by the org.jboss.seam.async.AsynchronousExceptionHandler when handling "Exeception thrown while executing asynchronous call". "Exeception" should be "Exception".
  • 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 the ResourceLoader must be stored in META-INF/classes or they will not work. The documentation is not explicit about this.
  • JBPAPP-4002: Initialization.redeploy includes code that creates a new lock and then locks it immediately. This does not provide any level of protection, and could potentially cause problems in debug mode.
  • JBPAPP-3855: The SeamSpace testCreateBlog unit test fails with a NullPointerException on IBM JRE 1.6.0.
  • JBPAPP-3769: In profiles other than production, MockResponseStateManager does not override ResponseStateManager#isPostback. This means that both Faces and non-Faces requests are evaluated as postbacks. There is no workaround for this issue.
  • JBPAPP-3764: EJBSynchronization is responsible for cleaning up the JbpmContext after the end of the transaction. Both elements are part of the event context, but EJBSynchronization has a different lifecycle. This means that the event context ends before EJBSynchronization can clean up the JbpmContext. This causes a memory leak. This issue occurs only with container-managed transactions; to work around it, use bean-managed transactions instead.
  • 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. However, when multiple items are selected, only the first item is included in the generated PDF.
  • JBPAPP-3525: s.tld in jboss-seam.ui.jar/MANIFEST.MF contains attribute entries that are defined incorrectly according to the XML Schema for the JSP Taglibrary descriptor. The workaround for this issue is to replace jboss-seam-ui.jar/META-INF/s.tld with the s.tld file attached to JBPAPP-3525.
  • JBPAPP-2385: Seam's Spring example fails with an IllegalStateException when the login form is submitted on the IBM virtual machinfe. 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.

Documentation Known Issues

  • 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.