[ 
https://issues.apache.org/jira/browse/OPENJPA-2360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13651887#comment-13651887
 ] 

Rick Curtis commented on OPENJPA-2360:
--------------------------------------

> My application called merge on an attached object. According to the 
> documentation this call should be ignored.
Correct. I suspect the issue is that the object that you think is attached, 
isn't. One way to check this is to call EntityManager.contains(...) prior to 
calling merge. That'll tell you if the Entity in question is managed or not.

Another question thing to look at is the cascade merge attributes on your 
Entity. Is is possible that you call merge on a managed Entity, but it has 
fields that are detached, and those fields have cascade.merge specified? (I'm 
not sure if you can have a relationship from a managed Entity to a detached 
one?)

Again, some sort of a small-ish, recreatable testcase would speed things up 
considerably.
                
> ClassCastException: DetachedValueStateManager cannot be cast to 
> StateManagerImpl
> --------------------------------------------------------------------------------
>
>                 Key: OPENJPA-2360
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2360
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc, kernel
>    Affects Versions: 2.2.1
>            Reporter: Guillaume Chauvet
>            Priority: Blocker
>         Attachments: OPENJPA-2360.patch
>
>
> The corresponding stacktrace :
> ==========================================
> Caused by: <openjpa-2.2.2-QFD-r422266:1446687M nonfatal general error> 
> org.apache.openjpa.persistence.PersistenceException: 
> org.apache.openjpa.kernel.DetachedValueStateManager cannot be cast to 
> org.apache.openjpa.kernel.StateManagerImpl
>       at 
> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:2002)
>       at 
> org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
>       at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1518)
>       at 
> org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:933)
>       at 
> org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:570)
>       ... 39 more
> Caused by: java.lang.ClassCastException: 
> org.apache.openjpa.kernel.DetachedValueStateManager cannot be cast to 
> org.apache.openjpa.kernel.StateManagerImpl
>       at 
> org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:134)
>       at 
> org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:79)
>       at 
> org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:100)
>       at 
> org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:88)
>       at 
> org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:550)
>       at 
> org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:107)
>       at 
> org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
>       at 
> org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:105)
>       at 
> org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:78)
>       at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:732)
>       at 
> org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>       at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2178)
>       at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2076)
>       at 
> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1994)
>       ... 43 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to