Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2010-04-21 06:57:57 +0000
committerEike Stepper2010-04-21 06:57:57 +0000
commit431474a704d35d8afbc20013bf5da27b6fd5910b (patch)
treeaddae099bb781b4c0aef1102d88bb11e5487f092
parent5cd59aaf0e18e2a20dc5029948c155a1db5661fc (diff)
downloadcdo-431474a704d35d8afbc20013bf5da27b6fd5910b.tar.gz
cdo-431474a704d35d8afbc20013bf5da27b6fd5910b.tar.xz
cdo-431474a704d35d8afbc20013bf5da27b6fd5910b.zip
[256936] Support for Offline Mode
https://bugs.eclipse.org/bugs/show_bug.cgi?id=256936
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceImpl.java2
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/remote/CDORemoteSessionMessage.java16
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOIDDanglingImpl.java2
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOLegacyAdapter.java5
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDONotificationBuilder.java4
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java11
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java28
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/remote/CDORemoteSessionImpl.java2
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java7
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewProviderRegistryImpl.java2
10 files changed, 38 insertions, 41 deletions
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 4a4388f4de..72c43203f9 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
@@ -308,7 +308,7 @@ public class CDOResourceImpl extends CDOResourceNodeImpl implements CDOResource,
public void setModified(boolean newModified)
{
boolean oldIsModified = isModified();
- eSet(EresourcePackage.Literals.CDO_RESOURCE__MODIFIED, new Boolean(newModified));
+ eSet(EresourcePackage.Literals.CDO_RESOURCE__MODIFIED, Boolean.valueOf(newModified));
if (eNotificationRequired())
{
Notification notification = new NotificationImpl(Notification.SET, oldIsModified, newModified)
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/remote/CDORemoteSessionMessage.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/remote/CDORemoteSessionMessage.java
index eef4287da6..fccd3aa616 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/remote/CDORemoteSessionMessage.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/session/remote/CDORemoteSessionMessage.java
@@ -67,7 +67,7 @@ public final class CDORemoteSessionMessage
data = in.readByteArray();
}
- public void write(ExtendedDataOutput out) throws IOException
+ public synchronized void write(ExtendedDataOutput out) throws IOException
{
out.writeString(type);
out.writeByte(priority.ordinal());
@@ -98,23 +98,17 @@ public final class CDORemoteSessionMessage
/**
* Returns a copy of this message's data as a byte array. Thread-safety for the message data is ensured internally.
*/
- public byte[] getData()
+ public synchronized byte[] getData()
{
- synchronized (this)
- {
- return copyData(data);
- }
+ return copyData(data);
}
/**
* Sets the data of this message as a byte array. Thread-safety for the message data is ensured internally.
*/
- public void setData(byte[] data)
+ public synchronized void setData(byte[] data)
{
- synchronized (this)
- {
- this.data = copyData(data);
- }
+ this.data = copyData(data);
}
/**
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOIDDanglingImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOIDDanglingImpl.java
index e11d38bff3..962cd580c2 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOIDDanglingImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOIDDanglingImpl.java
@@ -33,7 +33,7 @@ public class CDOIDDanglingImpl extends AbstractCDOID implements CDOIDDangling
private static final long serialVersionUID = 1L;
- private InternalEObject target;
+ private transient InternalEObject target;
// private List<Reference> references = new ArrayList<Reference>();
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOLegacyAdapter.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOLegacyAdapter.java
index 1c53616c1a..cee4571198 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOLegacyAdapter.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOLegacyAdapter.java
@@ -29,11 +29,6 @@ import java.util.List;
*/
public class CDOLegacyAdapter extends CDOLegacyWrapper implements Adapter.Internal
{
- public CDOLegacyAdapter()
- {
- super(null);
- }
-
/**
* @since 3.0
*/
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDONotificationBuilder.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDONotificationBuilder.java
index 7d16a25d83..602fb7b667 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDONotificationBuilder.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDONotificationBuilder.java
@@ -97,8 +97,8 @@ public class CDONotificationBuilder implements CDOFeatureDeltaVisitor
EStructuralFeature feature = delta.getFeature();
int oldPosition = delta.getOldPosition();
int newPosition = delta.getNewPosition();
- add(new CDODeltaNotificationImpl(object, NotificationImpl.MOVE, getEFeatureID(feature), new Integer(oldPosition),
- getOldValue(feature), newPosition));
+ add(new CDODeltaNotificationImpl(object, NotificationImpl.MOVE, getEFeatureID(feature), Integer
+ .valueOf(oldPosition), getOldValue(feature), newPosition));
}
public void visit(CDOAddFeatureDelta delta)
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java
index 4232d2061f..191df01579 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java
@@ -620,10 +620,7 @@ public final class CDOStateMachine extends FiniteStateMachine<CDOState, CDOEvent
&& (eContainingFeature == null || EMFUtil.isPersistent(eContainingFeature)))
{
next = FSMUtil.adapt(eObject, transaction);
- if (next instanceof InternalCDOObject)
- {
- return true;
- }
+ return true;
}
}
@@ -714,7 +711,7 @@ public final class CDOStateMachine extends FiniteStateMachine<CDOState, CDOEvent
/**
* @author Eike Stepper
*/
- private final class DetachTransition implements
+ private static final class DetachTransition implements
ITransition<CDOState, CDOEvent, InternalCDOObject, List<InternalCDOObject>>
{
public void execute(InternalCDOObject object, CDOState state, CDOEvent event,
@@ -814,7 +811,7 @@ public final class CDOStateMachine extends FiniteStateMachine<CDOState, CDOEvent
/**
* @author Simon McDuff
*/
- private final class WriteNewTransition implements ITransition<CDOState, CDOEvent, InternalCDOObject, Object>
+ private static final class WriteNewTransition implements ITransition<CDOState, CDOEvent, InternalCDOObject, Object>
{
public void execute(InternalCDOObject object, CDOState state, CDOEvent event, Object featureDelta)
{
@@ -827,7 +824,7 @@ public final class CDOStateMachine extends FiniteStateMachine<CDOState, CDOEvent
/**
* @author Simon McDuff
*/
- private final class RewriteTransition implements ITransition<CDOState, CDOEvent, InternalCDOObject, Object>
+ private static final class RewriteTransition implements ITransition<CDOState, CDOEvent, InternalCDOObject, Object>
{
public void execute(InternalCDOObject object, CDOState state, CDOEvent event, Object featureDelta)
{
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java
index 6b0f847fa1..bd8a2048a8 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java
@@ -76,6 +76,7 @@ import org.eclipse.net4j.util.concurrent.RWLockManager;
import org.eclipse.net4j.util.container.Container;
import org.eclipse.net4j.util.event.Event;
import org.eclipse.net4j.util.event.EventUtil;
+import org.eclipse.net4j.util.event.IEvent;
import org.eclipse.net4j.util.event.IListener;
import org.eclipse.net4j.util.event.Notifier;
import org.eclipse.net4j.util.lifecycle.ILifecycle;
@@ -1067,25 +1068,38 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter
public CDOCollectionLoadingPolicy getCollectionLoadingPolicy()
{
- return collectionLoadingPolicy;
+ synchronized (this)
+ {
+ return collectionLoadingPolicy;
+ }
}
- public synchronized void setCollectionLoadingPolicy(CDOCollectionLoadingPolicy policy)
+ public void setCollectionLoadingPolicy(CDOCollectionLoadingPolicy policy)
{
if (policy == null)
{
policy = CDOCollectionLoadingPolicy.DEFAULT;
}
- if (collectionLoadingPolicy != policy)
+ IListener[] listeners = getListeners();
+ IEvent event = null;
+
+ synchronized (this)
{
- collectionLoadingPolicy = policy;
- IListener[] listeners = getListeners();
- if (listeners != null)
+ if (collectionLoadingPolicy != policy)
{
- fireEvent(new CollectionLoadingPolicyEventImpl(), listeners);
+ collectionLoadingPolicy = policy;
+ if (listeners != null)
+ {
+ event = new CollectionLoadingPolicyEventImpl();
+ }
}
}
+
+ if (event != null)
+ {
+ fireEvent(event, listeners);
+ }
}
/**
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/remote/CDORemoteSessionImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/remote/CDORemoteSessionImpl.java
index 814a261b3e..d9bc4697fb 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/remote/CDORemoteSessionImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/remote/CDORemoteSessionImpl.java
@@ -78,7 +78,7 @@ public class CDORemoteSessionImpl implements InternalCDORemoteSession
int result = userID.compareTo(obj.getUserID());
if (result == 0)
{
- result = new Integer(sessionID).compareTo(obj.getSessionID());
+ result = Integer.valueOf(sessionID).compareTo(obj.getSessionID());
}
return result;
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java
index c1f7d50ae2..640daea5ab 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java
@@ -259,13 +259,10 @@ public final class FSMUtil
public boolean hasNext()
{
- while (delegate.hasNext())
+ if (delegate.hasNext())
{
next = adapt(delegate.next(), view);
- if (next instanceof InternalCDOObject)
- {
- return true;
- }
+ return true;
}
return false;
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewProviderRegistryImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewProviderRegistryImpl.java
index e1fc753fca..29d97b8f49 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewProviderRegistryImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewProviderRegistryImpl.java
@@ -118,7 +118,7 @@ public class CDOViewProviderRegistryImpl extends Container<CDOViewProvider> impl
{
public int compare(CDOViewProvider o1, CDOViewProvider o2)
{
- return -new Integer(o1.getPriority()).compareTo(o2.getPriority());
+ return -Integer.valueOf(o1.getPriority()).compareTo(o2.getPriority());
}
});

Back to the top