[ https://issues.apache.org/jira/browse/OPENJPA-147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12473293 ]
Pinaki Poddar commented on OPENJPA-147: --------------------------------------- I have attached four trial-and-error scenarios Condition (a) is Java interface is annotated with @Entity and condition (b) is <class>IPerson</class> specified in persistence.xml. Case 1 (iface.trace.1.txt) both (a) and (b) are true : NPE in AnnotationPersistenceMetaDataParser.parseCallbackMethods() Case 2: (iface.trace.2.txt) not (a) but (b) : Metadata not found Case 3:(iface.trace.3.txt) (a) but not (b) : NPE in AnnotationPersistenceMetaDataParser.parseCallbackMethods() Case 4: As I plug the NPE during parsing, and keep both (a) and (b) then the code proceeds further to fail within Enhancer. > <T> T OpenJPAEntityManager.createInstance(Class<T> cls) fails when T is > interface > --------------------------------------------------------------------------------- > > Key: OPENJPA-147 > URL: https://issues.apache.org/jira/browse/OPENJPA-147 > Project: OpenJPA > Issue Type: Bug > Components: jpa > Reporter: Pinaki Poddar > Attachments: iface.trace.1.txt, iface.trace.2.txt, iface.trace.3.txt, > iface.trace.4.txt, TestInterface.java > > > According to JavaDoc, OpenJPAEntityManager.createInstance() method > public <T> T createInstance(Class<T> cls); > behaves as follows: > "Create a new instance of type <code>cls</code>. If <code>cls</code> is > an interface or an abstract class whose abstract methods follow the > JavaBeans convention, this method will create a concrete implementation > according to the metadata that defines the class" > The method fails when T is an interface. The failure may be due to incorrect > user configuration, however, further > information on this extension method is not available in OpenJPA > documentation. > Firstly, how to specify metadata for a interface that has bean-style methods? > Possibilities are: > a) Annotating the Java interface definition with @Entity > b) Specifying in <class>org.acme.IPerson</class> in persistence.xml > Either of the above fails. a) fails at parsing b) fails with "no metadata" > There may be a correct but undocumented way of specifying a managed > interface. If that is the case, then this JIRA report should be treated as a > documentation bug. > -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.