Hi

My code that was working with tomee 1.5.2 (openEJB 4.5.2 I guess).

Now I am trying to use tomee 1.6.0 (openEJB 4.6.0 I guess again).

My class uses a primary key following this structure

@Entity
public class UserGroupAccess implements Serializable{

    /**
     *
     */
    private static final long serialVersionUID = 7233673815582184369L;

    @ManyToOne
    @JoinColumn(name="applicationId")
    @MapsId("applicationId")
    private Application application;

    @ManyToOne
    @JoinColumn(name="securityLevelId")
    @MapsId("securityLevelId")
    private SecurityLevel securityLevel;

    @ManyToOne
    @JoinColumn(name="userId")
    @MapsId("userId")
    private User user;

    @EmbeddedId
    private UserGroupAccessPK pk;
(...)
}

and the primary key

@Embeddable
public class UserGroupAccessPK implements Serializable{

    /**
     *
     */
    private static final long serialVersionUID = 7233673815582184369L;

    public UserGroupAccessPK(long application,
            long securityLevel, long user) {
        super();
        this.applicationId = application;
        this.securityLevelId = securityLevel;
        this.userId = user;
    }

    public UserGroupAccessPK() {
        super();
    }

    private long applicationId;

    private long securityLevelId;

    private long userId;
(...)
}

These classes are enhanced manually with
org.apache.openjpa.enhance.PCEnhancer

While trying to run some tests, I've got the following exception

INFO: Starting OpenJPA 2.3.0-SNAPSHOT
Nov 20, 2013 10:31:32 PM null
INFO: Connected to Oracle version 11.11 using JDBC driver Oracle JDBC
driver version 12.1.0.1.0.
Nov 20, 2013 10:31:39 PM
org.apache.geronimo.transaction.manager.TransactionImpl beforeCompletion
WARNING: Unexpected exception from beforeCompletion; transaction will roll
back
<openjpa-2.3.0-SNAPSHOT-r422266:1535082 nonfatal general error>
org.apache.openjpa.persistence.PersistenceException:
org.apache.openjpa.kernel.DetachedStateManager cannot be cast to
org.apache.openjpa.kernel.StateManagerImpl
    at
org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:2027)
    at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:527)
    at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:512)
    at
org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:413)
    at
org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:262)
    at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252)
    at
org.apache.openejb.core.transaction.JtaTransactionPolicy.completeTransaction(JtaTransactionPolicy.java:328)
    at
org.apache.openejb.core.transaction.TxRequired.commit(TxRequired.java:75)
    at
org.apache.openejb.core.transaction.EjbTransactionUtil.afterInvoke(EjbTransactionUtil.java:76)
    at
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:231)
    at
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:181)
    at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:272)
    at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:267)
    at
org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:90)
    at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:306)
Caused by: java.lang.ClassCastException:
org.apache.openjpa.kernel.DetachedStateManager cannot be cast to
org.apache.openjpa.kernel.StateManagerImpl
    at
org.apache.openjpa.jdbc.meta.FieldMapping.setPKValueFromMappedByIdField(FieldMapping.java:640)
    at
org.apache.openjpa.jdbc.meta.FieldMapping.insert(FieldMapping.java:622)
    at
org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.insert(AbstractUpdateManager.java:239)
    at
org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.populateRowManager(AbstractUpdateManager.java:166)
    at
org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:110)
    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:2203)
    at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2101)
    at
org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:2019)
    ... 17 more

Exception in thread "main" javax.ejb.EJBTransactionRolledbackException:
Transaction was rolled back, presumably because setRollbackOnly was called
during a synchronization
    at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:379)
    at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:310)
Caused by: javax.transaction.RollbackException: Unable to commit:
transaction marked for rollback
    at
org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:272)
    at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252)
    at
org.apache.openejb.core.transaction.JtaTransactionPolicy.completeTransaction(JtaTransactionPolicy.java:328)
    at
org.apache.openejb.core.transaction.TxRequired.commit(TxRequired.java:75)
    at
org.apache.openejb.core.transaction.EjbTransactionUtil.afterInvoke(EjbTransactionUtil.java:76)
    at
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:231)
    at
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:181)
    at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:272)
    at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:267)
    at
org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:90)
    at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:306)
    ... 3 more
Caused by:
org.apache.geronimo.transaction.manager.SetRollbackOnlyException:
setRollbackOnly() called.  See stacktrace for origin
    at
org.apache.geronimo.transaction.manager.TransactionImpl.setRollbackOnly(TransactionImpl.java:126)
    at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.setRollbackOnly(TransactionManagerImpl.java:243)
    at
org.apache.openejb.core.TransactionSynchronizationRegistryWrapper.setRollbackOnly(TransactionSynchronizationRegistryWrapper.java:71)
    at
org.apache.openjpa.ee.RegistryManagedRuntime$TransactionManagerRegistryFacade.setRollbackOnly(RegistryManagedRuntime.java:128)
    at
org.apache.openjpa.ee.RegistryManagedRuntime.setRollbackOnly(RegistryManagedRuntime.java:74)
    at
org.apache.openjpa.ee.AutomaticManagedRuntime.setRollbackOnly(AutomaticManagedRuntime.java:274)
    at
org.apache.openjpa.kernel.BrokerImpl.setRollbackOnlyInternal(BrokerImpl.java:1670)
    at
org.apache.openjpa.kernel.BrokerImpl.setRollbackOnly(BrokerImpl.java:1650)
    at
org.apache.openjpa.kernel.DelegatingBroker.setRollbackOnly(DelegatingBroker.java:981)
    at
org.apache.openjpa.persistence.EntityManagerImpl.setRollbackOnly(EntityManagerImpl.java:631)
    at
org.apache.openjpa.persistence.PersistenceExceptions$2.translate(PersistenceExceptions.java:77)
    at
org.apache.openjpa.kernel.BrokerImpl.translateManagedCompletionException(BrokerImpl.java:2089)
    at
org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:2027)
    at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:527)
    at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:512)
    at
org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:413)
    at
org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:262)
    ... 13 more

Any help is welcome.

Thanks in advance.

Leo

Reply via email to