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

Reply via email to