Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 87319 Details for
Bug 214752
Concurrency problem with getRevision()
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Patch v1
clipboard.txt (text/plain), 25.17 KB, created by
Eike Stepper
on 2008-01-19 05:58:35 EST
(
hide
)
Description:
Patch v1
Filename:
MIME Type:
Creator:
Eike Stepper
Created:
2008-01-19 05:58:35 EST
Size:
25.17 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.emf.cdo >Index: src/org/eclipse/emf/internal/cdo/CDORevisionManagerImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.cdo/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDORevisionManagerImpl.java,v >retrieving revision 1.22 >diff -u -r1.22 CDORevisionManagerImpl.java >--- src/org/eclipse/emf/internal/cdo/CDORevisionManagerImpl.java 17 Jan 2008 16:31:34 -0000 1.22 >+++ src/org/eclipse/emf/internal/cdo/CDORevisionManagerImpl.java 19 Jan 2008 10:57:07 -0000 >@@ -17,7 +17,6 @@ > import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl.MoveableList; > import org.eclipse.emf.cdo.protocol.CDOID; > import org.eclipse.emf.cdo.protocol.model.CDOFeature; >-import org.eclipse.emf.cdo.protocol.revision.CDODuplicateRevisionException; > import org.eclipse.emf.cdo.protocol.revision.CDOReferenceProxy; > import org.eclipse.emf.cdo.protocol.revision.CDORevision; > import org.eclipse.emf.cdo.protocol.util.TransportException; >@@ -29,7 +28,6 @@ > import org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest; > > import org.eclipse.net4j.channel.IChannel; >-import org.eclipse.net4j.internal.util.om.trace.ContextTracer; > import org.eclipse.net4j.internal.util.om.trace.PerfTracer; > import org.eclipse.net4j.signal.failover.IFailOverStrategy; > >@@ -42,8 +40,6 @@ > */ > public class CDORevisionManagerImpl extends CDORevisionResolverImpl implements CDORevisionManager > { >- private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_REVISION, CDORevisionManagerImpl.class); >- > private static final PerfTracer LOADING = new PerfTracer(OM.PERF_REVISION_LOADING, CDORevisionManagerImpl.class); > > private CDOSessionImpl session; >@@ -60,22 +56,6 @@ > return session; > } > >- @Override >- public void addRevision(CDORevisionImpl revision) throws CDODuplicateRevisionException >- { >- try >- { >- super.addRevision(revision); >- } >- catch (CDODuplicateRevisionException ignore) >- { >- if (TRACER.isEnabled()) >- { >- TRACER.trace("Ignorable exception on client side", ignore); >- } >- } >- } >- > public CDOID resolveReferenceProxy(CDOReferenceProxy referenceProxy) > { > // Get proxy values >#P org.eclipse.emf.cdo.server >Index: src/org/eclipse/emf/cdo/internal/server/RevisionManager.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.cdo/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java,v >retrieving revision 1.31 >diff -u -r1.31 RevisionManager.java >--- src/org/eclipse/emf/cdo/internal/server/RevisionManager.java 19 Jan 2008 09:56:49 -0000 1.31 >+++ src/org/eclipse/emf/cdo/internal/server/RevisionManager.java 19 Jan 2008 10:57:09 -0000 >@@ -21,7 +21,6 @@ > import org.eclipse.emf.cdo.internal.protocol.revision.delta.CDORevisionDeltaImpl; > import org.eclipse.emf.cdo.protocol.CDOID; > import org.eclipse.emf.cdo.protocol.model.CDOFeature; >-import org.eclipse.emf.cdo.protocol.revision.CDODuplicateRevisionException; > import org.eclipse.emf.cdo.protocol.revision.CDOReferenceProxy; > import org.eclipse.emf.cdo.protocol.revision.CDORevision; > import org.eclipse.emf.cdo.server.IRevisionManager; >@@ -316,6 +315,7 @@ > > public void phase1(IStoreWriter storeWriter) throws Exception > { >+ CDOID id = revisionDelta.getID(); > if (getRepository().isSupportingRevisionDeltas()) > { > // Can throw an exception if duplicate >@@ -323,8 +323,8 @@ > } > else > { >- CDORevisionImpl oldRevision = getRevisionByVersion(revisionDelta.getID(), CDORevision.UNCHUNKED, revisionDelta >- .getOriginVersion(), true); >+ int originVersion = revisionDelta.getOriginVersion(); >+ CDORevisionImpl oldRevision = getRevisionByVersion(id, CDORevision.UNCHUNKED, originVersion, true); > if (oldRevision == null) > { > throw new IllegalArgumentException("Cannot retrieve origin revision"); >@@ -337,14 +337,13 @@ > storeWriter.writeRevision(dirtyRevision); > } > >- // Look if we already have it in our cache revision >- CDORevisionImpl currentVersion = getRevisionByVersion(revisionDelta.getID(), 0, revisionDelta.getDirtyVersion(), >- false); >- >- if (currentVersion != null) >- { >- throw new CDODuplicateRevisionException(currentVersion); >- } >+ // // Look if we already have it in our cache revision >+ // int dirtyVersion = revisionDelta.getDirtyVersion(); >+ // CDORevisionImpl currentVersion = getRevisionByVersion(id, 0, dirtyVersion, false); >+ // if (currentVersion != null) >+ // { >+ // throw new CDODuplicateRevisionException(currentVersion); >+ // } > } > > public void phase2(IStoreWriter storeWriter) >Index: src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.cdo/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java,v >retrieving revision 1.6 >diff -u -r1.6 MEMStoreAccessor.java >--- src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java 19 Jan 2008 09:56:49 -0000 1.6 >+++ src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java 19 Jan 2008 10:57:09 -0000 >@@ -18,8 +18,8 @@ > import org.eclipse.emf.cdo.protocol.model.CDOClassRef; > import org.eclipse.emf.cdo.protocol.model.CDOFeature; > import org.eclipse.emf.cdo.protocol.model.CDOPackageInfo; >-import org.eclipse.emf.cdo.protocol.revision.CDODuplicateRevisionException; > import org.eclipse.emf.cdo.protocol.revision.CDORevision; >+import org.eclipse.emf.cdo.server.DuplicateRevisionException; > import org.eclipse.emf.cdo.server.ISession; > import org.eclipse.emf.cdo.server.IStoreChunkReader; > import org.eclipse.emf.cdo.server.IStoreReader; >@@ -85,7 +85,7 @@ > public CDORevision readRevision(CDOID id, int referenceChunk) > { > CDORevisionImpl revStore = (CDORevisionImpl)getStore().getRevision(id); >- CDORevisionImpl newRevision = new CDORevisionImpl(this.getStore().getRepository().getRevisionManager(), revStore >+ CDORevisionImpl newRevision = new CDORevisionImpl(getStore().getRepository().getRevisionManager(), revStore > .getCDOClass(), revStore.getID()); > newRevision.setResourceID(revStore.getResourceID()); > >@@ -127,21 +127,21 @@ > { > } > >- public void writeRevision(CDORevisionImpl revision) >+ public void writeRevision(CDORevisionImpl revision) throws DuplicateRevisionException > { > getStore().addRevision(revision); > } > > @Override >- public void writeRevisionDelta(CDORevisionDeltaImpl delta) >+ public void writeRevisionDelta(CDORevisionDeltaImpl delta) throws DuplicateRevisionException > { >- CDORevisionImpl revision2 = (CDORevisionImpl)getStore().getRevision(delta.getID()); >- if (delta.getOriginVersion() != revision2.getVersion()) >+ CDORevisionImpl revision = (CDORevisionImpl)getStore().getRevision(delta.getID()); >+ if (delta.getOriginVersion() != revision.getVersion()) > { >- throw new CDODuplicateRevisionException(revision2); >+ throw new DuplicateRevisionException(revision); > } > >- CDORevisionImpl newRevision = new CDORevisionImpl(revision2); >+ CDORevisionImpl newRevision = new CDORevisionImpl(revision); > delta.apply(newRevision); > listToCommit.add(newRevision); > } >@@ -149,8 +149,10 @@ > @Override > public void release() > { >- for (CDORevisionImpl rev : listToCommit) >- getStore().addRevision(rev); >+ for (CDORevisionImpl revision : listToCommit) >+ { >+ getStore().addRevision(revision); >+ } > } > > public void rollback(IView view, ITransaction<IStoreWriter> storeTransaction) >Index: src/org/eclipse/emf/cdo/internal/server/StoreAccessor.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.cdo/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/StoreAccessor.java,v >retrieving revision 1.4 >diff -u -r1.4 StoreAccessor.java >--- src/org/eclipse/emf/cdo/internal/server/StoreAccessor.java 6 Jan 2008 18:03:50 -0000 1.4 >+++ src/org/eclipse/emf/cdo/internal/server/StoreAccessor.java 19 Jan 2008 10:57:09 -0000 >@@ -15,6 +15,7 @@ > import org.eclipse.emf.cdo.internal.protocol.revision.delta.CDORevisionDeltaImpl; > import org.eclipse.emf.cdo.protocol.CDOID; > import org.eclipse.emf.cdo.protocol.model.CDOClass; >+import org.eclipse.emf.cdo.server.DuplicateRevisionException; > import org.eclipse.emf.cdo.server.ISession; > import org.eclipse.emf.cdo.server.IStoreAccessor; > import org.eclipse.emf.cdo.server.IView; >@@ -91,7 +92,7 @@ > return store.getNextCDOID(); > } > >- public void writeRevisionDelta(CDORevisionDeltaImpl delta) >+ public void writeRevisionDelta(CDORevisionDeltaImpl delta) throws DuplicateRevisionException > { > throw new UnsupportedOperationException(); > } >Index: src/org/eclipse/emf/cdo/internal/server/NOOPStoreAccessor.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.cdo/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/NOOPStoreAccessor.java,v >retrieving revision 1.6 >diff -u -r1.6 NOOPStoreAccessor.java >--- src/org/eclipse/emf/cdo/internal/server/NOOPStoreAccessor.java 6 Jan 2008 18:03:50 -0000 1.6 >+++ src/org/eclipse/emf/cdo/internal/server/NOOPStoreAccessor.java 19 Jan 2008 10:57:09 -0000 >@@ -17,6 +17,7 @@ > import org.eclipse.emf.cdo.protocol.model.CDOFeature; > import org.eclipse.emf.cdo.protocol.model.CDOPackageInfo; > import org.eclipse.emf.cdo.protocol.revision.CDORevision; >+import org.eclipse.emf.cdo.server.DuplicateRevisionException; > import org.eclipse.emf.cdo.server.ISession; > import org.eclipse.emf.cdo.server.IStoreChunkReader; > import org.eclipse.emf.cdo.server.IStoreReader; >@@ -104,7 +105,7 @@ > { > } > >- public void writeRevision(CDORevisionImpl revision) >+ public void writeRevision(CDORevisionImpl revision) throws DuplicateRevisionException > { > } > >Index: src/org/eclipse/emf/cdo/server/IStoreWriter.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.cdo/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreWriter.java,v >retrieving revision 1.13 >diff -u -r1.13 IStoreWriter.java >--- src/org/eclipse/emf/cdo/server/IStoreWriter.java 7 Jan 2008 16:26:15 -0000 1.13 >+++ src/org/eclipse/emf/cdo/server/IStoreWriter.java 19 Jan 2008 10:57:09 -0000 >@@ -46,9 +46,9 @@ > */ > public void writePackages(CDOPackageImpl... cdoPackages); > >- public void writeRevision(CDORevisionImpl revision); >+ public void writeRevision(CDORevisionImpl revision) throws DuplicateRevisionException; > >- public void writeRevisionDelta(CDORevisionDeltaImpl delta); >+ public void writeRevisionDelta(CDORevisionDeltaImpl delta) throws DuplicateRevisionException; > > public CDOID primeNewObject(CDOClass cdoClass); > >Index: src/org/eclipse/emf/cdo/server/DuplicateRevisionException.java >=================================================================== >RCS file: src/org/eclipse/emf/cdo/server/DuplicateRevisionException.java >diff -N src/org/eclipse/emf/cdo/server/DuplicateRevisionException.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/emf/cdo/server/DuplicateRevisionException.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,41 @@ >+/*************************************************************************** >+ * Copyright (c) 2004 - 2008 Eike Stepper, Germany. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * Eike Stepper - initial API and implementation >+ **************************************************************************/ >+package org.eclipse.emf.cdo.server; >+ >+import org.eclipse.emf.cdo.protocol.revision.CDORevision; >+import org.eclipse.emf.cdo.protocol.util.CDOException; >+ >+/** >+ * @author Eike Stepper >+ */ >+public class DuplicateRevisionException extends CDOException >+{ >+ private static final long serialVersionUID = 1L; >+ >+ private CDORevision revision; >+ >+ public DuplicateRevisionException(CDORevision revision) >+ { >+ super(revision.toString()); >+ this.revision = revision; >+ } >+ >+ public DuplicateRevisionException(CDORevision revision, Throwable cause) >+ { >+ super(revision.toString(), cause); >+ this.revision = revision; >+ } >+ >+ public CDORevision getRevision() >+ { >+ return revision; >+ } >+} >#P org.eclipse.emf.cdo.server.db >Index: src/org/eclipse/emf/cdo/server/internal/db/HorizontalClassMapping.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.cdo/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/HorizontalClassMapping.java,v >retrieving revision 1.4 >diff -u -r1.4 HorizontalClassMapping.java >--- src/org/eclipse/emf/cdo/server/internal/db/HorizontalClassMapping.java 7 Jan 2008 09:15:14 -0000 1.4 >+++ src/org/eclipse/emf/cdo/server/internal/db/HorizontalClassMapping.java 19 Jan 2008 10:57:11 -0000 >@@ -13,6 +13,7 @@ > import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl; > import org.eclipse.emf.cdo.protocol.CDOID; > import org.eclipse.emf.cdo.protocol.model.CDOClass; >+import org.eclipse.emf.cdo.server.DuplicateRevisionException; > import org.eclipse.emf.cdo.server.db.IDBStoreWriter; > > /** >@@ -32,7 +33,7 @@ > } > > @Override >- public void writeRevision(IDBStoreWriter storeWriter, CDORevisionImpl revision) >+ public void writeRevision(IDBStoreWriter storeWriter, CDORevisionImpl revision) throws DuplicateRevisionException > { > super.writeRevision(storeWriter, revision); > if (revision.getVersion() == 1) >Index: src/org/eclipse/emf/cdo/server/internal/db/ClassMapping.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.cdo/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ClassMapping.java,v >retrieving revision 1.13 >diff -u -r1.13 ClassMapping.java >--- src/org/eclipse/emf/cdo/server/internal/db/ClassMapping.java 19 Jan 2008 09:34:59 -0000 1.13 >+++ src/org/eclipse/emf/cdo/server/internal/db/ClassMapping.java 19 Jan 2008 10:57:11 -0000 >@@ -16,6 +16,7 @@ > import org.eclipse.emf.cdo.protocol.model.CDOFeature; > import org.eclipse.emf.cdo.protocol.model.CDOType; > import org.eclipse.emf.cdo.protocol.model.resource.CDOResourceClass; >+import org.eclipse.emf.cdo.server.DuplicateRevisionException; > import org.eclipse.emf.cdo.server.db.IAttributeMapping; > import org.eclipse.emf.cdo.server.db.IClassMapping; > import org.eclipse.emf.cdo.server.db.IDBStore; >@@ -436,7 +437,7 @@ > > protected abstract boolean hasFullRevisionInfo(); > >- public void writeRevision(IDBStoreWriter storeWriter, CDORevisionImpl revision) >+ public void writeRevision(IDBStoreWriter storeWriter, CDORevisionImpl revision) throws DuplicateRevisionException > { > if (revision.getVersion() >= 2 && hasFullRevisionInfo()) > { >@@ -455,6 +456,7 @@ > } > > protected void writeRevisedRow(IDBStoreWriter storeWriter, CDORevisionImpl revision) >+ throws DuplicateRevisionException > { > StringBuilder builder = new StringBuilder(); > builder.append("UPDATE "); >@@ -471,7 +473,17 @@ > builder.append(CDODBSchema.ATTRIBUTES_VERSION); > builder.append("="); > builder.append(revision.getVersion() - 1); >- sqlUpdate(storeWriter, builder.toString()); >+ String sql = builder.toString(); >+ >+ try >+ { >+ sqlUpdate(storeWriter, sql); >+ } >+ catch (DBException ex) >+ { >+ // TODO Handle DBException more selectively >+ throw new DuplicateRevisionException(revision, ex); >+ } > } > > protected void writeAttributes(IDBStoreWriter storeWriter, CDORevisionImpl revision) >@@ -556,7 +568,10 @@ > } > > String sql = builder.toString(); >- if (TRACER.isEnabled()) TRACER.trace(sql); >+ if (TRACER.isEnabled()) >+ { >+ TRACER.trace(sql); >+ } > ResultSet resultSet = null; > > try >Index: src/org/eclipse/emf/cdo/server/internal/db/VerticalClassMapping.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.cdo/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/VerticalClassMapping.java,v >retrieving revision 1.4 >diff -u -r1.4 VerticalClassMapping.java >--- src/org/eclipse/emf/cdo/server/internal/db/VerticalClassMapping.java 6 Jan 2008 19:09:53 -0000 1.4 >+++ src/org/eclipse/emf/cdo/server/internal/db/VerticalClassMapping.java 19 Jan 2008 10:57:11 -0000 >@@ -12,6 +12,7 @@ > > import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl; > import org.eclipse.emf.cdo.protocol.model.CDOClass; >+import org.eclipse.emf.cdo.server.DuplicateRevisionException; > import org.eclipse.emf.cdo.server.db.IClassMapping; > import org.eclipse.emf.cdo.server.db.IDBStoreWriter; > >@@ -61,7 +62,7 @@ > } > > @Override >- public void writeRevision(IDBStoreWriter storeWriter, CDORevisionImpl revision) >+ public void writeRevision(IDBStoreWriter storeWriter, CDORevisionImpl revision) throws DuplicateRevisionException > { > super.writeRevision(storeWriter, revision); > if (superMappings != null) >Index: src/org/eclipse/emf/cdo/server/internal/db/NoClassMapping.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.cdo/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/NoClassMapping.java,v >retrieving revision 1.7 >diff -u -r1.7 NoClassMapping.java >--- src/org/eclipse/emf/cdo/server/internal/db/NoClassMapping.java 17 Jan 2008 16:14:30 -0000 1.7 >+++ src/org/eclipse/emf/cdo/server/internal/db/NoClassMapping.java 19 Jan 2008 10:57:11 -0000 >@@ -13,6 +13,7 @@ > import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl; > import org.eclipse.emf.cdo.protocol.model.CDOClass; > import org.eclipse.emf.cdo.protocol.model.CDOFeature; >+import org.eclipse.emf.cdo.server.DuplicateRevisionException; > import org.eclipse.emf.cdo.server.db.IAttributeMapping; > import org.eclipse.emf.cdo.server.db.IClassMapping; > import org.eclipse.emf.cdo.server.db.IDBStoreReader; >@@ -77,7 +78,7 @@ > return null; > } > >- public void writeRevision(IDBStoreWriter storeWriter, CDORevisionImpl revision) >+ public void writeRevision(IDBStoreWriter storeWriter, CDORevisionImpl revision) throws DuplicateRevisionException > { > } > >Index: src/org/eclipse/emf/cdo/server/internal/db/DBStoreWriter.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.cdo/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreWriter.java,v >retrieving revision 1.25 >diff -u -r1.25 DBStoreWriter.java >--- src/org/eclipse/emf/cdo/server/internal/db/DBStoreWriter.java 17 Jan 2008 16:14:30 -0000 1.25 >+++ src/org/eclipse/emf/cdo/server/internal/db/DBStoreWriter.java 19 Jan 2008 10:57:11 -0000 >@@ -16,6 +16,7 @@ > import org.eclipse.emf.cdo.internal.protocol.model.CDOPackageImpl; > import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl; > import org.eclipse.emf.cdo.protocol.CDOIDRange; >+import org.eclipse.emf.cdo.server.DuplicateRevisionException; > import org.eclipse.emf.cdo.server.IStoreWriter; > import org.eclipse.emf.cdo.server.IView; > import org.eclipse.emf.cdo.server.db.IClassMapping; >@@ -181,7 +182,7 @@ > type, packageURI, classifierID, many, containment, idx); > } > >- public void writeRevision(CDORevisionImpl revision) >+ public void writeRevision(CDORevisionImpl revision) throws DuplicateRevisionException > { > if (TRACER.isEnabled()) > { >Index: src/org/eclipse/emf/cdo/server/db/IClassMapping.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.cdo/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IClassMapping.java,v >retrieving revision 1.6 >diff -u -r1.6 IClassMapping.java >--- src/org/eclipse/emf/cdo/server/db/IClassMapping.java 17 Jan 2008 16:14:30 -0000 1.6 >+++ src/org/eclipse/emf/cdo/server/db/IClassMapping.java 19 Jan 2008 10:57:11 -0000 >@@ -13,6 +13,7 @@ > import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl; > import org.eclipse.emf.cdo.protocol.model.CDOClass; > import org.eclipse.emf.cdo.protocol.model.CDOFeature; >+import org.eclipse.emf.cdo.server.DuplicateRevisionException; > > import org.eclipse.net4j.db.ddl.IDBTable; > >@@ -40,7 +41,7 @@ > > public IReferenceMapping getReferenceMapping(CDOFeature feature); > >- public void writeRevision(IDBStoreWriter storeWriter, CDORevisionImpl revision); >+ public void writeRevision(IDBStoreWriter storeWriter, CDORevisionImpl revision) throws DuplicateRevisionException; > > public void readRevision(IDBStoreReader storeReader, CDORevisionImpl revision, int referenceChunk); > >#P org.eclipse.emf.cdo.protocol >Index: src/org/eclipse/emf/cdo/internal/protocol/revision/CDORevisionResolverImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.cdo/plugins/org.eclipse.emf.cdo.protocol/src/org/eclipse/emf/cdo/internal/protocol/revision/CDORevisionResolverImpl.java,v >retrieving revision 1.50 >diff -u -r1.50 CDORevisionResolverImpl.java >--- src/org/eclipse/emf/cdo/internal/protocol/revision/CDORevisionResolverImpl.java 18 Jan 2008 12:29:14 -0000 1.50 >+++ src/org/eclipse/emf/cdo/internal/protocol/revision/CDORevisionResolverImpl.java 19 Jan 2008 10:57:13 -0000 >@@ -14,7 +14,6 @@ > import org.eclipse.emf.cdo.internal.protocol.bundle.OM; > import org.eclipse.emf.cdo.protocol.CDOID; > import org.eclipse.emf.cdo.protocol.model.CDOClass; >-import org.eclipse.emf.cdo.protocol.revision.CDODuplicateRevisionException; > import org.eclipse.emf.cdo.protocol.revision.CDORevisionResolver; > > import org.eclipse.net4j.internal.util.lifecycle.Lifecycle; >@@ -122,13 +121,13 @@ > missingIDs.add(id); > } > } >- >+ > if (!missingIDs.isEmpty()) > { > List<CDORevisionImpl> missingRevisions = loadRevisions(missingIDs, referenceChunk); > handleMissingRevisions(revisions, missingRevisions); > } >- >+ > return revisions; > } > >@@ -150,13 +149,13 @@ > missingIDs.add(id); > } > } >- >+ > if (!missingIDs.isEmpty()) > { > List<CDORevisionImpl> missingRevisions = loadRevisions(missingIDs, referenceChunk); > handleMissingRevisions(revisions, missingRevisions); > } >- >+ > return revisions; > } > >@@ -199,7 +198,7 @@ > return null; > } > >- public void addRevision(CDORevisionImpl revision) throws CDODuplicateRevisionException >+ public boolean addRevision(CDORevisionImpl revision) > { > if (TRACER.isEnabled()) > { >@@ -225,7 +224,7 @@ > } > else if (holderVersion == version) > { >- throw new CDODuplicateRevisionException(revision); >+ return false; > } > else > { >@@ -234,6 +233,7 @@ > } > > adjustHolder(revision, newHolder, lastHolder, holder); >+ return true; > } > > protected CDORevisionImpl getRevision(CDOID id, int referenceChunk, boolean loadOnDemand) >Index: src/org/eclipse/emf/cdo/protocol/revision/CDODuplicateRevisionException.java >=================================================================== >RCS file: src/org/eclipse/emf/cdo/protocol/revision/CDODuplicateRevisionException.java >diff -N src/org/eclipse/emf/cdo/protocol/revision/CDODuplicateRevisionException.java >--- src/org/eclipse/emf/cdo/protocol/revision/CDODuplicateRevisionException.java 28 Dec 2007 12:56:50 -0000 1.2 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,34 +0,0 @@ >-/*************************************************************************** >- * Copyright (c) 2004 - 2008 Eike Stepper, Germany. >- * All rights reserved. This program and the accompanying materials >- * are made available under the terms of the Eclipse Public License v1.0 >- * which accompanies this distribution, and is available at >- * http://www.eclipse.org/legal/epl-v10.html >- * >- * Contributors: >- * Eike Stepper - initial API and implementation >- **************************************************************************/ >-package org.eclipse.emf.cdo.protocol.revision; >- >-import org.eclipse.emf.cdo.protocol.util.CDOException; >- >-/** >- * @author Eike Stepper >- */ >-public class CDODuplicateRevisionException extends CDOException >-{ >- private static final long serialVersionUID = 1L; >- >- private CDORevision revision; >- >- public CDODuplicateRevisionException(CDORevision revision) >- { >- super(revision.toString()); >- this.revision = revision; >- } >- >- public CDORevision getRevision() >- { >- return revision; >- } >-}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 214752
:
87319
|
87326
|
87327
|
87328
|
87329
|
87330
|
87343
|
87344
|
87348