Chapter 3. Known Issues

Known issues in JBoss Enterprise Application Platform 5.2.0 are listed by component.

Hibernate

https://issues.jboss.org/browse/JBPAPP-5965
You are not allowed to initialize lazy collections or proxies during a flush. The workaround is for the listener to use a different session to initialize the collection. The following is an example of the workaround:
SessionImplementor si = (SessionImplementor)(event.getSession());
Session anotherSession = si.getFactory().openSession(si.getJDBCContext().connection());
Object obj = anotherSession.get( event.getEntity().getClass(),event.getId());
if(o instanceof Parent){
	Parent parent = (Parent)obj;
	Iterator it = parent.getChildren().iterator();
	while(it.hasNext()){
		Child child = (Child)it.next();
	}
}
anotherSession.close()
https://issues.jboss.org/browse/JBPAPP-6579
Hibernate can bind the SessionFactory to JNDI after startup if it can find the session factory name from the server configuration. This results in a warning-level message, which is misleading in its severity. This message is unavoidable as it is usually caused by an environment-specific issue. To avoid seeing this message, adjust the logging level to debug.
https://issues.jboss.org/browse/JBPAPP-4731
When an insert operation was performed using jconn3.jar, null bit values were converted to 0 and no exception was thrown. Sybase does not allow a null value for the bit data type, so null values should result in exceptions.
https://issues.jboss.org/browse/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.
https://issues.jboss.org/browse/JBPAPP-9059
When using Hibernate with IBM DB2-97 a SqlSyntaxErrorException may occur when deploying jbossesb.esb. The error occurs because of a mismatch between the Hibernate data type and the DB2 data type to which it is mapped. There are two possible workarounds available for this issue:
https://issues.jboss.org/browse/JBPAPP-6571
A NullPointerException is thrown when an entity with attributes mapped as @Formula is obtained using the addEntity method by a native query whose select clause elements do not have an alias:
@Entity
@Table(name = "ALL_TABLES")
 public class AllTables {
	@Id
	@Column(name = "TABLE_NAME", nullable = false)
	private String tableName;
	@Formula(value = "(SYSDATE())")
	private String daysOld;
	//getters and setters
 }
String sql = "select table_name , sysdate()  from all_tables   where table_name = 'AUDIT_ACTIONS' ";
SQLQuery q = s.createSQLQuery( sql ).addEntity( "t",AllTables.class );
To resolve this issue would require major changes to Hibernate, so this issue will remain unresolved. Use one of the following workarounds to avoid this issue:
  • Workaround option 1: Use @SqlResultSetMapping:
    String sql = "select table_name as t_name, sysdate() as t_time from all_tables where table_name = 'AUDIT_ACTIONS' ";	
    @SqlResultSetMapping(name = "all", 
    entities = @EntityResult(entityClass = AllTables.class, 
    fields = { 
    @FieldResult(name = "tableName", column = "t_name"), 
    @FieldResult(name = "daysOld", column = "t_time") 
    }))
    
  • Workaround option 2: Provide an alias for each scalar property:
    String sql = "select t.table_name as {t.tableName}, sysdate() as {t.daysOld} from all_tables t where t.table_name = 'AUDIT_ACTIONS' "; 
    SQLQuery q = s.createSQLQuery( sql ).addEntity( "t",AllTables.class );
    
  • Workaround option 3: Query directly:
    String sql = "select table_name , sysdate() from all_tables where table_name = 'AUDIT_ACTIONS' "; 
    SQLQuery q = s.createSQLQuery( sql );
    

HornetQ

https://issues.jboss.org/browse/JBPAPP-10450
If a HornetQ resource adapter (RA) is configured to connect to a remote JBoss Enterprise Application Platform/HornetQ server and the RA has reconnect-attempts set to -1 (infinite) then the server hosting RA cannot be shut down cleanly if the remote server is not available.
https://issues.jboss.org/browse/JBPAPP-6659
The following examples provided with HornetQ don't work for various reasons:
  • jca-remote
  • jms-bridge
  • mdb-remote-failover-static
  • mdb-remote-failover
  • xarecovery
  • embedded-simple
  • embedded
  • failover-manual-stop
  • jaas
  • spring-integration
  • stomp-websockets
  • stop-server-failover
  • transaction-failover

Installer

https://issues.jboss.org/browse/JBPAPP-10527
While using the GUI installer, if the option to create shortcuts is unchecked and an automatic installation script is saved, the resulting installation script is invalid. The issue is that the shortcuts section of the installation script is empty and although this is a valid XML file, any attempt to use this script results in the following error. [ Creating shortcuts java.lang.NullPointerException java.lang.NullPointerException at com.izforge.izpack.util.os.Unix_Shortcut.execPostAction(Unknown Source) at com.izforge.izpack.panels.ShortcutPanelAutomationHelper.runAutomated(Unknown Source) at com.izforge.izpack.installer.AutomatedInstaller.installPanel(Unknown Source) at com.izforge.izpack.installer.AutomatedInstaller.doInstall(Unknown Source) at com.izforge.izpack.installer.Installer.main(Unknown Source) [ Automated installation FAILED! ]
https://issues.jboss.org/browse/JBPAPP-10529
While using the GUI installer, if the option to generate an automatic installation script is used, and a file of the specified name already exists, that file will be overwritten without warning. A workaround is to check if a file of the specified name already exists and if so, either rename it or specify a different file name.
https://issues.jboss.org/browse/JBPAPP-10561
The RPM installation method of JBoss Enterprise Application Platform does not include the JAR jboss-common-beans.jar in the CLASSPATH. As a result, launching an AppClient might fail with message:
               DEPLOYMENTS IN ERROR:
                 Deployment "ClientLauncherClassPath:0.0.0$MODULE" is in error due to: java.lang.RuntimeException: Error configuring property: roots for ClientLauncherClassPath:0.0.0$MODULE
To work around this issue, add $JBOSS_HOME/lib/jboss-common-beans.jar to the CLASSPATH. With this JAR added to the CLASSPATH, the above error message no longer occurs.

Messaging

https://issues.jboss.org/browse/JBPAPP-5124
When using Sybase database with the JDBC driver Sybase jConnect JDBC driver v7 (Build 26502), a MaxParams attribute in the sybase-persistence-service.xml configuration file cannot be set higher than 481 due to a limitation of the PreparedStatement class in this driver. Unexpected failures can occur when the MaxParams attribute is set to a value higher than 481. To avoid this issue, set MaxParams to a smaller value than 481.