Community
Participate
Working Groups
Build Identifier: 2.2.0 I was able to reproduce an exception with 5 classes. Enhancing works fine, but on schema generation the attached exception occurs. When I'm using my whole object model, the excpetion seems to be thrown twice and in that case, I don't get the text of the DescriptorException, just: [java] Descriptor Exceptions: [java] --------------------------------------------------------- So initially I had no clue where to start - that should be fixed, too. Exception: [java] [EL Info]: 2011-04-15 14:46:40.825--ServerSession(13328393)--EclipseLink, version: Eclipse Persistence Services - 2.2.0.v20110202-r8913 [java] [EL Severe]: 2011-04-15 14:46:40.935--ServerSession(13328393)--Local Exception Stack: [java] Exception [EclipseLink-0] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.IntegrityException [java] Descriptor Exceptions: [java] --------------------------------------------------------- [java] Exception [EclipseLink-94] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.DescriptorException [java] Exception Description: Descriptors must have a table name defined. [java] Descriptor: RelationalDescriptor(x.y.z.AnotherEmbedded --> []) [java] Runtime Exceptions: [java] --------------------------------------------------------- [java] java.lang.NullPointerException [java] java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:476) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:407) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:680) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:628) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:233) [java] at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:394) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:185) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:242) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:230) [java] at x.y.z.jpa.JPAManager.initJPA(JPAManager.java:450) [java] at x.y.z.jpa.Validator.main(Validator.java:44) [java] Descriptor Exceptions: [java] --------------------------------------------------------- [java] Local Exception Stack: [java] Exception [EclipseLink-94] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.DescriptorException [java] Exception Description: Descriptors must have a table name defined. [java] Descriptor: RelationalDescriptor(x.y.z.AnotherEmbedded --> []) [java] at org.eclipse.persistence.exceptions.DescriptorException.tableNotSpecified(DescriptorException.java:1636) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.selfValidationBeforeInitialization(ClassDescriptor.java:3733) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.validateBeforeInitialization(ClassDescriptor.java:5525) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.preInitialize(ClassDescriptor.java:3520) [java] at org.eclipse.persistence.mappings.AggregateCollectionMapping.initializeReferenceDescriptor(AggregateCollectionMapping.java:1417) [java] at org.eclipse.persistence.mappings.ForeignReferenceMapping.initialize(ForeignReferenceMapping.java:1160) [java] at org.eclipse.persistence.mappings.CollectionMapping.initialize(CollectionMapping.java:1095) [java] at org.eclipse.persistence.mappings.AggregateCollectionMapping.initialize(AggregateCollectionMapping.java:1294) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.initialize(ClassDescriptor.java:2744) [java] at org.eclipse.persistence.mappings.AggregateObjectMapping.initialize(AggregateObjectMapping.java:1125) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.initialize(ClassDescriptor.java:2744) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:453) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:407) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:680) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:628) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:233) [java] at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:394) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:185) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:242) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:230) [java] at x.y.z.jpa.JPAManager.initJPA(JPAManager.java:450) [java] at x.y.z.jpa.Validator.main(Validator.java:44) [java] Runtime Exceptions: [java] --------------------------------------------------------- [java] java.lang.NullPointerException [java] at org.eclipse.persistence.internal.queries.MappedKeyMapContainerPolicy.processAdditionalWritableMapKeyFields(MappedKeyMapContainerPolicy.java:621) [java] at org.eclipse.persistence.internal.descriptors.ObjectBuilder.initialize(ObjectBuilder.java:2795) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.initialize(ClassDescriptor.java:2857) [java] at org.eclipse.persistence.mappings.AggregateObjectMapping.initialize(AggregateObjectMapping.java:1125) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.initialize(ClassDescriptor.java:2744) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:453) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:407) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:680) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:628) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:233) [java] at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:394) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:185) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:242) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:230) [java] at x.y.z.jpa.JPAManager.initJPA(JPAManager.java:450) [java] at x.y.z.jpa.Validator.main(Validator.java:44) [java] java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 [java] at java.util.ArrayList.RangeCheck(Unknown Source) [java] at java.util.ArrayList.get(Unknown Source) [java] at org.eclipse.persistence.internal.descriptors.ObjectBuilder.getPrimaryKeyClassifications(ObjectBuilder.java:2717) [java] at org.eclipse.persistence.mappings.AggregateObjectMapping.postInitialize(AggregateObjectMapping.java:1321) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.postInitialize(ClassDescriptor.java:3343) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:467) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:407) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:680) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:628) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:233) [java] at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:394) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:185) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:242) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:230) [java] at x.y.z.jpa.JPAManager.initJPA(JPAManager.java:450) [java] at x.y.z.jpa.Validator.main(Validator.java:44) [java] [EL Severe]: 2011-04-15 14:46:40.997--ServerSession(13328393)--Local Exception Stack: [java] Exception [EclipseLink-0] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.IntegrityException [java] Descriptor Exceptions: [java] --------------------------------------------------------- [java] Exception [EclipseLink-94] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.DescriptorException [java] Exception Description: Descriptors must have a table name defined. [java] Descriptor: RelationalDescriptor(x.y.z.AnotherEmbedded --> []) [java] Runtime Exceptions: [java] --------------------------------------------------------- [java] java.lang.NullPointerException [java] java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:476) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:407) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:680) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:628) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:233) [java] at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:394) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:185) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:242) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:230) [java] at x.y.z.jpa.JPAManager.initJPA(JPAManager.java:450) [java] at x.y.z.jpa.Validator.main(Validator.java:44) [java] Descriptor Exceptions: [java] --------------------------------------------------------- [java] Local Exception Stack: [java] Exception [EclipseLink-94] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.DescriptorException [java] Exception Description: Descriptors must have a table name defined. [java] Descriptor: RelationalDescriptor(x.y.z.AnotherEmbedded --> []) [java] at org.eclipse.persistence.exceptions.DescriptorException.tableNotSpecified(DescriptorException.java:1636) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.selfValidationBeforeInitialization(ClassDescriptor.java:3733) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.validateBeforeInitialization(ClassDescriptor.java:5525) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.preInitialize(ClassDescriptor.java:3520) [java] at org.eclipse.persistence.mappings.AggregateCollectionMapping.initializeReferenceDescriptor(AggregateCollectionMapping.java:1417) [java] at org.eclipse.persistence.mappings.ForeignReferenceMapping.initialize(ForeignReferenceMapping.java:1160) [java] at org.eclipse.persistence.mappings.CollectionMapping.initialize(CollectionMapping.java:1095) [java] at org.eclipse.persistence.mappings.AggregateCollectionMapping.initialize(AggregateCollectionMapping.java:1294) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.initialize(ClassDescriptor.java:2744) [java] at org.eclipse.persistence.mappings.AggregateObjectMapping.initialize(AggregateObjectMapping.java:1125) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.initialize(ClassDescriptor.java:2744) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:453) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:407) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:680) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:628) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:233) [java] at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:394) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:185) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:242) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:230) [java] at x.y.z.jpa.JPAManager.initJPA(JPAManager.java:450) [java] at x.y.z.jpa.Validator.main(Validator.java:44) [java] Runtime Exceptions: [java] --------------------------------------------------------- [java] java.lang.NullPointerException [java] at org.eclipse.persistence.internal.queries.MappedKeyMapContainerPolicy.processAdditionalWritableMapKeyFields(MappedKeyMapContainerPolicy.java:621) [java] at org.eclipse.persistence.internal.descriptors.ObjectBuilder.initialize(ObjectBuilder.java:2795) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.initialize(ClassDescriptor.java:2857) [java] at org.eclipse.persistence.mappings.AggregateObjectMapping.initialize(AggregateObjectMapping.java:1125) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.initialize(ClassDescriptor.java:2744) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:453) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:407) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:680) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:628) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:233) [java] at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:394) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:185) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:242) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:230) [java] at x.y.z.jpa.JPAManager.initJPA(JPAManager.java:450) [java] at x.y.z.jpa.Validator.main(Validator.java:44) [java] java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 [java] at java.util.ArrayList.RangeCheck(Unknown Source) [java] at java.util.ArrayList.get(Unknown Source) [java] at org.eclipse.persistence.internal.descriptors.ObjectBuilder.getPrimaryKeyClassifications(ObjectBuilder.java:2717) [java] at org.eclipse.persistence.mappings.AggregateObjectMapping.postInitialize(AggregateObjectMapping.java:1321) [java] at org.eclipse.persistence.descriptors.ClassDescriptor.postInitialize(ClassDescriptor.java:3343) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:467) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:407) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:680) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:628) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:233) [java] at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:394) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:185) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:242) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:230) [java] at x.y.z.jpa.JPAManager.initJPA(JPAManager.java:450) [java] at x.y.z.jpa.Validator.main(Validator.java:44) [java] Exception in thread "main" javax.persistence.PersistenceException: Exception [EclipseLink-0] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.IntegrityException [java] Descriptor Exceptions: [java] --------------------------------------------------------- [java] Exception [EclipseLink-94] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.DescriptorException [java] Exception Description: Descriptors must have a table name defined. [java] Descriptor: RelationalDescriptor(x.y.z.AnotherEmbedded --> []) [java] Runtime Exceptions: [java] --------------------------------------------------------- [java] java.lang.NullPointerException [java] java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 [java] at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:422) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:185) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:242) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:230) [java] at x.y.z.jpa.JPAManager.initJPA(JPAManager.java:450) [java] at x.y.z.jpa.Validator.main(Validator.java:44) [java] Caused by: Exception [EclipseLink-0] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.IntegrityException [java] Descriptor Exceptions: [java] --------------------------------------------------------- [java] Exception [EclipseLink-94] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.DescriptorException [java] Exception Description: Descriptors must have a table name defined. [java] Descriptor: RelationalDescriptor(x.y.z.AnotherEmbedded --> []) [java] Runtime Exceptions: [java] --------------------------------------------------------- [java] java.lang.NullPointerException [java] java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:476) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:407) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:680) [java] at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:628) [java] at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:233) [java] at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:394) [java] ... 5 more Reproducible: Always Steps to Reproduce: 1. use the attached classes 2. compiling & enhancing 3. schema generation -> exception
Created attachment 193363 [details] Classes
I re-checked the spec, just to be sure. The object model is valid (according to 2.5 + 2.6).
Setting target and priority. See the following page for the meanings of these fields: http://wiki.eclipse.org/EclipseLink/Development/Bugs/Guidelines Community: Please vote for this bug if it is important to you. Votes are one of the main criteria we use to determine which bugs to fix next.
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink