[ 
https://issues.apache.org/jira/browse/OPENJPA-540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kevin Sutter closed OPENJPA-540.
--------------------------------


> Classloading issue with WAS, Spring, and OpenJPA
> ------------------------------------------------
>
>                 Key: OPENJPA-540
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-540
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.1.0
>            Reporter: Kevin Sutter
>            Assignee: Kevin Sutter
>             Fix For: 1.0.3, 1.1.0
>
>         Attachments: openjpa-540.patch
>
>
> The WASManagedRuntime class needs to dynamically load and process a couple of 
> WebSphere-specific classes in order to interact with the WebSphere 
> Transaction Manager.  Currently, when these classes are loaded 
> (ExtendedJTATransaction and SynchronizationCallback), there is some problem 
> with the Method invocations that are invoked against the JNDI object that is 
> looked up (java:comp/websphere/ExtendedJTATransaction).  There seems to be a 
> mismatch between the Interface classes that are loaded to obtain the Method 
> objects and the actual object that is returned by the JNDI lookup.  The 
> callstack is similar to the following:
> Caused by: <openjpa-1.0.1-r420667:592145 nonfatal user error> 
> org.apache.openjpa.persistence.InvalidStateException: An error occured 
> reflecting WebSphere proprietary interfaces. Please ensure that you are 
> running the application from within WebSphere Application Server (version 
> 5.0.2 or newer).
>       at 
> org.apache.openjpa.ee.WASManagedRuntime$WASTransaction.getGlobalId(WASManagedRuntime.java:157)
>       at 
> org.apache.openjpa.ee.WASManagedRuntime$WASTransaction.getStatus(WASManagedRuntime.java:104)
>       ... 49 more
> Caused by: java.lang.IllegalArgumentException
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:615)
>       at 
> org.apache.openjpa.ee.WASManagedRuntime$WASTransaction.getGlobalId(WASManagedRuntime.java:155)
>       ... 50 more
> The call to getGlobalId in WASManagedRuntime is like this:
>                 byte[] rval = (byte[]) 
> _getGlobalId.invoke(_extendedTransaction, null);
> Debugging this problem has narrowed it down to a classloading issue for this 
> scenario of using WAS v6.1.0.13, Spring 2.5.2, and OpenJPA 1.0.x.  I'll post 
> more on the proposed solution shortly.
> Kevin

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