Транзакция CDO не активна

У меня возникли проблемы с фиксацией транзакции CDO. Все работает нормально в первый раз, когда я пытаюсь зафиксировать, но во второй раз я получаю это исключение:

org.eclipse.net4j.util.lifecycle.LifecycleException: Not active: CDOTransactionImpl

Вот код:

final TransactionalEditingDomain domain = editor.getDiagramBehavior().getEditingDomain();
    domain.getCommandStack().execute(new RecordingCommand(domain) {
        protected void doExecute() {
            try {

                // Open a transaction
                CDOTransaction cdoTransaction = cdoSession.openTransaction();
                cdoTransaction.addListener(new LifeListener());

                // Create a resource
                CDOResource cdoResource = cdoTransaction.getOrCreateResource(RESOURCE);
                if (existingComponent != null) {                                                                 // update the existing component
                    cdoResource.getContents().remove(existingComponent);
                }
                cdoResource.getContents().add(component);
                cdoTransaction.commit();

                // Close the transaction
                cdoTransaction.close();

            } catch (ConcurrentAccessException e) {
                logger.error("Error during the CDO repository transaction.", e);
            } catch (CommitException e) {
                logger.error("Error commiting the CDO repository transaction.", e);
            }
        }
    });

person Simone Di Cola    schedule 12.05.2014    source источник
comment
откуда component? если это то же самое, что и при последней попытке, это может быть вашей проблемой, поскольку транзакция, которая «владеет» component, закрыта.   -  person Simiil    schedule 24.08.2016


Ответы (1)


Я не очень разбираюсь в EMF Transactions/TransactionalEditingDomains. Если вы подозреваете ошибку в CDO, отправьте сообщение об ошибке на Eclipse.org и предоставьте подробное описание проблемы, включая полную трассировку стека.

person eike    schedule 17.03.2015