Community
Participate
Working Groups
Build Identifier: 3.0 When a remote view has to be invalidated, CDONotificationBuilder.buildNotification is called which does patch the indices (bug #306710). If there are more than one remote view present, the method is called multiple times which results in the indices patched more than needed. This can lead to an IndexOutOfBoundsException in some of the remote views: [ERROR] Index: 1, Size: 0 java.lang.IndexOutOfBoundsException: Index: 1, Size: 0 at java.util.ArrayList.add(Unknown Source) at org.eclipse.emf.cdo.internal.common.revision.delta.CDOAddFeatureDeltaImpl.apply(CDOAddFeatureDeltaImpl.java:50) at org.eclipse.emf.cdo.internal.common.revision.delta.CDOListFeatureDeltaImpl.apply(CDOListFeatureDeltaImpl.java:248) at org.eclipse.emf.cdo.internal.common.revision.delta.CDORevisionDeltaImpl.apply(CDORevisionDeltaImpl.java:191) at org.eclipse.emf.internal.cdo.CDOStateMachine$InvalidateTransition.execute(CDOStateMachine.java:866) at org.eclipse.emf.internal.cdo.CDOStateMachine$InvalidateTransition.execute(CDOStateMachine.java:1) at org.eclipse.net4j.util.fsm.FiniteStateMachine.process(FiniteStateMachine.java:162) at org.eclipse.emf.internal.cdo.CDOStateMachine.invalidate(CDOStateMachine.java:418) at org.eclipse.emf.internal.cdo.view.CDOViewImpl.invalidate(CDOViewImpl.java:1416) at org.eclipse.emf.internal.cdo.view.CDOViewImpl.invalidate(CDOViewImpl.java:1367) at org.eclipse.emf.internal.cdo.session.CDOSessionImpl$InvalidationRunnable.run(CDOSessionImpl.java:1205) at org.eclipse.net4j.util.concurrent.QueueRunner.work(QueueRunner.java:26) at org.eclipse.net4j.util.concurrent.QueueRunner.work(QueueRunner.java:1) at org.eclipse.net4j.util.concurrent.QueueWorker.work(QueueWorker.java:75) at org.eclipse.net4j.util.concurrent.Worker$WorkerThread.run(Worker.java:188) Reproducible: Always Steps to Reproduce: 1. open transaction T and two views A and B 2. add adapters to A and B 3. make some changes on T and commit
Created attachment 169499 [details] TestCase
Created attachment 169500 [details] proposed patch The patch creates a copy of the FeatureDelta proir to patching.
For patch & testcase: 1) The number of lines that you added/changed is smaller than 250. confirmed 2) You are the only author of these changed lines. confirmed 3) You apply the EPL to these changed lines. confirmed
Thank you Pascal. Committed to HEAD
Available in 3.0 GA: http://download.eclipse.org/modeling/emf/cdo/updates/3.0-releases/