diff options
author | Eike Stepper | 2013-09-21 04:53:27 +0000 |
---|---|---|
committer | Eike Stepper | 2013-09-21 04:53:27 +0000 |
commit | e6d22cf187c8aadf303dff23ff620da45b5ff3d3 (patch) | |
tree | 61a9e6d9e2678eafc3a3740bf98424fec6e3f47f /plugins/org.eclipse.emf.cdo.server.db | |
parent | a42e1b10073b77337c499323320bf683fdca8aad (diff) | |
download | cdo-e6d22cf187c8aadf303dff23ff620da45b5ff3d3.tar.gz cdo-e6d22cf187c8aadf303dff23ff620da45b5ff3d3.tar.xz cdo-e6d22cf187c8aadf303dff23ff620da45b5ff3d3.zip |
Use createUniquePackage() in tests that need dynamic packages
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server.db')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/AbstractMappingStrategy.java | 20 |
1 files changed, 16 insertions, 4 deletions
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 e71c45165e..69c4f4425d 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 @@ -350,7 +350,10 @@ public abstract class AbstractMappingStrategy extends Lifecycle implements IMapp prefix += NAME_SEPARATOR; } - return getName(prefix + name, typePrefix + getUniqueID(element), getMaxTableNameLength()); + String suffix = typePrefix + getUniqueID(element); + int maxTableNameLength = getMaxTableNameLength(); + + return getName(prefix + name, suffix, maxTableNameLength); } public String getTableName(EClass eClass, EStructuralFeature feature) @@ -371,7 +374,10 @@ public abstract class AbstractMappingStrategy extends Lifecycle implements IMapp prefix += NAME_SEPARATOR; } - return getName(prefix + name, TYPE_PREFIX_FEATURE + getUniqueID(feature), getMaxTableNameLength()); + String suffix = TYPE_PREFIX_FEATURE + getUniqueID(feature); + int maxTableNameLength = getMaxTableNameLength(); + + return getName(prefix + name, suffix, maxTableNameLength); } public String getFieldName(EStructuralFeature feature) @@ -414,6 +420,12 @@ public abstract class AbstractMappingStrategy extends Lifecycle implements IMapp { suffix = NAME_SEPARATOR + suffix.replace('-', 'S'); int length = Math.min(name.length(), maxLength - suffix.length()); + if (length < 0) + { + // Most likely CDOIDs are client side-assigned, i.e., meta IDs are extrefs. See getUniqueID() + throw new IllegalStateException("Suffix is too long: " + suffix); + } + name = name.substring(0, length) + suffix; } @@ -433,11 +445,11 @@ public abstract class AbstractMappingStrategy extends Lifecycle implements IMapp // This happens outside a commit, i.e. at system init time. // Ensure that resulting ext refs are not replicated! timeStamp = CDOBranchPoint.INVALID_DATE; - // timeStamp = getStore().getRepository().getTimeStamp(); } - CDOID result = getMetaDataManager().getMetaID(element, timeStamp); + IMetaDataManager metaDataManager = getMetaDataManager(); + CDOID result = metaDataManager.getMetaID(element, timeStamp); StringBuilder builder = new StringBuilder(); CDOIDUtil.write(builder, result); |