Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOClassInfoImpl.java13
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_417483_Test.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.ui.ide/src/org/eclipse/emf/cdo/ui/ide/RepositoryContentProvider.java7
-rw-r--r--plugins/org.eclipse.emf.cdo.ui.team/META-INF/MANIFEST.MF8
-rw-r--r--plugins/org.eclipse.emf.cdo.ui.team/src/org/eclipse/emf/cdo/ui/internal/team/history/CDOHistoryPage.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF57
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenDurableViewAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenTransactionAction.java20
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/RemoveResourceActionDelegate.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/TransactionalBackgroundActionDelegate.java8
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/dialogs/OpenSessionDialog.java11
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDOSessionsView.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/CDOItemProvider.java8
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceImpl.java24
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java7
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java12
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java26
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java3
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java68
-rw-r--r--plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerItemProvider.java33
-rw-r--r--plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java1
22 files changed, 234 insertions, 100 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOClassInfoImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOClassInfoImpl.java
index a8df0d93cd..db826a35e9 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOClassInfoImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOClassInfoImpl.java
@@ -34,6 +34,7 @@ import org.eclipse.emf.ecore.impl.EClassImpl;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.util.FeatureMapUtil;
+import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.BitSet;
@@ -410,6 +411,12 @@ public final class CDOClassInfoImpl implements InternalCDOClassInfo, Adapter.Int
{
return null;
}
+
+ @Override
+ public String toString()
+ {
+ return MessageFormat.format("RevisionWithoutID[{0}]", getClassInfo());
+ }
}
/**
@@ -452,5 +459,11 @@ public final class CDOClassInfoImpl implements InternalCDOClassInfo, Adapter.Int
{
return null;
}
+
+ @Override
+ public String toString()
+ {
+ return MessageFormat.format("RevisionWithoutID[{0}, {1}]", getClassInfo(), id);
+ }
}
}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java
index a95435cca5..65c93e1e9f 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java
@@ -367,6 +367,6 @@ public class StubCDORevision extends AbstractCDORevision
private String getExceptionMessage()
{
- return "Unsupported operation in " + this;
+ return "Unsupported operation in " + getClass().getSimpleName();
}
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_417483_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_417483_Test.java
index 5522ab811c..9f18fe2559 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_417483_Test.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_417483_Test.java
@@ -11,7 +11,9 @@
package org.eclipse.emf.cdo.tests.bugzilla;
import org.eclipse.emf.cdo.CDODeltaNotification;
+import org.eclipse.emf.cdo.CDOObject;
import org.eclipse.emf.cdo.common.CDOCommonSession.Options.PassiveUpdateMode;
+import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.common.security.CDOPermission;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.security.Access;
@@ -395,6 +397,8 @@ public class Bugzilla_417483_Test extends AbstractCDOTest
private boolean isWritable(EObject object)
{
- return CDOUtil.getCDOObject(object).cdoRevision().isWritable();
+ CDOObject cdoObject = CDOUtil.getCDOObject(object);
+ CDORevision revision = cdoObject.cdoRevision(true);
+ return revision.isWritable();
}
}
diff --git a/plugins/org.eclipse.emf.cdo.ui.ide/src/org/eclipse/emf/cdo/ui/ide/RepositoryContentProvider.java b/plugins/org.eclipse.emf.cdo.ui.ide/src/org/eclipse/emf/cdo/ui/ide/RepositoryContentProvider.java
index a924b66083..0947772ea8 100644
--- a/plugins/org.eclipse.emf.cdo.ui.ide/src/org/eclipse/emf/cdo/ui/ide/RepositoryContentProvider.java
+++ b/plugins/org.eclipse.emf.cdo.ui.ide/src/org/eclipse/emf/cdo/ui/ide/RepositoryContentProvider.java
@@ -15,11 +15,12 @@ import org.eclipse.emf.cdo.CDOObject;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchCreatedEvent;
import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.internal.ui.actions.OpenTransactionAction;
import org.eclipse.emf.cdo.internal.ui.actions.RemoveResourceActionDelegate;
+import org.eclipse.emf.cdo.session.CDOSession;
import org.eclipse.emf.cdo.team.IRepositoryManager;
import org.eclipse.emf.cdo.team.IRepositoryProject;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.transaction.CDOTransactionCommentator;
import org.eclipse.emf.cdo.ui.CDOEditorInput;
import org.eclipse.emf.cdo.ui.CDOEditorUtil;
import org.eclipse.emf.cdo.ui.CDOEventHandler;
@@ -493,8 +494,8 @@ public class RepositoryContentProvider extends StructuredContentProvider<IWorksp
if (selection instanceof CDOResource)
{
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- CDOTransaction transaction = ((CDOResource)selection).cdoView().getSession().openTransaction();
- new CDOTransactionCommentator(transaction);
+ CDOSession session = ((CDOResource)selection).cdoView().getSession();
+ CDOTransaction transaction = OpenTransactionAction.openTransaction(session);
try
{
diff --git a/plugins/org.eclipse.emf.cdo.ui.team/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.ui.team/META-INF/MANIFEST.MF
index dbf17b2b08..6ea8366a80 100644
--- a/plugins/org.eclipse.emf.cdo.ui.team/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.ui.team/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.emf.cdo.ui.team;singleton:=true
-Bundle-Version: 4.2.0.qualifier
+Bundle-Version: 4.2.100.qualifier
Bundle-Activator: org.eclipse.emf.cdo.ui.internal.team.bundle.OM$Activator
Bundle-Vendor: %providerName
Bundle-ClassPath: .
@@ -13,6 +13,6 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
org.eclipse.team.ui;bundle-version="[3.5.0,4.0.0)",
org.eclipse.emf.cdo.ui;bundle-version="[4.2.0,5.0.0)";visibility:=reexport,
org.eclipse.emf.cdo.ui.shared;bundle-version="[4.0.0,5.0.0)"
-Export-Package: org.eclipse.emf.cdo.ui.internal.team.actions;version="4.2.0";x-internal:=true,
- org.eclipse.emf.cdo.ui.internal.team.bundle;version="4.2.0";x-internal:=true,
- org.eclipse.emf.cdo.ui.internal.team.history;version="4.2.0";x-internal:=true
+Export-Package: org.eclipse.emf.cdo.ui.internal.team.actions;version="4.2.100";x-internal:=true,
+ org.eclipse.emf.cdo.ui.internal.team.bundle;version="4.2.100";x-internal:=true,
+ org.eclipse.emf.cdo.ui.internal.team.history;version="4.2.100";x-internal:=true
diff --git a/plugins/org.eclipse.emf.cdo.ui.team/src/org/eclipse/emf/cdo/ui/internal/team/history/CDOHistoryPage.java b/plugins/org.eclipse.emf.cdo.ui.team/src/org/eclipse/emf/cdo/ui/internal/team/history/CDOHistoryPage.java
index eb74631672..b7746e3192 100644
--- a/plugins/org.eclipse.emf.cdo.ui.team/src/org/eclipse/emf/cdo/ui/internal/team/history/CDOHistoryPage.java
+++ b/plugins/org.eclipse.emf.cdo.ui.team/src/org/eclipse/emf/cdo/ui/internal/team/history/CDOHistoryPage.java
@@ -15,9 +15,9 @@ import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfoManager;
import org.eclipse.emf.cdo.eresource.CDOResourceFolder;
+import org.eclipse.emf.cdo.internal.ui.actions.OpenTransactionAction;
import org.eclipse.emf.cdo.session.CDOSession;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.transaction.CDOTransactionCommentator;
import org.eclipse.emf.cdo.ui.widgets.CommitHistoryComposite;
import org.eclipse.emf.cdo.ui.widgets.CommitHistoryComposite.Input;
import org.eclipse.emf.cdo.ui.widgets.CommitHistoryComposite.LabelProvider;
@@ -132,7 +132,7 @@ public class CDOHistoryPage extends HistoryPage
}
transaction = session.openTransaction(branch);
- new CDOTransactionCommentator(transaction);
+ OpenTransactionAction.configureTransaction(transaction);
CDOResourceFolder folder = transaction.getOrCreateResourceFolder("test");
folder.addResource("resource-" + folder.getNodes().size());
diff --git a/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF
index 0ead766298..18a4b28d15 100644
--- a/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF
@@ -23,7 +23,17 @@ Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)";reso
org.eclipse.emf.cdo.transfer.ui;bundle-version="[4.2.0,5.0.0)";visibility:=reexport,
org.eclipse.emf.cdo.transfer.repository;bundle-version="[4.2.0,5.0.0)";visibility:=reexport,
org.eclipse.emf.cdo.ui.shared;bundle-version="[4.0.0,5.0.0)"
-Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.3.0";
+Export-Package: org.eclipse.emf.cdo.internal.ui.bundle;version="4.3.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.ui.messages;version="4.3.0";
+ x-friends:="org.eclipse.emf.cdo.ui.defs,
+ org.eclipse.emf.cdo.ui.ide,
+ org.eclipse.emf.cdo.ui.location,
+ org.eclipse.emf.cdo.tests.ui,
+ org.eclipse.emf.cdo.dawn.ui,
+ org.eclipse.emf.cdo.explorer,
+ org.eclipse.emf.cdo.ui.team,
+ org.eclipse.emf.cdo.ui.compare",
+ org.eclipse.emf.cdo.internal.ui;version="4.3.0";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
@@ -38,8 +48,9 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.3.0";
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
- org.eclipse.emf.cdo.explorer",
- org.eclipse.emf.cdo.internal.ui.bundle;version="4.3.0";x-internal:=true,
+ org.eclipse.emf.cdo.explorer,
+ org.eclipse.emf.cdo.ui.team,
+ org.eclipse.emf.cdo.ui.compare",
org.eclipse.emf.cdo.internal.ui.dialogs;version="4.3.0";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
@@ -47,6 +58,7 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.3.0";
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
org.eclipse.emf.cdo.explorer,
+ org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare",
org.eclipse.emf.cdo.internal.ui.dnd;version="4.3.0";
x-friends:="org.eclipse.emf.cdo.ui.defs,
@@ -54,50 +66,71 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.3.0";
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
- org.eclipse.emf.cdo.explorer",
+ org.eclipse.emf.cdo.explorer,
+ org.eclipse.emf.cdo.ui.team,
+ org.eclipse.emf.cdo.ui.compare",
org.eclipse.emf.cdo.internal.ui.editor;version="4.3.0";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
- org.eclipse.emf.cdo.explorer",
+ org.eclipse.emf.cdo.explorer,
+ org.eclipse.emf.cdo.ui.team,
+ org.eclipse.emf.cdo.ui.compare",
org.eclipse.emf.cdo.internal.ui.filters;version="4.3.0";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
- org.eclipse.emf.cdo.explorer",
- org.eclipse.emf.cdo.internal.ui.history;version="4.3.0";x-internal:=true,
- org.eclipse.emf.cdo.internal.ui.messages;version="4.3.0";x-friends:="org.eclipse.emf.cdo.tests.ui",
+ org.eclipse.emf.cdo.explorer,
+ org.eclipse.emf.cdo.ui.team,
+ org.eclipse.emf.cdo.ui.compare",
+ org.eclipse.emf.cdo.internal.ui.history;version="4.3.0";
+ x-friends:="org.eclipse.emf.cdo.ui.defs,
+ org.eclipse.emf.cdo.ui.ide,
+ org.eclipse.emf.cdo.ui.location,
+ org.eclipse.emf.cdo.tests.ui,
+ org.eclipse.emf.cdo.dawn.ui,
+ org.eclipse.emf.cdo.explorer,
+ org.eclipse.emf.cdo.ui.team,
+ org.eclipse.emf.cdo.ui.compare",
org.eclipse.emf.cdo.internal.ui.perspectives;version="4.3.0";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
- org.eclipse.emf.cdo.explorer",
+ org.eclipse.emf.cdo.explorer,
+ org.eclipse.emf.cdo.ui.team,
+ org.eclipse.emf.cdo.ui.compare",
org.eclipse.emf.cdo.internal.ui.preferences;version="4.3.0";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
- org.eclipse.emf.cdo.explorer",
+ org.eclipse.emf.cdo.explorer,
+ org.eclipse.emf.cdo.ui.team,
+ org.eclipse.emf.cdo.ui.compare",
org.eclipse.emf.cdo.internal.ui.transfer;version="4.3.0";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
- org.eclipse.emf.cdo.explorer",
+ org.eclipse.emf.cdo.explorer,
+ org.eclipse.emf.cdo.ui.team,
+ org.eclipse.emf.cdo.ui.compare",
org.eclipse.emf.cdo.internal.ui.views;version="4.3.0";
x-friends:="org.eclipse.emf.cdo.ui.defs,
org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
org.eclipse.emf.cdo.dawn.ui,
- org.eclipse.emf.cdo.explorer",
+ org.eclipse.emf.cdo.explorer,
+ org.eclipse.emf.cdo.ui.team,
+ org.eclipse.emf.cdo.ui.compare",
org.eclipse.emf.cdo.ui;version="4.3.0",
org.eclipse.emf.cdo.ui.widgets;version="4.3.0"
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenDurableViewAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenDurableViewAction.java
index 9ac41c0cc8..aae78eb29e 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenDurableViewAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenDurableViewAction.java
@@ -16,7 +16,6 @@ import org.eclipse.emf.cdo.internal.ui.dialogs.OpenDurableViewDialog;
import org.eclipse.emf.cdo.internal.ui.messages.Messages;
import org.eclipse.emf.cdo.session.CDOSession;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.transaction.CDOTransactionCommentator;
import org.eclipse.emf.cdo.ui.shared.SharedIcons;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -59,7 +58,7 @@ public final class OpenDurableViewAction extends AbstractOpenViewAction
{
CDOSession session = getSession();
CDOTransaction transaction = session.openTransaction(areaID);
- new CDOTransactionCommentator(transaction);
+ OpenTransactionAction.configureTransaction(transaction);
}
catch (IllegalStateException ex)
{
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenTransactionAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenTransactionAction.java
index 61317f6d32..5123c5cd5b 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenTransactionAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenTransactionAction.java
@@ -17,6 +17,8 @@ import org.eclipse.emf.cdo.transaction.CDOTransaction;
import org.eclipse.emf.cdo.transaction.CDOTransactionCommentator;
import org.eclipse.emf.cdo.ui.shared.SharedIcons;
+import org.eclipse.emf.spi.cdo.CDOMergingConflictResolver;
+
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ui.IWorkbenchPage;
@@ -37,10 +39,20 @@ public final class OpenTransactionAction extends AbstractOpenViewAction
@Override
protected void doRun(IProgressMonitor progressMonitor) throws Exception
{
- CDOTransaction transaction = getSession().openTransaction();
- new CDOTransactionCommentator(transaction);
+ CDOSession session = getSession();
+ openTransaction(session);
+ }
+
+ public static CDOTransaction openTransaction(CDOSession session)
+ {
+ CDOTransaction transaction = session.openTransaction();
+ configureTransaction(transaction);
+ return transaction;
+ }
- // CDOTransaction transaction = getSession().openTransaction();
- // transaction.options().getConflictResolvers().add(new CDOObjectConflictResolver.MergeLocalChangesPerFeature());
+ public static void configureTransaction(CDOTransaction transaction)
+ {
+ transaction.options().addConflictResolver(new CDOMergingConflictResolver());
+ new CDOTransactionCommentator(transaction);
}
}
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/RemoveResourceActionDelegate.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/RemoveResourceActionDelegate.java
index 8d21334bef..3450b46141 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/RemoveResourceActionDelegate.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/RemoveResourceActionDelegate.java
@@ -15,10 +15,10 @@ import org.eclipse.emf.cdo.CDOObject;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.eresource.CDOResourceFolder;
import org.eclipse.emf.cdo.eresource.CDOResourceNode;
-import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.transaction.CDOTransactionCommentator;
import org.eclipse.emf.cdo.internal.ui.bundle.OM;
import org.eclipse.emf.cdo.internal.ui.messages.Messages;
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
import org.eclipse.net4j.util.ui.UIUtil;
@@ -78,12 +78,12 @@ public class RemoveResourceActionDelegate implements IObjectActionDelegate
Map<Integer, CDOTransaction> repositoryToTransaction = new HashMap<Integer, CDOTransaction>();
for (CDOResourceNode node : nodes)
{
- int sessionID = node.cdoView().getSession().getSessionID();
+ CDOSession session = node.cdoView().getSession();
+ int sessionID = session.getSessionID();
CDOTransaction transaction = repositoryToTransaction.get(sessionID);
if (transaction == null)
{
- transaction = node.cdoView().getSession().openTransaction();
- new CDOTransactionCommentator(transaction);
+ transaction = OpenTransactionAction.openTransaction(session);
repositoryToTransaction.put(sessionID, transaction);
}
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/TransactionalBackgroundActionDelegate.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/TransactionalBackgroundActionDelegate.java
index a2d5fddd07..53bb077505 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/TransactionalBackgroundActionDelegate.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/TransactionalBackgroundActionDelegate.java
@@ -12,9 +12,9 @@
package org.eclipse.emf.cdo.internal.ui.actions;
import org.eclipse.emf.cdo.CDOObject;
-import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.transaction.CDOTransactionCommentator;
import org.eclipse.emf.cdo.internal.ui.messages.Messages;
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
import org.eclipse.emf.cdo.view.CDOView;
import org.eclipse.net4j.util.AdapterUtil;
@@ -104,8 +104,8 @@ public abstract class TransactionalBackgroundActionDelegate extends LongRunningA
*/
protected CDOObject preRun(CDOObject object)
{
- CDOTransaction transaction = object.cdoView().getSession().openTransaction();
- new CDOTransactionCommentator(transaction);
+ CDOSession session = object.cdoView().getSession();
+ CDOTransaction transaction = OpenTransactionAction.openTransaction(session);
CDOObject transactionalObject = transaction.getObject(object);
return transactionalObject;
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/dialogs/OpenSessionDialog.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/dialogs/OpenSessionDialog.java
index bf4f0a519d..d970fa7e10 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/dialogs/OpenSessionDialog.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/dialogs/OpenSessionDialog.java
@@ -17,6 +17,7 @@ import org.eclipse.emf.cdo.ui.widgets.SessionComposite;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
@@ -29,6 +30,10 @@ public class OpenSessionDialog extends TitleAreaDialog
{
public static final String TITLE = Messages.getString("OpenSessionDialog.0"); //$NON-NLS-1$
+ private static final int WIDTH = 380;
+
+ private static final int HEIGHT = 240;
+
private IWorkbenchPage page;
private SessionComposite sessionComposite;
@@ -55,7 +60,11 @@ public class OpenSessionDialog extends TitleAreaDialog
{
super.configureShell(newShell);
newShell.setText(TITLE);
- newShell.setSize(380, 240);
+
+ Rectangle bounds = page.getWorkbenchWindow().getShell().getBounds();
+ int x = bounds.x + (bounds.width - WIDTH) / 2;
+ int y = bounds.y + (bounds.height - HEIGHT) / 2;
+ newShell.setBounds(x, y, WIDTH, HEIGHT);
}
@Override
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDOSessionsView.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDOSessionsView.java
index 407b9618a0..3a171e1b5a 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDOSessionsView.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDOSessionsView.java
@@ -12,6 +12,7 @@ package org.eclipse.emf.cdo.internal.ui.views;
import org.eclipse.emf.cdo.eresource.CDOResourceLeaf;
import org.eclipse.emf.cdo.internal.ui.actions.OpenSessionAction;
+import org.eclipse.emf.cdo.internal.ui.actions.OpenTransactionAction;
import org.eclipse.emf.cdo.internal.ui.transfer.RepositoryTransferDragListener;
import org.eclipse.emf.cdo.session.CDOSession;
import org.eclipse.emf.cdo.transfer.ui.TransferDropAdapter;
@@ -100,7 +101,7 @@ public class CDOSessionsView extends ContainerView
CDOSession session = (CDOSession)object;
if (session.getViews().length == 0)
{
- session.openTransaction();
+ OpenTransactionAction.openTransaction(session);
return;
}
}
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/CDOItemProvider.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/CDOItemProvider.java
index 2c12579932..48527278e6 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/CDOItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/CDOItemProvider.java
@@ -678,9 +678,12 @@ public class CDOItemProvider extends ContainerItemProvider<IContainer<Object>>
{
super.elementAdded(element, parent);
+ // TODO Remove listeners?
+
if (element instanceof CDOSession)
{
- ((CDOSession)element).addListener(new IListener()
+ CDOSession session = (CDOSession)element;
+ session.addListener(new IListener()
{
public void notifyEvent(IEvent event)
{
@@ -694,7 +697,8 @@ public class CDOItemProvider extends ContainerItemProvider<IContainer<Object>>
if (element instanceof CDOView)
{
- ((CDOView)element).addListener(new IListener()
+ final CDOView view = (CDOView)element;
+ view.addListener(new IListener()
{
public void notifyEvent(IEvent event)
{
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceImpl.java
index 3ac5c5c9b5..b3d5b02813 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceImpl.java
@@ -347,7 +347,6 @@ public class CDOResourceImpl extends CDOResourceLeafImpl implements InternalCDOR
setPath(newPath);
}
-
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType)
{
@@ -355,7 +354,7 @@ public class CDOResourceImpl extends CDOResourceLeafImpl implements InternalCDOR
{
case EresourcePackage.CDO_RESOURCE__URI:
return getURI();
-
+
default:
return super.eGet(featureID, resolve, coreType);
}
@@ -369,7 +368,7 @@ public class CDOResourceImpl extends CDOResourceLeafImpl implements InternalCDOR
case EresourcePackage.CDO_RESOURCE__URI:
setURI((URI)newValue);
break;
-
+
default:
super.eSet(featureID, newValue);
}
@@ -1085,17 +1084,20 @@ public class CDOResourceImpl extends CDOResourceLeafImpl implements InternalCDOR
}
}
- String query = initialURI.query();
- if (query != null && query.length() != 0)
+ if (initialURI != null)
{
- Map<String, String> parameters = CDOURIUtil.getParameters(query);
- String value = parameters.get(CDOResource.PREFETCH_PARAMETER);
- if (value != null)
+ String query = initialURI.query();
+ if (query != null && query.length() != 0)
{
- boolean prefetch = Boolean.parseBoolean(value);
- if (prefetch)
+ Map<String, String> parameters = CDOURIUtil.getParameters(query);
+ String value = parameters.get(CDOResource.PREFETCH_PARAMETER);
+ if (value != null)
{
- cdoPrefetch(CDORevision.DEPTH_INFINITE);
+ boolean prefetch = Boolean.parseBoolean(value);
+ if (prefetch)
+ {
+ cdoPrefetch(CDORevision.DEPTH_INFINITE);
+ }
}
}
}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
index 18fd7c1073..00a6bb8779 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
@@ -167,12 +167,13 @@ public class CDOObjectImpl extends MinimalEStoreEObjectImpl implements InternalC
*/
public final InternalCDORevision cdoRevision(boolean loadOnDemand)
{
- if (loadOnDemand)
+ InternalCDORevision revision = cdoRevision();
+ if (revision == null && loadOnDemand)
{
- CDOStateMachine.INSTANCE.read(this);
+ revision = CDOStateMachine.INSTANCE.read(this);
}
- return cdoRevision();
+ return revision;
}
/**
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java
index 3193e5008e..1f03338766 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java
@@ -789,15 +789,9 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa
}
conflict -= resolved;
- if (conflict == 0)
- {
- setDirty(false);
- }
- else
- {
- Map<CDOID, CDOObject> dirtyObjects = getLastSavepoint().getDirtyObjects();
- setDirty(!dirtyObjects.isEmpty());
- }
+
+ Map<CDOID, CDOObject> dirtyObjects = getLastSavepoint().getDirtyObjects();
+ setDirty(!dirtyObjects.isEmpty());
}
/**
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java
index 73f451b239..116905abeb 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/AbstractCDOView.java
@@ -58,6 +58,7 @@ import org.eclipse.emf.cdo.util.DanglingReferenceException;
import org.eclipse.emf.cdo.util.InvalidURIException;
import org.eclipse.emf.cdo.util.ObjectNotFoundException;
import org.eclipse.emf.cdo.util.ReadOnlyException;
+import org.eclipse.emf.cdo.view.CDOAdapterPolicy;
import org.eclipse.emf.cdo.view.CDOObjectHandler;
import org.eclipse.emf.cdo.view.CDOQuery;
import org.eclipse.emf.cdo.view.CDOView;
@@ -75,6 +76,7 @@ import org.eclipse.net4j.util.CheckUtil;
import org.eclipse.net4j.util.ImplementationError;
import org.eclipse.net4j.util.ReflectUtil.ExcludeFromDump;
import org.eclipse.net4j.util.StringUtil;
+import org.eclipse.net4j.util.WrappedException;
import org.eclipse.net4j.util.collection.CloseableIterator;
import org.eclipse.net4j.util.collection.ConcurrentArray;
import org.eclipse.net4j.util.collection.Pair;
@@ -111,6 +113,7 @@ import org.eclipse.emf.spi.cdo.InternalCDOViewSet;
import org.eclipse.core.runtime.Platform;
+import java.io.IOException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collection;
@@ -331,6 +334,15 @@ public abstract class AbstractCDOView extends CDOCommitHistoryProviderImpl<CDOOb
rootResource = resource;
rootResource.setRoot(true);
registerObject(rootResource);
+
+ try
+ {
+ rootResource.load(null);
+ }
+ catch (IOException ex)
+ {
+ throw WrappedException.wrap(ex);
+ }
}
public synchronized boolean isEmpty()
@@ -365,7 +377,7 @@ public abstract class AbstractCDOView extends CDOCommitHistoryProviderImpl<CDOOb
return elements.toArray(new CDOResourceNode[elements.size()]);
}
- private void ensureContainerAdapter(CDOResource rootResource)
+ private void ensureContainerAdapter(final CDOResource rootResource)
{
EList<Adapter> adapters = rootResource.eAdapters();
ContainerAdapter adapter = getContainerAdapter(adapters);
@@ -373,6 +385,14 @@ public abstract class AbstractCDOView extends CDOCommitHistoryProviderImpl<CDOOb
{
adapter = new ContainerAdapter();
adapters.add(adapter);
+
+ options().addChangeSubscriptionPolicy(new CDOAdapterPolicy()
+ {
+ public boolean isValid(EObject eObject, Adapter adapter)
+ {
+ return eObject == rootResource;
+ }
+ });
}
}
@@ -1987,10 +2007,6 @@ public abstract class AbstractCDOView extends CDOCommitHistoryProviderImpl<CDOOb
// TODO
break;
- case Notification.SET:
- // TODO
- break;
-
case Notification.UNSET:
// TODO
break;
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
index 9faa309394..e09c8f12c7 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
@@ -1020,9 +1020,9 @@ public final class CDOStateMachine extends FiniteStateMachine<CDOState, CDOEvent
newRevision = (InternalCDORevision)cache.getRevisionByVersion(newKey.getID(), newKey);
}
+ object.cdoInternalSetRevision(newRevision);
if (newRevision != null)
{
- object.cdoInternalSetRevision(newRevision);
changeState(object, CDOState.CLEAN);
object.cdoInternalPostLoad();
}
@@ -1032,6 +1032,7 @@ public final class CDOStateMachine extends FiniteStateMachine<CDOState, CDOEvent
CDOInvalidationPolicy policy = view.options().getInvalidationPolicy();
policy.handleInvalidation(object, key);
+
object.cdoInternalPostInvalidate();
}
}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java
index debb6d3035..82df8c422a 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java
@@ -120,30 +120,15 @@ public class CDOMergingConflictResolver extends AbstractChangeSetsConflictResolv
InternalCDOObject object = (InternalCDOObject)transaction.getObject(id, false);
if (object != null)
{
- // Compute new version
- InternalCDORevision localRevision = object.cdoRevision();
- int newVersion = localRevision.getVersion() + 1;
-
- // Compute new local revision
- InternalCDORevision cleanRevision = cleanRevisions.get(object);
- if (cleanRevision == null)
- {
- // In this case the object revision *is clean*
- cleanRevision = object.cdoRevision();
- }
-
- InternalCDORevision newLocalRevision = cleanRevision.copy();
- newLocalRevision.setVersion(newVersion);
- resultDelta.apply(newLocalRevision);
+ int newVersion = computeNewVersion(object);
+ InternalCDORevision cleanRevision = computeOldCleanRevision(object, cleanRevisions);
+ InternalCDORevision newLocalRevision = computeNewLocalRevision(resultDelta, newVersion, cleanRevision);
// Adjust local object
object.cdoInternalSetRevision(newLocalRevision);
- // Compute new clean revision
- CDORevisionDelta remoteDelta = remoteDeltas.get(id);
- final InternalCDORevision newCleanRevision = cleanRevision.copy();
- newCleanRevision.setVersion(newVersion);
- remoteDelta.apply(newCleanRevision);
+ final InternalCDORevision newCleanRevision = computeNewCleanRevision(remoteDeltas, id, newVersion,
+ cleanRevision);
// Compute new local delta
InternalCDORevisionDelta newLocalDelta = newLocalRevision.compare(newCleanRevision);
@@ -225,6 +210,49 @@ public class CDOMergingConflictResolver extends AbstractChangeSetsConflictResolv
}
}
+ private int computeNewVersion(InternalCDOObject object)
+ {
+ InternalCDORevision localRevision = object.cdoRevision();
+ int newVersion = localRevision.getVersion() + 1;
+ return newVersion;
+ }
+
+ private InternalCDORevision computeOldCleanRevision(InternalCDOObject object,
+ Map<InternalCDOObject, InternalCDORevision> cleanRevisions)
+ {
+ InternalCDORevision cleanRevision = cleanRevisions.get(object);
+ if (cleanRevision == null)
+ {
+ // In this case the object revision *is clean*
+ cleanRevision = object.cdoRevision();
+ }
+ return cleanRevision;
+ }
+
+ private InternalCDORevision computeNewLocalRevision(InternalCDORevisionDelta resultDelta, int newVersion,
+ InternalCDORevision cleanRevision)
+ {
+ InternalCDORevision newLocalRevision = cleanRevision.copy();
+ newLocalRevision.setVersion(newVersion);
+ resultDelta.apply(newLocalRevision);
+ return newLocalRevision;
+ }
+
+ private InternalCDORevision computeNewCleanRevision(Map<CDOID, CDORevisionDelta> remoteDeltas, CDOID id,
+ int newVersion, InternalCDORevision cleanRevision)
+ {
+ CDORevisionDelta remoteDelta = remoteDeltas.get(id);
+ if (remoteDelta != null)
+ {
+ InternalCDORevision newCleanRevision = cleanRevision.copy();
+ newCleanRevision.setVersion(newVersion);
+ remoteDelta.apply(newCleanRevision);
+ return newCleanRevision;
+ }
+
+ return cleanRevision;
+ }
+
private Map<CDOID, CDORevisionDelta> getRemoteDeltas(CDOChangeSet remoteChangeSet)
{
Map<CDOID, CDORevisionDelta> remoteDeltas = CDOIDUtil.createMap();
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerItemProvider.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerItemProvider.java
index 761376d867..d80ea4dde8 100644
--- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerItemProvider.java
+++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerItemProvider.java
@@ -122,14 +122,18 @@ public class ContainerItemProvider<CONTAINER extends IContainer<Object>> extends
}
}
- @Override
- public void dispose()
+ /**
+ * @since 3.4
+ */
+ public void clearNodesCache()
{
- super.dispose();
+ disposeRoot();
+
+ CONTAINER input = getInput();
+ initRoot(input);
}
- @Override
- protected void connectInput(CONTAINER input)
+ private void initRoot(CONTAINER input)
{
root = createNode(null, input);
if (root != null)
@@ -138,14 +142,25 @@ public class ContainerItemProvider<CONTAINER extends IContainer<Object>> extends
}
}
- @Override
- protected void disconnectInput(CONTAINER input)
+ private void disposeRoot()
{
- root.dispose();
+ root.dispose(); // Also disposes of all children
root = null;
nodes.clear();
}
+ @Override
+ protected void connectInput(CONTAINER input)
+ {
+ initRoot(input);
+ }
+
+ @Override
+ protected void disconnectInput(CONTAINER input)
+ {
+ disposeRoot();
+ }
+
/**
* @since 2.0
*/
@@ -620,8 +635,8 @@ public class ContainerItemProvider<CONTAINER extends IContainer<Object>> extends
if (!isDisposed())
{
container.removeListener(containerListener);
- container = null;
super.dispose();
+ container = null;
}
}
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java
index d1d46f218a..d752c16839 100644
--- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java
+++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java
@@ -463,6 +463,7 @@ public abstract class ContainerView extends ViewPart implements ISelectionProvid
*/
protected void refreshPressed()
{
+ itemProvider.clearNodesCache();
UIUtil.refreshViewer(viewer);
}

Back to the top