Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2021-11-03 03:56:00 +0000
committerEike Stepper2021-11-03 03:56:00 +0000
commita44e2799d89eb22157a9d0728b1669f71869b311 (patch)
treee873fc50e8283e3d2d230b67ef20c643dbef6e32 /plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common
parentf6c85b9891c94597ae4edc556a11738239ce64b6 (diff)
downloadcdo-a44e2799d89eb22157a9d0728b1669f71869b311.tar.gz
cdo-a44e2799d89eb22157a9d0728b1669f71869b311.tar.xz
cdo-a44e2799d89eb22157a9d0728b1669f71869b311.zip
[576969] Revisions in the CDORevisionCache should be interned
https://bugs.eclipse.org/bugs/show_bug.cgi?id=576969
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common')
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/AbstractCDORevisionCache.java21
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionManagerImpl.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/NOOPRevisionCache.java7
3 files changed, 29 insertions, 1 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/AbstractCDORevisionCache.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/AbstractCDORevisionCache.java
index cae86fce8a..ead694053a 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/AbstractCDORevisionCache.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/AbstractCDORevisionCache.java
@@ -18,6 +18,7 @@ import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.branch.CDOBranchVersion;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.revision.CDORevision;
+import org.eclipse.emf.cdo.common.revision.CDORevisionInterner;
import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
import org.eclipse.emf.cdo.internal.common.bundle.OM;
import org.eclipse.emf.cdo.spi.common.branch.CDOBranchUtil;
@@ -48,6 +49,8 @@ public abstract class AbstractCDORevisionCache extends Lifecycle implements Inte
private static boolean disableGC;
+ private static boolean warnAboutDeprecation = true;
+
@ExcludeFromDump
private final CleanableReferenceQueue<InternalCDORevision> referenceQueue = new CleanableReferenceQueue<InternalCDORevision>()
{
@@ -222,6 +225,24 @@ public abstract class AbstractCDORevisionCache extends Lifecycle implements Inte
}
}
+ @Deprecated
+ @Override
+ public void addRevision(CDORevision revision)
+ {
+ addRevision(revision, this);
+ }
+
+ static void addRevision(CDORevision revision, CDORevisionInterner interner)
+ {
+ if (warnAboutDeprecation)
+ {
+ warnAboutDeprecation = false;
+ OM.LOG.warn("As of CDO 4.15 use internRevision() instead of addRevision()");
+ }
+
+ interner.internRevision(revision);
+ }
+
/**
* @author Eike Stepper
*/
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionManagerImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionManagerImpl.java
index b5ab6b26eb..1a48acad6f 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionManagerImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionManagerImpl.java
@@ -608,7 +608,7 @@ public class CDORevisionManagerImpl extends Lifecycle implements InternalCDORevi
@Override
public void addRevision(CDORevision revision)
{
- internRevision(revision);
+ AbstractCDORevisionCache.addRevision(revision, this);
}
@Override
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/NOOPRevisionCache.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/NOOPRevisionCache.java
index 208d531e72..d32aa4bb11 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/NOOPRevisionCache.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/NOOPRevisionCache.java
@@ -98,6 +98,13 @@ public class NOOPRevisionCache extends Lifecycle implements InternalCDORevisionC
return null;
}
+ @Deprecated
+ @Override
+ public void addRevision(CDORevision revision)
+ {
+ AbstractCDORevisionCache.addRevision(revision, this);
+ }
+
@Override
public CDORevision internRevision(CDORevision revision)
{

Back to the top