[
https://issues.apache.org/jira/browse/OPENJPA-2594?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Budarov updated OPENJPA-2594:
---------------------------------------
Attachment: embedded-deletion.zip
> Deleting an object with embedded field causes exception under some
> circumstances
> --------------------------------------------------------------------------------
>
> Key: OPENJPA-2594
> URL: https://issues.apache.org/jira/browse/OPENJPA-2594
> Project: OpenJPA
> Issue Type: Bug
> Affects Versions: 2.3.0
> Reporter: Alexander Budarov
> Priority: Minor
> Attachments: embedded-deletion.zip
>
>
> Stacktrace:
> {code}
> <openjpa-2.3.0-r422266:1540826 fatal store error>
> org.apache.openjpa.persistence.RollbackException: The transaction has been
> rolled back. See the nested exceptions for details on the errors that
> occurred.
> at
> org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:594)
> at
> testcase.DeleteObjectWithEmbeddedTest.testDeletion(DeleteObjectWithEmbeddedTest.java:62)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at
> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)
> at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
> at
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
> Caused by: <openjpa-2.3.0-r422266:1540826 fatal general error>
> org.apache.openjpa.persistence.PersistenceException: The transaction has been
> rolled back. See the nested exceptions for details on the errors that
> occurred.
> at
> org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2370)
> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2207)
> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2105)
> at
> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:2023)
> at
> org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
> at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1528)
> at
> org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:933)
> at
> org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:570)
> ... 18 more
> Caused by: <openjpa-2.3.0-r422266:1540826 fatal general error>
> org.apache.openjpa.persistence.PersistenceException: null
> at
> org.apache.openjpa.jdbc.meta.strats.EmbedFieldStrategy$NullEmbeddedStateManager.fetchInitialField(EmbedFieldStrategy.java:1058)
> at
> org.apache.openjpa.jdbc.meta.strats.RelationFieldStrategy.delete(RelationFieldStrategy.java:421)
> at
> org.apache.openjpa.jdbc.meta.FieldMapping.delete(FieldMapping.java:704)
> at
> org.apache.openjpa.jdbc.meta.strats.EmbedFieldStrategy.delete(EmbedFieldStrategy.java:262)
> at
> org.apache.openjpa.jdbc.meta.strats.EmbedFieldStrategy.delete(EmbedFieldStrategy.java:242)
> at
> org.apache.openjpa.jdbc.meta.FieldMapping.delete(FieldMapping.java:704)
> at
> org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.delete(AbstractUpdateManager.java:295)
> at
> org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.populateRowManager(AbstractUpdateManager.java:170)
> at
> org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:96)
> at
> org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:77)
> at
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:732)
> at
> org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
> ... 25 more
> {code}
> Test project attached.
> In order to face exception, several conditions must be met:
> 1) @EmbeddedMapping(nullIndicatorAttributeName = "city")
> annotation.
> 2) When persisting entity with embedded object, do not fill mentioned above
> "city" field.
> 3) Embedded object need to have another relation link (like in test project,
> Address -> Country).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)