-
Language:
English
-
Language:
English
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 to0
and no exception was thrown. Sybase does not allow anull
value for thebit
data type, sonull
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
toFALSE
when embedded classes are used. The second option is to explicitly callsession.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 deployingjbossesb.esb
. The error occurs because of a mismatch between theHibernate
data type and theDB2
data type to which it is mapped. There are two possible workarounds available for this issue:- Add
<connection-property name="deferPrepares">false</connection-property>
to/jboss-as/server/db2-97/deploy/jbossesb-registry.sar/juddi-ds.xml
. Note that according to http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/c0010273.htm, this workaround may affect performance. - Use
org.hibernate.type.NumericBooleanType
type instead ofBooleanType
.
- 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 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
.