[
https://issues.jboss.org/browse/WFLY-11991?page=com.atlassian.jira.plugin...
]
Scott Marlow commented on WFLY-11991:
-------------------------------------
[~jamezp] It is more of a Hibernate51CompatibilityTransformer bug than a feature.
Previously, we didn't cover applications having more than:
{code}
public Object nullSafeGet(ResultSet rs, String[] names, SessionImplementor session, Object
owner) throws HibernateException, SQLException {
...
}
{code}
So, applications that also have something like the following failed, due to the
internalNullSafeGet() not getting transformed to use the ORM 5.3
SharedSessionContractImplementor type:
{code}
public Object nullSafeGet(ResultSet rs, String[] names, SessionImplementor session, Object
owner) throws HibernateException, SQLException {
return internalNullSafeGet(rs, names, session, owner);
}
private Object internalNullSafeGet(ResultSet rs, String[] names, SessionImplementor
session, Object owner) throws HibernateException, SQLException {
...
}
{code}
I consider this additional transformation to be a bit deeper, than what we initially did.
I didn't just enable this additional transformation because that could cause
compatibility issues for some applications that were working without this additional
transformation.
Add Hibernate ORM transformer option to transform any method
parameter of type org.hibernate.engine.spi.SessionImplementor
--------------------------------------------------------------------------------------------------------------------------
Key: WFLY-11991
URL:
https://issues.jboss.org/browse/WFLY-11991
Project: WildFly
Issue Type: Bug
Components: JPA / Hibernate
Reporter: Scott Marlow
Assignee: Scott Marlow
Priority: Major
Fix For: 17.0.0.Beta1
Attachments: afterchange.zip, beforechange.zip
The idea is to transform any class method parameter of type
org.hibernate.engine.spi.SessionImplementor, in user application, to instead use type
org.hibernate.engine.spi.SharedSessionContractImplementor.
The test case (change) is for this enhancement is
[
https://github.com/simkam/wildfly/compare/hibernate_transformer].
The test case change is adding an internalNullSafeGet method that should also be
transformed to use the SharedSessionContractImplementor type but was not, which led to an
application failure with code:
{code}
public Object nullSafeGet(ResultSet rs, String[] names, SessionImplementor session,
Object owner) throws HibernateException, SQLException {
return internalNullSafeGet(rs, names, session, owner);
}
private Object internalNullSafeGet(ResultSet rs, String[] names, SessionImplementor
session, Object owner) throws HibernateException, SQLException {
internalSessionImplementorUsingMethod(session);
session.isTransactionInProgress();
int result = rs.getInt( names[0] );
if ( rs.wasNull() ) return null;
return State.values()[result];
}
}
{code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)