From 729a21108038d2b81ce422486059e59a98fb1511 Mon Sep 17 00:00:00 2001 From: Eike Stepper Date: Tue, 30 Jun 2020 07:12:02 +0200 Subject: [564757] Provide a way to unfreeze revisions https://bugs.eclipse.org/bugs/show_bug.cgi?id=564757 --- .../META-INF/MANIFEST.MF | 68 +++++++++++----------- plugins/org.eclipse.emf.cdo.common/pom.xml | 2 +- .../cdo/internal/common/revision/CDOListImpl.java | 5 ++ .../cdo/spi/common/revision/BaseCDORevision.java | 26 +++++++++ 4 files changed, 66 insertions(+), 35 deletions(-) diff --git a/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF index da2e9962f7..cecc034fb4 100644 --- a/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-SymbolicName: org.eclipse.emf.cdo.common;singleton:=true -Bundle-Version: 4.10.1.qualifier +Bundle-Version: 4.11.0.qualifier Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-Localization: plugin @@ -15,21 +15,21 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)";visibili org.eclipse.emf.ecore.change;bundle-version="[2.5.0,3.0.0)";visibility:=reexport, org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)";visibility:=reexport, org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)";visibility:=reexport -Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", - org.eclipse.emf.cdo.common.admin;version="4.10.1", - org.eclipse.emf.cdo.common.branch;version="4.10.1", - org.eclipse.emf.cdo.common.commit;version="4.10.1", - org.eclipse.emf.cdo.common.commit.handler;version="4.10.1", - org.eclipse.emf.cdo.common.id;version="4.10.1", - org.eclipse.emf.cdo.common.lob;version="4.10.1", - org.eclipse.emf.cdo.common.lock;version="4.10.1", - org.eclipse.emf.cdo.common.model;version="4.10.1", - org.eclipse.emf.cdo.common.protocol;version="4.10.1", - org.eclipse.emf.cdo.common.revision;version="4.10.1", - org.eclipse.emf.cdo.common.revision.delta;version="4.10.1", - org.eclipse.emf.cdo.common.security;version="4.10.1", - org.eclipse.emf.cdo.common.util;version="4.10.1", - org.eclipse.emf.cdo.internal.common;version="4.10.1"; +Export-Package: org.eclipse.emf.cdo.common;version="4.11.0", + org.eclipse.emf.cdo.common.admin;version="4.11.0", + org.eclipse.emf.cdo.common.branch;version="4.11.0", + org.eclipse.emf.cdo.common.commit;version="4.11.0", + org.eclipse.emf.cdo.common.commit.handler;version="4.11.0", + org.eclipse.emf.cdo.common.id;version="4.11.0", + org.eclipse.emf.cdo.common.lob;version="4.11.0", + org.eclipse.emf.cdo.common.lock;version="4.11.0", + org.eclipse.emf.cdo.common.model;version="4.11.0", + org.eclipse.emf.cdo.common.protocol;version="4.11.0", + org.eclipse.emf.cdo.common.revision;version="4.11.0", + org.eclipse.emf.cdo.common.revision.delta;version="4.11.0", + org.eclipse.emf.cdo.common.security;version="4.11.0", + org.eclipse.emf.cdo.common.util;version="4.11.0", + org.eclipse.emf.cdo.internal.common;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.common, org.eclipse.emf.cdo.common.db, org.eclipse.emf.cdo, @@ -38,10 +38,10 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", org.eclipse.emf.cdo.server.net4j, org.eclipse.emf.cdo.ui, org.eclipse.emf.cdo.tests", - org.eclipse.emf.cdo.internal.common.branch;version="4.10.1"; + org.eclipse.emf.cdo.internal.common.branch;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.tests", - org.eclipse.emf.cdo.internal.common.bundle;version="4.10.1";x-internal:=true, - org.eclipse.emf.cdo.internal.common.commit;version="4.10.1"; + org.eclipse.emf.cdo.internal.common.bundle;version="4.11.0";x-internal:=true, + org.eclipse.emf.cdo.internal.common.commit;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.common, org.eclipse.emf.cdo.common.db, org.eclipse.emf.cdo, @@ -50,7 +50,7 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", org.eclipse.emf.cdo.server.net4j, org.eclipse.emf.cdo.ui, org.eclipse.emf.cdo.tests", - org.eclipse.emf.cdo.internal.common.id;version="4.10.1"; + org.eclipse.emf.cdo.internal.common.id;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.common, org.eclipse.emf.cdo.common.db, org.eclipse.emf.cdo, @@ -61,9 +61,9 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", org.eclipse.emf.cdo.tests, org.eclipse.emf.cdo.admin, org.eclipse.emf.cdo.server.admin", - org.eclipse.emf.cdo.internal.common.lock;version="4.10.1";x-internal:=true, - org.eclipse.emf.cdo.internal.common.messages;version="4.10.1";x-internal:=true, - org.eclipse.emf.cdo.internal.common.model;version="4.10.1"; + org.eclipse.emf.cdo.internal.common.lock;version="4.11.0";x-internal:=true, + org.eclipse.emf.cdo.internal.common.messages;version="4.11.0";x-internal:=true, + org.eclipse.emf.cdo.internal.common.model;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.common, org.eclipse.emf.cdo.common.db, org.eclipse.emf.cdo, @@ -72,7 +72,7 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", org.eclipse.emf.cdo.server.net4j, org.eclipse.emf.cdo.ui, org.eclipse.emf.cdo.tests", - org.eclipse.emf.cdo.internal.common.revision;version="4.10.1"; + org.eclipse.emf.cdo.internal.common.revision;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.common, org.eclipse.emf.cdo.common.db, org.eclipse.emf.cdo, @@ -81,7 +81,7 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", org.eclipse.emf.cdo.server.net4j, org.eclipse.emf.cdo.ui, org.eclipse.emf.cdo.tests", - org.eclipse.emf.cdo.internal.common.revision.delta;version="4.10.1"; + org.eclipse.emf.cdo.internal.common.revision.delta;version="4.11.0"; x-friends:="org.eclipse.emf.cdo.common, org.eclipse.emf.cdo.common.db, org.eclipse.emf.cdo, @@ -90,14 +90,14 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.10.1", org.eclipse.emf.cdo.server.net4j, org.eclipse.emf.cdo.ui, org.eclipse.emf.cdo.tests", - org.eclipse.emf.cdo.spi.common;version="4.10.1", - org.eclipse.emf.cdo.spi.common.admin;version="4.10.1", - org.eclipse.emf.cdo.spi.common.branch;version="4.10.1", - org.eclipse.emf.cdo.spi.common.commit;version="4.10.1", - org.eclipse.emf.cdo.spi.common.id;version="4.10.1", - org.eclipse.emf.cdo.spi.common.lock;version="4.10.1", - org.eclipse.emf.cdo.spi.common.model;version="4.10.1", - org.eclipse.emf.cdo.spi.common.protocol;version="4.10.1", - org.eclipse.emf.cdo.spi.common.revision;version="4.10.1" + org.eclipse.emf.cdo.spi.common;version="4.11.0", + org.eclipse.emf.cdo.spi.common.admin;version="4.11.0", + org.eclipse.emf.cdo.spi.common.branch;version="4.11.0", + org.eclipse.emf.cdo.spi.common.commit;version="4.11.0", + org.eclipse.emf.cdo.spi.common.id;version="4.11.0", + org.eclipse.emf.cdo.spi.common.lock;version="4.11.0", + org.eclipse.emf.cdo.spi.common.model;version="4.11.0", + org.eclipse.emf.cdo.spi.common.protocol;version="4.11.0", + org.eclipse.emf.cdo.spi.common.revision;version="4.11.0" Automatic-Module-Name: org.eclipse.emf.cdo.common Eclipse-RegisterBuddy: org.eclipse.net4j.util diff --git a/plugins/org.eclipse.emf.cdo.common/pom.xml b/plugins/org.eclipse.emf.cdo.common/pom.xml index 816af48323..2498e23264 100644 --- a/plugins/org.eclipse.emf.cdo.common/pom.xml +++ b/plugins/org.eclipse.emf.cdo.common/pom.xml @@ -25,7 +25,7 @@ org.eclipse.emf.cdo org.eclipse.emf.cdo.common - 4.10.1-SNAPSHOT + 4.11.0-SNAPSHOT eclipse-plugin diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListImpl.java index 246a2e4dee..09dd763359 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListImpl.java @@ -110,6 +110,11 @@ public class CDOListImpl extends BasicEList implements InternalCDOList.C flags |= FROZEN_FLAG; } + public void unfreeze() + { + flags &= ~FROZEN_FLAG; + } + private void checkFrozen() { if ((flags & FROZEN_FLAG) != 0) diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java index c38cae2d52..0120906074 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java @@ -1098,6 +1098,32 @@ public abstract class BaseCDORevision extends AbstractCDORevision } } + /** + * @since 4.11 + */ + public void unfreeze() + { + flags &= ~FROZEN_FLAG; + + if (isReadable()) + { + EStructuralFeature[] features = getAllPersistentFeatures(); + for (int i = 0; i < features.length; i++) + { + EStructuralFeature feature = features[i]; + if (feature.isMany()) + { + Object value = doGetValue(i); + if (value instanceof CDOListImpl) + { + CDOListImpl list = (CDOListImpl)value; + list.unfreeze(); + } + } + } + } + } + /** * @since 4.2 */ -- cgit v1.2.3