Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2018-11-11 07:40:02 +0000
committerEike Stepper2018-11-11 07:40:02 +0000
commita40d50ce4fd84ed7a6527a4250b61ebb755b9f1a (patch)
treebfdd336b9e02540c491d3a2384c13e7f65b392fa /plugins/org.eclipse.emf.cdo/src
parentce0922f8c77ea376bb85111a26353c29bd315218 (diff)
downloadcdo-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')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/CDOLock.java5
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLockImpl.java21
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java5
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);
}
}
}

Back to the top