[
https://issues.apache.org/jira/browse/ARIES-681?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13053687#comment-13053687
]
Balazs Zsoldos commented on ARIES-681:
--------------------------------------
Hi,
thank you for the fast responses. I do not use classes from Eclipselink at all
in my bundle so it may be during deployment time. I will be in the office in
two weeks again and I will try the weaving setting you suggested. Also if it
does not work I will create a jira issue on Eclipselink side as well with a
sample application to see what they say.
Thanks,
Balazs
> JPA Container BundleDelegatingClassLoader should look for classes in the
> provider bundle, too
> ---------------------------------------------------------------------------------------------
>
> Key: ARIES-681
> URL: https://issues.apache.org/jira/browse/ARIES-681
> Project: Aries
> Issue Type: Bug
> Components: JPA
> Affects Versions: 0.3
> Environment: Glassfish 3.0 (EclipseLink 2.0.2), Glassfish 3.1
> (EclipseLink 2.2)
> Reporter: Balazs Zsoldos
> Attachments: classloadingFromMultipleProviderDuringQuery.0.3.patch
>
>
> Currently the BundleDelegatingClassLoader in JPA container only looks for
> classes in the bundle of the entitymanager. However the JPA implementation
> Eclipselink needs some classes from itself. The reason is that in entity
> classes the properties that hold mapping of One-To-Many are converted to
> EclipseLink list type. See the following exception stacktrace:
> Internal Exception: java.lang.ClassNotFoundException:
> org.eclipse.persistence.indirection.IndirectList
> at
> org.eclipse.persistence.exceptions.ValidationException.classNotFoundWhileConvertingClassNames(ValidationException.java:2317)
> at
> org.eclipse.persistence.internal.queries.InterfaceContainerPolicy.convertClassNamesToClasses(InterfaceContainerPolicy.java:123)
> at
> org.eclipse.persistence.mappings.CollectionMapping.convertClassNamesToClasses(CollectionMapping.java:788)
> at
> org.eclipse.persistence.descriptors.ClassDescriptor.convertClassNamesToClasses(ClassDescriptor.java:1458)
> at
> org.eclipse.persistence.sessions.Project.convertClassNamesToClasses(Project.java:362)
> at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:322)
> ... 83 more
> Caused by: java.lang.ClassNotFoundException:
> org.eclipse.persistence.indirection.IndirectList
> at
> org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:744)
> at org.apache.felix.framework.ModuleImpl.access$100(ModuleImpl.java:61)
> at
> org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1656)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> at
> org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:604)
> at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1487)
> at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:897)
> at
> org.apache.aries.jpa.container.unit.impl.BundleDelegatingClassLoader$1.run(BundleDelegatingClassLoader.java:50)
> at
> org.apache.aries.jpa.container.unit.impl.BundleDelegatingClassLoader$1.run(BundleDelegatingClassLoader.java:47)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.aries.jpa.container.unit.impl.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:47)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:247)
> at
> org.eclipse.persistence.internal.security.PrivilegedAccessHelper.getClassForName(PrivilegedAccessHelper.java:88)
> at
> org.eclipse.persistence.internal.queries.InterfaceContainerPolicy.convertClassNamesToClasses(InterfaceContainerPolicy.java:120)
> ... 87 more
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira