From 713e6f6d9009627eedb76c392f5878b08998f0b7 Mon Sep 17 00:00:00 2001 From: Stefan Winkler Date: Sun, 17 Jul 2011 13:17:54 +0000 Subject: [351393] [DB] Make the URI column in the table "cdo_ext_refs" larger https://bugs.eclipse.org/bugs/show_bug.cgi?id=351393 --- .../internal/db/ExternalReferenceManager.java | 2 +- .../src/org/eclipse/emf/cdo/tests/AllConfigs.java | 1 + .../cdo/tests/bugzilla/Bugzilla_351393_Test.java | 70 ++++++++++++++++++++++ 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_351393_Test.java diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ExternalReferenceManager.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ExternalReferenceManager.java index b4b49c190e..34b5f895d3 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ExternalReferenceManager.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ExternalReferenceManager.java @@ -157,7 +157,7 @@ public class ExternalReferenceManager extends Lifecycle IDBStore store = idHandler.getStore(); table = store.getDBSchema().addTable("cdo_external_refs"); //$NON-NLS-1$ idField = table.addField("id", idHandler.getDBType()); //$NON-NLS-1$ - uriField = table.addField("uri", DBType.VARCHAR); //$NON-NLS-1$ + uriField = table.addField("uri", DBType.VARCHAR, 1024); //$NON-NLS-1$ timestampField = table.addField("committime", DBType.BIGINT); //$NON-NLS-1$ table.addIndex(IDBIndex.Type.PRIMARY_KEY, idField); diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java index a333523d7b..a793e8afe9 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java @@ -233,5 +233,6 @@ public abstract class AllConfigs extends ConfigTestSuite testClasses.add(Bugzilla_351067_Test.class); testClasses.add(Bugzilla_351096_Test.class); testClasses.add(Bugzilla_338921_Test.class); + testClasses.add(Bugzilla_351393_Test.class); } } diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_351393_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_351393_Test.java new file mode 100644 index 0000000000..888261098c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_351393_Test.java @@ -0,0 +1,70 @@ +/** + * Copyright (c) 2004 - 2011 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 + */ +package org.eclipse.emf.cdo.tests.bugzilla; + +import org.eclipse.emf.cdo.eresource.CDOResource; +import org.eclipse.emf.cdo.session.CDOSession; +import org.eclipse.emf.cdo.tests.AbstractCDOTest; +import org.eclipse.emf.cdo.tests.model1.OrderDetail; +import org.eclipse.emf.cdo.tests.model1.Product1; +import org.eclipse.emf.cdo.transaction.CDOTransaction; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +/** + * @author Stefan Winkler + */ +public class Bugzilla_351393_Test extends AbstractCDOTest +{ + public void testExtRef() throws Exception + { + skipExternalReferences(); + + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry().getProtocolToFactoryMap().put("test", new XMIResourceFactoryImpl()); + URI uri = URI.createURI("test:///tmp/file.xmi?" + "12345678901234567890" + // 41 + "12345678901234567890" + // 61 + "12345678901234567890" + // 81 + "12345678901234567890" + // 101 + "12345678901234567890" + // 121 + "12345678901234567890" + // 141 + "12345678901234567890" + // 161 + "12345678901234567890" + // 181 + "12345678901234567890" + // 201 + "12345678901234567890" + // 221 + "12345678901234567890" + // 241 + "12345678901234567890" + // 261 + "12345678901234567890" + // 281 + "12345678901234567890" + // 301 + "12345678901234567890"); // 321 characters (> 256) + + Resource extRes = resourceSet.createResource(uri); + + CDOSession session = openSession(); + CDOTransaction transaction = session.openTransaction(); + CDOResource resource = transaction.createResource(getResourcePath("test1")); + + resourceSet.getResource(resource.getURI(), false); + + OrderDetail od1 = getModel1Factory().createOrderDetail(); + Product1 p1 = getModel1Factory().createProduct1(); + p1.getOrderDetails().add(od1); + + resource.getContents().add(p1); + extRes.getContents().add(od1); + + transaction.commit(); + } +} -- cgit v1.2.3