openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pinaki Poddar (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-147) <T> T OpenJPAEntityManager.createInstance(Class<T> cls) fails when T is interface
Date Thu, 15 Feb 2007 02:51:05 GMT

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


Mime
View raw message