ClassCastException caused when Hibernate caches instance under user provided key
--------------------------------------------------------------------------------
Key: HHH-2321
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2321
Project: Hibernate3
Type: Bug
Components: core
Versions: 3.2.0 cr1
Environment: Hibernate 3.2.0.CR1, MySQL 4.0.18
Reporter: Dmitri Colebatch
Priority: Trivial
I haven't looked into this in detail, but am pretty confident that my reading of this
is correct. I'm trying to interface into bugzilla's database and have used the
tools to generate some classes for use. I'm just mocking something up and so have the
following code snippet:
Product product = (Product) session.load(Product.class, 1);
// ....
Bug bug = new Bug();
// ...
bug.setProduct(product);
// ...
// tx.commit();
On the commit I get the following error:
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer
at org.hibernate.type.ShortType.set(ShortType.java:40)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:83)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:60)
at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:71)
Now if I change
Product product = (Product) session.load(Product.class, 1);
to
Product product = (Product) session.load(Product.class, (short) 1);
It all works fine. I'm assuming what's happening is that Hibernate is using the
user provided key, which in the first scenario is an Integer, as the primary key and hence
getting the CCE. My guess is that hibernate should be more pedantic about not trusting
user provided values.
--
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