Добрый день!
Недавно перевели проект с версии jmix 2.7.* на версию 2.8.2.
Проект многомодульный.
У разработчиков локально начали периодически возникать следующие ошибки (в разных модулях системы):
12:41:25 > Task :***-warehouse:***-warehouse:enhanceJmixMain FAILED
12:41:25 Running EclipseLink enhancer in project ':***-warehouse:***-warehouse' for source set 'main'
12:41:25 Exception in thread "main" Local Exception Stack:
12:41:25 Exception [EclipseLink-40007] (Eclipse Persistence Services - 4.0.6-4-jmix.v202605032340-a6bf61b630c7faa9602057be36cc4b0c3ef83cde): org.eclipse.persistence.exceptions.StaticWeaveException
12:41:25 Exception Description: An exception was thrown while weaving: [Ljava.lang.String;@530712d
12:41:25 Internal Exception: jakarta.persistence.PersistenceException: Exception [EclipseLink-28018] (Eclipse Persistence Services - 4.0.6-4-jmix.v202605032340-a6bf61b630c7faa9602057be36cc4b0c3ef83cde): org.eclipse.persistence.exceptions.EntityManagerSetupException
12:41:25 Exception Description: Predeployment of PersistenceUnit [main] failed.
12:41:25 Internal Exception: Exception [EclipseLink-7250] (Eclipse Persistence Services - 4.0.6-4-jmix.v202605032340-a6bf61b630c7faa9602057be36cc4b0c3ef83cde): org.eclipse.persistence.exceptions.ValidationException
12:41:25 Exception Description: [class com.company.warehouse.entity.Warehouse] uses a non-entity [class com.company.employee.entity.Department] as target entity in the relationship attribute [field department].
12:41:25 at org.eclipse.persistence.exceptions.StaticWeaveException.exceptionPerformWeaving(StaticWeaveException.java:140)
12:41:25 at org.eclipse.persistence.tools.weaving.jpa.StaticWeave.main(StaticWeave.java:88)
12:41:25 Caused by: jakarta.persistence.PersistenceException: Exception [EclipseLink-28018] (Eclipse Persistence Services - 4.0.6-4-jmix.v202605032340-a6bf61b630c7faa9602057be36cc4b0c3ef83cde): org.eclipse.persistence.exceptions.EntityManagerSetupException
12:41:25 Exception Description: Predeployment of PersistenceUnit [main] failed.
12:41:25 Internal Exception: Exception [EclipseLink-7250] (Eclipse Persistence Services - 4.0.6-4-jmix.v202605032340-a6bf61b630c7faa9602057be36cc4b0c3ef83cde): org.eclipse.persistence.exceptions.ValidationException
12:41:25 Exception Description: [class com.company.warehouse.entity.Warehouse] uses a non-entity [class com.company.employee.entity.Department] as target entity in the relationship attribute [field department].
12:41:25 at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.createPredeployFailedPersistenceException(EntityManagerSetupImpl.java:2162)
12:41:25 at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:2138)
12:41:25 at org.eclipse.persistence.tools.weaving.jpa.StaticWeaveClassTransformer.buildClassTransformers(StaticWeaveClassTransformer.java:128)
12:41:25 at org.eclipse.persistence.tools.weaving.jpa.StaticWeaveClassTransformer.<init>(StaticWeaveClassTransformer.java:78)
12:41:25 at org.eclipse.persistence.tools.weaving.jpa.StaticWeaveProcessor.process(StaticWeaveProcessor.java:247)
12:41:25 at org.eclipse.persistence.tools.weaving.jpa.StaticWeaveProcessor.performWeaving(StaticWeaveProcessor.java:169)
12:41:25 at org.eclipse.persistence.tools.weaving.jpa.StaticWeave.start(StaticWeave.java:117)
12:41:25 at org.eclipse.persistence.tools.weaving.jpa.StaticWeave.main(StaticWeave.java:86)
12:41:25 Caused by: Exception [EclipseLink-28018] (Eclipse Persistence Services - 4.0.6-4-jmix.v202605032340-a6bf61b630c7faa9602057be36cc4b0c3ef83cde): org.eclipse.persistence.exceptions.EntityManagerSetupException
12:41:25 Exception Description: Predeployment of PersistenceUnit [main] failed.
12:41:25 Internal Exception: Exception [EclipseLink-7250] (Eclipse Persistence Services - 4.0.6-4-jmix.v202605032340-a6bf61b630c7faa9602057be36cc4b0c3ef83cde): org.eclipse.persistence.exceptions.ValidationException
12:41:25 Exception Description: [class com.company.warehouse.entity.Warehouse] uses a non-entity [class com.company.employee.entity.Department] as target entity in the relationship attribute [field department].
12:41:25 at org.eclipse.persistence.exceptions.EntityManagerSetupException.predeployFailed(EntityManagerSetupException.java:233)
12:41:25 ... 8 more
12:41:25 Caused by: Exception [EclipseLink-7250] (Eclipse Persistence Services - 4.0.6-4-jmix.v202605032340-a6bf61b630c7faa9602057be36cc4b0c3ef83cde): org.eclipse.persistence.exceptions.ValidationException
12:41:25 Exception Description: [class com.company.warehouse.entity.Warehouse] uses a non-entity [class com.company.employee.entity.Department] as target entity in the relationship attribute [field department].
12:41:25 at org.eclipse.persistence.exceptions.ValidationException.nonEntityTargetInRelationship(ValidationException.java:1398)
12:41:25 at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.RelationshipAccessor.getReferenceDescriptor(RelationshipAccessor.java:577)
12:41:25 at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.ObjectAccessor.processForeignKeyRelationship(ObjectAccessor.java:678)
12:41:25 at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.ObjectAccessor.processOwningMappingKeys(ObjectAccessor.java:752)
12:41:25 at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.ManyToOneAccessor.process(ManyToOneAccessor.java:132)
12:41:25 at org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processOwningRelationshipAccessors(MetadataProject.java:1657)
12:41:25 at org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processStage3(MetadataProject.java:1914)
12:41:25 at org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processORMMetadata(MetadataProcessor.java:604)
12:41:25 at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:644)
12:41:25 at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:2059)
12:41:25 ... 6 more
Помогает clean и последующая сборка проекта, но ошибки возникают достаточно часто.
Недавно “поймали” ее при сборке проекта на Jenkins. Очистка workspace там не помогла, смогли собрать когда сделали сборку gradle в один поток.
./gradlew -Dorg.gradle.jvmargs=-Xmx4g :app:bootJar -Pvaadin.productionMode=true –no-parallel --max-workers=1
Не является ли данная проблема известным случаем, в чем может быть причина, есть ли варианты это исправить? Рассматриваем возможность дальнейшего перехода на Jmix 3.*