diff options
author | Eike Stepper | 2008-09-14 08:35:51 +0000 |
---|---|---|
committer | Eike Stepper | 2008-09-14 08:35:51 +0000 |
commit | aa99f9da75d255f23a6ab39ef7a391c96b5ea0ce (patch) | |
tree | c2188587ea25bcfa6a76b3f00b15a1465259bb67 /plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOTransactionImpl.java | |
parent | 3bfea46a9d980073f4d7c32a067e78174e0eef1c (diff) | |
download | cdo-aa99f9da75d255f23a6ab39ef7a391c96b5ea0ce.tar.gz cdo-aa99f9da75d255f23a6ab39ef7a391c96b5ea0ce.tar.xz cdo-aa99f9da75d255f23a6ab39ef7a391c96b5ea0ce.zip |
[247143] Add detach object handling to CDOTransactionHandler
https://bugs.eclipse.org/bugs/show_bug.cgi?id=247143
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOTransactionImpl.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOTransactionImpl.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOTransactionImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOTransactionImpl.java index 50543e1e73..434592b23f 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOTransactionImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOTransactionImpl.java @@ -13,6 +13,7 @@ * Simon McDuff - http://bugs.eclipse.org/233490 * Simon McDuff - http://bugs.eclipse.org/213402 * Simon McDuff - http://bugs.eclipse.org/246620 + * Simon McDuff - http://bugs.eclipse.org/247143 **************************************************************************/ package org.eclipse.emf.internal.cdo; @@ -109,7 +110,10 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa { synchronized (handlers) { - handlers.add(handler); + if (!handlers.contains(handler)) + { + handlers.add(handler); + } } } @@ -480,6 +484,11 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa */ public void detachObject(InternalCDOObject object) { + for (CDOTransactionHandler handler : getHandlers()) + { + handler.detachingObject(this, object); + } + if (object.cdoState() == CDOState.NEW) { Map<CDOID, ? extends CDOObject> map = object instanceof CDOResource ? getLastSavepoint().getNewResources() @@ -502,6 +511,7 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa { getLastSavepoint().getDetachedObjects().add(object.cdoID()); } + } /** @@ -621,7 +631,7 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa for (CDOTransactionHandler handler : getHandlers()) { - handler.addingObject(this, object); + handler.attachingObject(this, object); } if (object instanceof CDOResourceImpl) |