Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2013-09-21 04:53:27 +0000
committerEike Stepper2013-09-21 04:53:27 +0000
commite6d22cf187c8aadf303dff23ff620da45b5ff3d3 (patch)
tree61a9e6d9e2678eafc3a3740bf98424fec6e3f47f /plugins/org.eclipse.emf.cdo.server.db
parenta42e1b10073b77337c499323320bf683fdca8aad (diff)
downloadcdo-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.java20
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);

Back to the top