openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Curtis (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OPENJPA-2360) ClassCastException: DetachedValueStateManager cannot be cast to StateManagerImpl
Date Wed, 08 May 2013 13:39:15 GMT

    [ 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

Mime
View raw message