[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2542?page=c...
]
Gail Badner updated HHH-2542:
-----------------------------
Attachment: HHH-2542.patch
I believe the suggested fix omits a line and should be as follows:
Object[] targetComponentValues = target[i] == null ? new Object[subtypes.length] :
componentType.getPropertyValues( target[i], session );
replaceAssociations( origComponentValues, targetComponentValues, subtypes, session, null,
copyCache, foreignKeyDirection );
copied[i] = target[i]
I am attaching a patch with this change for the Hibernate3_2 branch, HHH-2542.patch.
I have verified that the test case in HHH-2572 works properly with this fix and that no
other unit tests break.
I have not checked the test case attached to this issue because there were build errors
('ManyToOne' attribute 'ref' cannot be used in Embeddable object) and I
wasn't sure of the versions of Annotations and Entity Manager that were being used.
NullPointerException in TypeFactory.replaceAssociations for
ComponentType
-------------------------------------------------------------------------
Key: HHH-2542
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2542
Project: Hibernate3
Issue Type: Bug
Components: core
Affects Versions: 3.2.3
Reporter: Reto Urfer
Attachments: HHH-2542.patch, Hibernate Bug 2542.zip
The following code block will throw a NullPointerException when targetComponentValues
should be determines and target[i] contains a NULL value.
else if ( types[i].isComponentType() ) {
// need to extract the component values and check for subtype replacements...
AbstractComponentType componentType = ( AbstractComponentType ) types[i];
Type[] subtypes = componentType.getSubtypes();
Object[] origComponentValues = original[i] == null ? new Object[subtypes.length] :
componentType.getPropertyValues( original[i], session );
Object[] targetComponentValues = componentType.getPropertyValues( target[i], session
);
replaceAssociations( origComponentValues, targetComponentValues, subtypes, session,
null, copyCache, foreignKeyDirection );
This problem can be fixed the same way as it is prevented when origComponentValues are
determined (see following line)
Object[] targetComponentValues = target[i] == null ? new Object[subtypes.length] :
componentType.getPropertyValues( target[i], session );
copied[i] = target[i];
}
The problem did not exist in Version 3.2.2
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira