Skip to content

JaVers should not throw exceptions when a Property is added or removed to a Class which has already persisted snapshots #232

@clxthomas

Description

@clxthomas

Hi,

comitting a class (Farm), from which a property (ownersWife) is removed (in the comitted version the property is stored), the following exception is thrown:

Exception in thread "main" JaversException: PROPERTY_NOT_FOUND JaVers runtime error - property 'ownersWife' not found in class 'de.complex.sandbox.javers.Farm'
at org.javers.core.metamodel.clazz.ManagedClass.getProperty(ManagedClass.java:73)
at org.javers.core.metamodel.object.CdoSnapshotBuilder.withChangedProperties(CdoSnapshotBuilder.java:93)
at org.javers.repository.sql.finders.CdoSnapshotObjectMapper.createObject(CdoSnapshotObjectMapper.java:51)
at org.javers.repository.sql.finders.CdoSnapshotObjectMapper.createObject(CdoSnapshotObjectMapper.java:25)
at org.polyjdbc.core.query.TransactionalQueryRunner.queryCollection(TransactionalQueryRunner.java:88)
at org.polyjdbc.core.query.TransactionalQueryRunner.queryList(TransactionalQueryRunner.java:76)
at org.javers.repository.sql.finders.CdoSnapshotFinder.queryForCdoSnapshots(CdoSnapshotFinder.java:90)
at org.javers.repository.sql.finders.CdoSnapshotFinder.getLatest(CdoSnapshotFinder.java:42)
at org.javers.repository.sql.JaversSqlRepository.getLatest(JaversSqlRepository.java:40)
at org.javers.repository.api.JaversExtendedRepository.getLatest(JaversExtendedRepository.java:100)
at org.javers.core.snapshot.GraphShadowFactory.createLatestShadow(GraphShadowFactory.java:32)
at org.javers.core.snapshot.GraphSnapshotFacade.createLatestShadow(GraphSnapshotFacade.java:22)
at org.javers.core.commit.CommitFactory.create(CommitFactory.java:76)
at org.javers.core.JaversCore.commit(JaversCore.java:61)
at de.complex.sandbox.javers.Application.main(Application.java:73)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

Maybe this relates to #178? Are there some workarounds or planned fixes for that?
Thx!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions