I refer to my old posting
http://forum.hibernate.org/viewtopic.php?t=927600&highlight=.
I traced the error into hibernate codes. Here is my findings:
When the session is flushed, in SessionImpl.private void flushEverything()
It try to invoke my TopicAccessBean using BasicPropertyAccessor. But for some reason the BasicPropertyAccessor is making these calles:
net.sf.hibernate.property.BasicPropertyAccessor - METHOD INVOKES BY
THE GET () IS getId CLASS java.lang.Integer
37043 [tcp-connection-5] ERROR net.sf.hibernate.property.BasicPropertyAccessor - IllegalArgumentExc
eption in class: Forum.TopicBean, getter method of property: id
The debug statement above is from BasicPropertyAccessor get(Object target)
Code:
public Object get(Object target) throws HibernateException {
try {
log.debug("METHOD INVOKES BY THE GET () IS " + method.getName() + target.getClass().getName());
return method.invoke(target, null);
}
catch (InvocationTargetException ite) {
throw new PropertyAccessException(ite, "Exception occurred inside", false, clazz, propertyName);
}
catch (IllegalAccessException iae) {
throw new PropertyAccessException(iae, "IllegalAccessException occurred while calling", false, clazz, propertyName);
//cannot occur
}
catch (IllegalArgumentException iae) {
log.error(
"IllegalArgumentException in class: " + clazz.getName() +
", getter method of property: " + propertyName
);
throw new PropertyAccessException(iae, "IllegalArgumentException occurred calling", false, clazz, propertyName);
}
}
Gavin here are some update that I promised you in my previous post. I am still tracing through the code. But the reflection that Hibernate uses gives a real challenge in debugging the code.
^____^