问题标签 [cdo-emf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
94 浏览

java - 并发 CDO 写事务

据我了解,CDOTransactions提供读写访问包含的资源和对象。我有一个资源集,它有两个 CDO 资源文件,resource1,resource2。

拥有 session1 和 TransactionalEditingDomain1 的 User1 打开 CDOTransaction T1。

具有 session2 和 TransactionalEditingDomain2 的 User2 打开 CDOTransaction T2。

使用 T1,user1 创建一个新的 CDO 对象并添加到 resource1。

使用 T2,user2 创建一个新的 CDO 对象并添加到 resource2。

当 user1 提交事务 T1 时,它会保存更改,但会引发下面提到的 IllegalStateException。

java.lang.IllegalStateException:在 org.eclipse.emf.transaction.impl.TransactionChangeRecorder.appendNotification( TransactionChangeRecorder.java:302) 在 org.eclipse.emf.transaction.impl.TransactionChangeRecorder.processObjectNotification(TransactionChangeRecorder.java:284) 在 org.eclipse.emf.transaction.impl.TransactionChangeRecorder.notifyChanged(TransactionChangeRecorder.java:240) 在 org .eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374) 在 org.eclipse.emf.common.notify.impl.NotificationChainImpl.dispatch(NotificationChainImpl.java:98) 在 org.eclipse.emf .common.notify.impl.NotificationChainImpl。在 org.eclipse.emf.internal.cdo.view.CDOViewImpl.doInvalidate(CDOViewImpl. java:999) 在 org.eclipse.emf.internal.cdo.view.CDOViewImpl$InvalidationRunnable.doRun(CDOViewImpl.java:1956) 在 org.eclipse.net4j.internal.util.concurrent.RunnableWithName.run(RunnableWithName.java: 46) 在 org.eclipse.net4j.internal.util.concurrent.ExecutorWorkSerializer$1.run(ExecutorWorkSerializer.java:105) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent。 ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)sendDeltaNotifications(CDOViewImpl.java:1111) 在 org.eclipse.emf.internal.cdo.view.CDOViewImpl.doInvalidate(CDOViewImpl.java:999) 在 org.eclipse.emf.internal.cdo.view.CDOViewImpl$InvalidationRunnable.doRun( CDOViewImpl.java:1956) 在 org.eclipse.net4j.internal.util.concurrent.RunnableWithName.run(RunnableWithName.java:46) 在 org.eclipse.net4j.internal.util.concurrent.ExecutorWorkSerializer$1.run(ExecutorWorkSerializer.java :105) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.爪哇:745)sendDeltaNotifications(CDOViewImpl.java:1111) 在 org.eclipse.emf.internal.cdo.view.CDOViewImpl.doInvalidate(CDOViewImpl.java:999) 在 org.eclipse.emf.internal.cdo.view.CDOViewImpl$InvalidationRunnable.doRun( CDOViewImpl.java:1956) 在 org.eclipse.net4j.internal.util.concurrent.RunnableWithName.run(RunnableWithName.java:46) 在 org.eclipse.net4j.internal.util.concurrent.ExecutorWorkSerializer$1.run(ExecutorWorkSerializer.java :105) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.爪哇:745)CDOViewImpl$InvalidationRunnable.doRun(CDOViewImpl.java:1956) at org.eclipse.net4j.internal.util.concurrent.RunnableWithName.run(RunnableWithName.java:46) at org.eclipse.net4j.internal.util.concurrent.ExecutorWorkSerializer$1 .run(ExecutorWorkSerializer.java:105) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang。线程运行(线程.java:745)CDOViewImpl$InvalidationRunnable.doRun(CDOViewImpl.java:1956) at org.eclipse.net4j.internal.util.concurrent.RunnableWithName.run(RunnableWithName.java:46) at org.eclipse.net4j.internal.util.concurrent.ExecutorWorkSerializer$1 .run(ExecutorWorkSerializer.java:105) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang。线程运行(线程.java:745)第1142章第1142章

如果我能得到这个问题的答案,那就太好了。