[
https://issues.apache.org/jira/browse/ARIES-1234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14150676#comment-14150676
]
Giuseppe Gerla commented on ARIES-1234:
---------------------------------------
I can suggest you following code:
try{
Object res = method.invoke(delegate, args);
} catch(IllegalArgumentException e) {
throws new PersistenceException("Method " + method.getName() + " is
not implemented by " + delegate + ". Probably you want use JPA 2.1 but you are
installed JPA 2.0 caontainer.")
}
>From JavaDoc IllegalArgumentException is raised if the method is an instance
>method and the specified object argument is not an instance of the class or
>interface declaring the underlying method (or of a subclass or implementor
>thereof); if the number of actual and formal parameters differ; if an
>unwrapping conversion for primitive arguments fails; or if, after possible
>unwrapping, a parameter value cannot be converted to the corresponding formal
>parameter type by a method invocation conversion.
> Recreate Aries JPA 2.0 support
> ------------------------------
>
> Key: ARIES-1234
> URL: https://issues.apache.org/jira/browse/ARIES-1234
> Project: Aries
> Issue Type: Bug
> Components: JPA
> Affects Versions: 0.4
> Reporter: Mark Nuttall
> Assignee: Mark Nuttall
>
> Aries-1047 moved the JPA support up to JPA 2.1. However classes that
> implement the JPA 2.1 API cannot work against the JPA 2.0 API.
> For example, javax.persistence.EntityManager has gained a number of new
> methods such as createStoredProcedureQuery() which return an object of class
> javax.persistence.StoredProcedureQuery. The class _does not exist_ in JPA
> 2.0.
> A class that implements the 2.1 version of EntityManager can not be loaded
> under the JPA 2.0 API.
> org.apache.aries.jpa.container.impl.EntityManagerWrapper implements
> javax.persistence.EntityManager. This means that it now has public API
> methods with class signatures that can not possibly work in a JPA 2.0
> environment. Attempts to do so yield errors of the form,
> java.lang.ClassNotFoundException: javax.persistence.StoredProcedureQuery
> cannot be found by org.apache.aries.jpa.container.context.
> We need the JPA 2.0 code back. This will first be achieved by restoring the
> JPA container code to /trunk/jpa20/... at the svn level before the commit
> that broke it, http://svn.apache.org/viewvc?view=revision&revision=1610718.
> Most of the code remains common, but will require additional effort to
> refactor: this can be done, if desired, under future JIRAs.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)