Hi,
I meet a problem that looks quite weird for me. I report it here to see
whether people have similar experience.
In hibernate, there is a class
org.hibernate.property.DirectPropertyAccessor$DirectGetter, which is used to
directly access a field's value of a domain class. I find this function
fails in osgi environemt because java.lang.reflect.Field.getValue() throws
IllegalArgumentException, which never happen in non-osgi environment. I
conjecture that this exception has something to do with classloaders. But I
cannot really figure it out. The following is the exception trace.
caused by: java.lang.IllegalArgumentException: Can not set java.lang.Object
field as.classifier.Classifier.oid to xs.personnel.Citizen$Identity$Type
at
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
at
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150)
at
sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:37)
at
sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:18)
at java.lang.reflect.Field.get(Field.java:358)
at
org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:55)
Rice