]
Karina Hesse commented on HHH-1039:
-----------------------------------
If you anytimes get the WrongClassException use the
embed-xml="true"/"false" option in the mapping files.
WrongClassException when scrolling through EntityMode.DOM4J and
loading identical objects from different fields
---------------------------------------------------------------------------------------------------------------
Key: HHH-1039
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1039
Project: Hibernate Core
Issue Type: Bug
Affects Versions: 3.0.5
Environment: Windows XP, JDK 1.4.2_8, Hibernate 3.0.5, Oracle 9.2. Replicated on
Windows XP, JDK 1.5.0_2, Hibernate 3.0.5, MySQL
Reporter: Roland Groen
Fix For: entity-modes
Attachments: HbmXmlTest.java, Loader.java, Test.hbm.xml
When working with XML representations of entities, an unexpected
org.hibernate.WrongClassException is thrown when working with identical embedded objects
(embed-xml="true") which have different field names.
org.hibernate.WrongClassException seems to be thrown when:
1) Running in EntityMode.DOM4J
2) Scrolling through a result set using session.scroll()
3) Embedding objects that are:
a) Referred by least by one of the objects on which the query is selecting primarily
(parent object) and,
b) that field is in FetchMode.JOIN.
c) Referred by one object which is embedded (embed-xml="true") and uses a
different field name to refer to the object than the parent object.
I would like to apologise for the large test case. The bug is quite hard to reproduce, I
tried to minimise the test, but this seems the smallest and most simple case I can find.
The stack trace is:
Caused by: org.hibernate.WrongClassException: Object with id: 1 was not of the specified
subclass: Customer (loaded object was of wrong class)
at org.hibernate.loader.Loader.instanceAlreadyLoaded(Loader.java:890)
at org.hibernate.loader.Loader.getRow(Loader.java:846)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:305)
at org.hibernate.loader.Loader.loadSingleRow(Loader.java:238)
at
org.hibernate.impl.ScrollableResultsImpl.prepareCurrentRow(ScrollableResultsImpl.java:477)
at org.hibernate.impl.ScrollableResultsImpl.next(ScrollableResultsImpl.java:106)
at HbxXmlTest.main(HbxXmlTest.java:90)
The included files are:
Test.hbm.xml : the hbm file to create the classes
HbmXmlTest.java : the the java source to reproduce the issue.
Greetings,
Roland.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: