diff options
author | Eike Stepper | 2018-11-11 07:40:02 +0000 |
---|---|---|
committer | Eike Stepper | 2018-11-11 07:40:02 +0000 |
commit | a40d50ce4fd84ed7a6527a4250b61ebb755b9f1a (patch) | |
tree | bfdd336b9e02540c491d3a2384c13e7f65b392fa /plugins/org.eclipse.emf.cdo/src | |
parent | ce0922f8c77ea376bb85111a26353c29bd315218 (diff) | |
download | cdo-a40d50ce4fd84ed7a6527a4250b61ebb755b9f1a.tar.gz cdo-a40d50ce4fd84ed7a6527a4250b61ebb755b9f1a.tar.xz cdo-a40d50ce4fd84ed7a6527a4250b61ebb755b9f1a.zip |
[541003] LockStatePrefetcher does not update other views
https://bugs.eclipse.org/bugs/show_bug.cgi?id=541003
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src')
3 files changed, 24 insertions, 7 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/CDOLock.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/CDOLock.java index 1bbc5890dd..483d75157a 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/CDOLock.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/CDOLock.java @@ -36,6 +36,11 @@ public interface CDOLock extends Lock public static final int NO_WAIT = IRWLockManager.NO_WAIT; /** + * @since 4.7 + */ + public CDOObject getObject(); + + /** * @since 3.0 */ public LockType getType(); diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLockImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLockImpl.java index 50f65b1c48..d17a903570 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLockImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLockImpl.java @@ -12,6 +12,7 @@ package org.eclipse.emf.internal.cdo.object; import org.eclipse.emf.cdo.CDOLock; +import org.eclipse.emf.cdo.CDOObject; import org.eclipse.emf.cdo.common.lock.CDOLockOwner; import org.eclipse.emf.cdo.common.lock.CDOLockUtil; import org.eclipse.emf.cdo.util.LockTimeoutException; @@ -48,6 +49,11 @@ public class CDOLockImpl implements CDOLock owner = CDOLockUtil.createLockOwner(object.cdoView()); } + public InternalCDOObject getObject() + { + return object; + } + public LockType getType() { return type; @@ -163,6 +169,16 @@ public class CDOLockImpl implements CDOLock { } + public CDOObject getObject() + { + return null; + } + + public LockType getType() + { + return null; + } + public boolean isLocked() { return false; @@ -220,10 +236,5 @@ public class CDOLockImpl implements CDOLock { throw new UnsupportedOperationException(); } - - public LockType getType() - { - return null; - } } } diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java index 5cae0b99ca..00d8a84fc1 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java @@ -999,7 +999,7 @@ public class CDOViewImpl extends AbstractCDOView implements IExecutorServiceProv } } - protected CDOLockState[] getLockStates(Collection<CDOID> ids, boolean loadOnDemand) + public CDOLockState[] getLockStates(Collection<CDOID> ids, boolean loadOnDemand) { synchronized (getViewMonitor()) { @@ -2677,6 +2677,7 @@ public class CDOViewImpl extends AbstractCDOView implements IExecutorServiceProv { Set<CDOID> ids = new HashSet<CDOID>(); CDOLockStateLoadingPolicy lockStateLoadingPolicy = options().getLockStateLoadingPolicy(); + for (CDORevision revision : revisionsLoadedEvent.getPrimaryLoadedRevisions()) { // Bug 466721 : Check null if it is a about a DetachedRevision @@ -2753,7 +2754,7 @@ public class CDOViewImpl extends AbstractCDOView implements IExecutorServiceProv { if (view != CDOViewImpl.this && view.getBranch() == getBranch()) { - updateLockStates(lockStates, loadOnDemand); + ((CDOViewImpl)view).updateLockStates(lockStates, loadOnDemand); } } } |