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

Reply via email to