Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] [eclipselink 2.0] MappedSuperclassTypeImpl can cause ClassNotFoundException

Hi, I'm using EclipseLink 2.0 (trunk build) for doing CTS 6 Early Access on our WAS (TmaxSoft JEUS).

When I executed MappedSuperclass-related tests,

I met ClassNotFoundException from MappedSuperclassTypeImpl#create(.....).

Internal Exception: java.lang.ClassNotFoundException: com.sun.ts.tests.ejb30.persistence.metamodelapi.mappedsuperclasstype.Employee
at org.eclipse.persistence.exceptions.ValidationException.classNotFoundWhileConvertingClassNames(ValidationException.java:2290)
at org.eclipse.persistence.descriptors.ClassDescriptor.convertClassNamesToClasses(ClassDescriptor.java:1209)
at org.eclipse.persistence.internal.jpa.metamodel.MappedSuperclassTypeImpl.create(MappedSuperclassTypeImpl.java:88)
at org.eclipse.persistence.internal.jpa.metamodel.ManagedTypeImpl.create(ManagedTypeImpl.java:414)
at org.eclipse.persistence.internal.jpa.metamodel.MetamodelImpl.initialize(MetamodelImpl.java:291)
at org.eclipse.persistence.internal.jpa.metamodel.MetamodelImpl.<init>(MetamodelImpl.java:85)
at org.eclipse.persistence.internal.jpa.metamodel.MetamodelImpl.<init>(MetamodelImpl.java:95)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getMetamodel(EntityManagerFactoryImpl.java:433)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.getMetamodel(EntityManagerImpl.java:2054)
at com.sun.ts.tests.ejb30.persistence.metamodelapi.mappedsuperclasstype.Client.mappedSuperclassType(Client.java:58)

I analyzed that MappedSuperclassTypeImpl#create(.....) uses the class loader of org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.

But if ecliselink.jar including UnitOfWorkImpl class is a system library,

    metamodel.getSession().getActiveSession().getClass().getClassLoader()

always returns the system class loader, not application's class loader.

Therefore, it always cause ClassNotFoundException on environment which uses ecliselink.jar as system library.

I know there's no requirement that eclipselink.jar shall be loaded per application. Am I wrong?


--
Best regards,
Eugene Chung (Korean : 정의근)

Back to the top