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


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

        

Reply via email to