diff options
author | Eike Stepper | 2017-01-30 16:51:56 +0000 |
---|---|---|
committer | Eike Stepper | 2017-01-30 16:51:56 +0000 |
commit | f3cc80821ac2c25c9ed892dcd194c232784b985c (patch) | |
tree | faa404f7e98b7da37e12a82356df5f14ad4dbfa4 /plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal | |
parent | 5299e1447b063ffd15f67613032fd7e7651594ad (diff) | |
download | cdo-f3cc80821ac2c25c9ed892dcd194c232784b985c.tar.gz cdo-f3cc80821ac2c25c9ed892dcd194c232784b985c.tar.xz cdo-f3cc80821ac2c25c9ed892dcd194c232784b985c.zip |
[511324] Support VarInt and VarLong serialization
https://bugs.eclipse.org/bugs/show_bug.cgi?id=511324
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal')
-rw-r--r-- | plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java | 27 |
1 files changed, 21 insertions, 6 deletions
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 01992801c8..c554fccfb4 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 @@ -151,6 +151,7 @@ import org.eclipse.net4j.util.event.IEvent; import org.eclipse.net4j.util.event.IListener; import org.eclipse.net4j.util.io.ExtendedDataInputStream; import org.eclipse.net4j.util.io.ExtendedDataOutputStream; +import org.eclipse.net4j.util.om.OMPlatform; import org.eclipse.net4j.util.om.monitor.MonitorCanceledException; import org.eclipse.net4j.util.om.trace.ContextTracer; import org.eclipse.net4j.util.options.OptionsEvent; @@ -212,6 +213,8 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa { private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_TRANSACTION, CDOTransactionImpl.class); + private static final boolean X_COMPRESSION = OMPlatform.INSTANCE.isProperty("org.eclipse.emf.cdo.transaction.X_COMPRESSION"); + private Object transactionHandlersLock = new Object(); private ConcurrentArray<CDOTransactionHandler1> transactionHandlers1 = new ConcurrentArray<CDOTransactionHandler1>() @@ -2618,6 +2621,12 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa { return getSession(); } + + @Override + protected boolean isXCompression() + { + return X_COMPRESSION; + } }; List<CDOSavepoint> savepoints = new ArrayList<CDOSavepoint>(); @@ -2632,7 +2641,7 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa savepoint = savepoint.getNextSavepoint(); } - out.writeInt(totalNewObjects); + out.writeXInt(totalNewObjects); savepoint = firstSavepoint; while (savepoint != null) @@ -2648,13 +2657,13 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa savepoints.add(savepoint); out.writeBoolean(true); - out.writeInt(newObjects.size()); + out.writeXInt(newObjects.size()); for (CDOObject newObject : newObjects) { out.writeCDORevision(newObject.cdoRevision(), CDORevision.UNCHUNKED); } - out.writeInt(revisionDeltas.size()); + out.writeXInt(revisionDeltas.size()); for (CDORevisionDelta revisionDelta : revisionDeltas) { out.writeCDORevisionDelta(revisionDelta); @@ -2720,10 +2729,16 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa { return CDOListWithElementProxiesImpl.FACTORY; } + + @Override + protected boolean isXCompression() + { + return X_COMPRESSION; + } }; // Increase the internal tempID counter to prevent ID collisions during mapping - int totalNewObjects = in.readInt(); + int totalNewObjects = in.readXInt(); for (int i = 0; i < totalNewObjects; i++) { createIDForNewObject(null); @@ -2808,7 +2823,7 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa private void importNewRevisions(CDODataInput in, List<InternalCDORevision> revisions, Map<CDOID, CDOID> idMappings) throws IOException { - int size = in.readInt(); + int size = in.readXInt(); for (int i = 0; i < size; i++) { InternalCDORevision revision = (InternalCDORevision)in.readCDORevision(false); @@ -2827,7 +2842,7 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa private List<InternalCDORevisionDelta> importRevisionDeltas(CDODataInput in) throws IOException { - int size = in.readInt(); + int size = in.readXInt(); List<InternalCDORevisionDelta> deltas = new ArrayList<InternalCDORevisionDelta>(size); for (int i = 0; i < size; i++) { |