[
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.