diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server.db')
13 files changed, 34 insertions, 24 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/mapping/IClassMappingAuditSupport.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/mapping/IClassMappingAuditSupport.java index e7120b459f..5060d62e35 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/mapping/IClassMappingAuditSupport.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/mapping/IClassMappingAuditSupport.java @@ -4,10 +4,10 @@ * 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 - * Stefan Winkler - 271444: [DB] Multiple refactorings https://bugs.eclipse.org/bugs/show_bug.cgi?id=271444 + * Stefan Winkler - 271444: [DB] Multiple refactorings https://bugs.eclipse.org/bugs/show_bug.cgi?id=271444 */ package org.eclipse.emf.cdo.server.db.mapping; @@ -15,19 +15,18 @@ import org.eclipse.emf.cdo.server.db.IDBStoreAccessor; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision; /** - * Interface which complements {@link IClassMapping} with methods to facilitate + * Interface which complements {@link IClassMapping} with methods to facilitate * audit support. - * + * * @see {@link IMappingStrategy#hasAuditSupport() - * + * * @author Eike Stepper * @author Stefan Winkler - * + * * @since 2.0 */ public interface IClassMappingAuditSupport { - /** * Read a specific version of a revision. If this method returns <code>true</code> it is guaranteed that * <code>revision.getVersion() == version</code> diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/mapping/IClassMappingDeltaSupport.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/mapping/IClassMappingDeltaSupport.java index c602528342..1ab8ad495a 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/mapping/IClassMappingDeltaSupport.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/mapping/IClassMappingDeltaSupport.java @@ -1,13 +1,13 @@ /** - * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) and others. + * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) and others. * 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 - * Stefan Winkler - 271444: [DB] Multiple refactorings https://bugs.eclipse.org/bugs/show_bug.cgi?id=271444 + * Stefan Winkler - 271444: [DB] Multiple refactorings https://bugs.eclipse.org/bugs/show_bug.cgi?id=271444 */ package org.eclipse.emf.cdo.server.db.mapping; @@ -17,18 +17,17 @@ import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionDelta; import org.eclipse.net4j.util.om.monitor.OMMonitor; /** - * Interface which complements {@link IClassMapping} with methods to facilitate + * Interface which complements {@link IClassMapping} with methods to facilitate * revision delta support. - * + * * @see {@link IMappingStrategy#hasDeltaSupport() - * + * * @author Eike Stepper * @author Stefan Winkler * @since 2.0 */ public interface IClassMappingDeltaSupport { - /** * Write a revision delta. * diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java index b4c1014387..b6cb80e265 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java @@ -80,6 +80,7 @@ public class DBStoreAccessor extends LongIDStoreAccessor implements IDBStoreAcce DBStoreAccessor.super.write(commitContext, monitor.fork()); } }, // + new ProgressDistributable.Default<CommitContext>() { public void runLoop(int index, CommitContext commitContext, OMMonitor monitor) throws Exception @@ -516,6 +517,7 @@ public class DBStoreAccessor extends LongIDStoreAccessor implements IDBStoreAcce { TRACER.trace("DB connection keep-alive task activated."); } + stmt = connection.createStatement(); stmt.executeQuery("SELECT 1 FROM " + CDODBSchema.REPOSITORY); } diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/NullPreparedStatementCache.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/NullPreparedStatementCache.java index 6387550a0b..cc0e01078e 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/NullPreparedStatementCache.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/NullPreparedStatementCache.java @@ -63,6 +63,7 @@ public class NullPreparedStatementCache extends AbstractPreparedStatementCache i { OM.LOG.warn("- " + ps.toString()); } + assert false; } } diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/SmartPreparedStatementCache.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/SmartPreparedStatementCache.java index 96d4d22766..a304835c07 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/SmartPreparedStatementCache.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/SmartPreparedStatementCache.java @@ -189,14 +189,17 @@ public class SmartPreparedStatementCache extends AbstractPreparedStatementCache { first = s.next; } + if (s.next != null) { s.next.previous = s.previous; } + if (s == last) { last = s.previous; } + if (s.previous != null) { s.previous.next = s.next; diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/AbstractMappingStrategy.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/AbstractMappingStrategy.java index 12dfdd8235..23aa9bdc37 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/AbstractMappingStrategy.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/AbstractMappingStrategy.java @@ -189,6 +189,7 @@ public abstract class AbstractMappingStrategy extends Lifecycle implements IMapp throw new DBException(ex); } } + return null; } diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMapping.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMapping.java index 697e080113..7cdcfe34ae 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMapping.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMapping.java @@ -4,7 +4,7 @@ * 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 * Stefan Winkler - 271444: [DB] Multiple refactorings https://bugs.eclipse.org/bugs/show_bug.cgi?id=271444 @@ -108,6 +108,7 @@ public abstract class TypeMapping implements ITypeMapping { value = null; } + return value; } diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/AbstractHorizontalClassMapping.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/AbstractHorizontalClassMapping.java index 2dec43fb55..eeb21fae78 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/AbstractHorizontalClassMapping.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/AbstractHorizontalClassMapping.java @@ -252,6 +252,7 @@ public abstract class AbstractHorizontalClassMapping implements IClassMapping return mapping; } } + return null; } diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/AbstractListTableMapping.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/AbstractListTableMapping.java index 1c2509c51d..8f24e02353 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/AbstractListTableMapping.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/AbstractListTableMapping.java @@ -195,6 +195,7 @@ public abstract class AbstractListTableMapping implements IListMapping { builder.append("?, "); } + builder.append(" ?, ?)"); sqlInsertEntry = builder.toString(); } @@ -221,7 +222,6 @@ public abstract class AbstractListTableMapping implements IListMapping public void readValues(IDBStoreAccessor accessor, InternalCDORevision revision, int listChunk) { - MoveableList<Object> list = revision.getList(getFeature()); int listSize = -1; @@ -276,6 +276,7 @@ public abstract class AbstractListTableMapping implements IListMapping { TRACER.format("Read value for index {0} from result set: {1}", list.size(), value); } + list.add(value); } @@ -285,6 +286,7 @@ public abstract class AbstractListTableMapping implements IListMapping { TRACER.format("Adding UNINITIALIZED for index {0} ", list.size()); } + list.add(InternalCDORevision.UNINITIALIZED); } } @@ -338,6 +340,7 @@ public abstract class AbstractListTableMapping implements IListMapping { TRACER.trace("No last index found -> list is empty. "); } + return -1; } else @@ -347,6 +350,7 @@ public abstract class AbstractListTableMapping implements IListMapping { TRACER.trace("Read list last index = " + result); } + return result; } } @@ -379,14 +383,12 @@ public abstract class AbstractListTableMapping implements IListMapping { builder.append(where); } + builder.append(sqlOrderByIndex); String sql = builder.toString(); - pstmt = chunkReader.getAccessor().getStatementCache().getPreparedStatement(sql, ReuseProbability.LOW); - setKeyFields(pstmt, chunkReader.getRevision()); - if (TRACER.isEnabled()) { TRACER.trace(pstmt.toString()); @@ -419,8 +421,8 @@ public abstract class AbstractListTableMapping implements IListMapping { TRACER.format("Read value for chunk index {0} from result set: {1}", indexInChunk, value); } - chunk.add(indexInChunk++, value); + chunk.add(indexInChunk++, value); if (indexInChunk == chunkSize) { if (TRACER.isEnabled()) diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalAuditClassMapping.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalAuditClassMapping.java index 32b0d58c27..8cddc39dea 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalAuditClassMapping.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalAuditClassMapping.java @@ -130,6 +130,7 @@ public class HorizontalAuditClassMapping extends AbstractHorizontalClassMapping { builder.append(", ?"); } + builder.append(")"); sqlInsertAttributes = builder.toString(); diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditClassMapping.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditClassMapping.java index ed68197eb7..3c8300c498 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditClassMapping.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditClassMapping.java @@ -133,6 +133,7 @@ public class HorizontalNonAuditClassMapping extends AbstractHorizontalClassMappi { builder.append(", ?"); } + builder.append(")"); sqlInsertAttributes = builder.toString(); @@ -423,13 +424,14 @@ public class HorizontalNonAuditClassMapping extends AbstractHorizontalClassMappi { throw new ImplementationError("Should not be called"); } + ITypeMapping am = getValueMapping(delta.getFeature()); if (am == null) { throw new IllegalArgumentException("AttributeMapping for " + delta.getFeature() + " is null!"); } - attributeChanges.add(new Pair<ITypeMapping, Object>(am, delta.getValue())); + attributeChanges.add(new Pair<ITypeMapping, Object>(am, delta.getValue())); } public void visit(CDOUnsetFeatureDelta delta) diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditMappingStrategy.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditMappingStrategy.java index 8543cb59a1..4dbd5bf4b7 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditMappingStrategy.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditMappingStrategy.java @@ -4,7 +4,7 @@ * 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 * Stefan Winkler - major refactoring @@ -23,7 +23,6 @@ import org.eclipse.emf.ecore.EStructuralFeature; */ public class HorizontalNonAuditMappingStrategy extends AbstractHorizontalMappingStrategy { - @Override protected IClassMapping doCreateClassMapping(EClass eClass) { diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/NonAuditListTableMapping.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/NonAuditListTableMapping.java index 6aaac67414..f4fa04007d 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/NonAuditListTableMapping.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/NonAuditListTableMapping.java @@ -463,7 +463,6 @@ public class NonAuditListTableMapping extends AbstractListTableMapping implement { CDOFeatureDeltaVisitor visitor = new CDOFeatureDeltaVisitor() { - public void visit(CDOMoveFeatureDelta delta) { moveListItem(accessor, id, delta.getOldPosition(), delta.getNewPosition()); |