Incorrect support for java interfaces in typed collection fields
----------------------------------------------------------------
Key: JCR-1889
URL: https://issues.apache.org/jira/browse/JCR-1889
Project: Jackrabbit
Issue Type: Bug
Affects Versions: 1.4, 1.5.0
Reporter: Christophe Lombart
If a typed collection field is defined with an Interface as the type, the
following exception is thrown when the main object is inserted :
org.apache.jackrabbit.ocm.exception.JcrMappingException: Cannot load class
interface [name of the interface];
Here is a example :
@Node
public class EntityA {
@Field(path=true) String path;
@Collection List<MyInterface> entityB;
....
}
When inserting a new instance of EntityA with a not null entityB, the exception
is thrown.
A workaround is to add the elementClassName on the annotation @Collection. ex.
:
@Collection (elementClassName=MyInterface.class) List<MyInterface> entityB;
elementClassName is used only for untyped collections but if you specify it for
a typed collection, the ObjectContentManager will not use reflexion to check
the collection class name.
This should be nice to avoid the usage of elementClassName for typed
collections.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.