Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2008-09-14 07:21:05 +0000
committerEike Stepper2008-09-14 07:21:05 +0000
commit8013685cbaa5434602b88e4db23f2c502758f89b (patch)
tree6e41ad7729c8484b8fcba88b18c89fb5202b5c44
parent865087e948189c3bf1d91595e96f65340a8ad010 (diff)
downloadcdo-8013685cbaa5434602b88e4db23f2c502758f89b.tar.gz
cdo-8013685cbaa5434602b88e4db23f2c502758f89b.tar.xz
cdo-8013685cbaa5434602b88e4db23f2c502758f89b.zip
[246442] ArrayIndexOutOfBoundsException when importing resoruces
https://bugs.eclipse.org/bugs/show_bug.cgi?id=246442
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDAndVersion.java1
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/CDODataInputImpl.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDExternalImpl.java7
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDExternalTempImpl.java1
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageImpl.java11
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionImpl.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server/CDOServer.launch80
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java12
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/NotificationManager.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/StoreAccessor.java20
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContextImpl.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/XATransactionCommitContext.java1
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CommitNotificationRequest.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CommitTransactionIndication.java11
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IQueryContext.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreWriter.java5
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java8
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ComplexTest.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ContainmentTest.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/DetachTest.java23
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/InvalidationTest.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/XATransactionTest.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246442_Test.java107
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246622_Test.java47
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/CommitTransactionPhase2Request.java3
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/CompletePackageClosure.java7
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/ModelUtil.java25
34 files changed, 288 insertions, 148 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDAndVersion.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDAndVersion.java
index cd37b73bd4..1e868266af 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDAndVersion.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDAndVersion.java
@@ -10,7 +10,6 @@
**************************************************************************/
package org.eclipse.emf.cdo.common.id;
-
/**
* @author Eike Stepper
* @noimplement This interface is not intended to be implemented by clients.
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java
index f963b1ac0f..b11036b9ec 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java
@@ -87,7 +87,7 @@ public final class CDOIDUtil
{
return new CDOIDTempObjectImpl(value);
}
-
+
/**
* @since 2.0
*/
@@ -103,7 +103,7 @@ public final class CDOIDUtil
{
return new CDOIDExternalTempImpl(uri);
}
-
+
public static CDOID createLong(long value)
{
if (value == 0L)
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/CDODataInputImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/CDODataInputImpl.java
index 0be5e2ccc7..b9cb86ab01 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/CDODataInputImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/CDODataInputImpl.java
@@ -292,7 +292,7 @@ public abstract class CDODataInputImpl implements CDODataInput
case EXTERNAL_TEMP_OBJECT:
return new CDOIDExternalTempImpl(readString());
-
+
case OBJECT:
{
CDOIDObject id = getIDFactory().createCDOIDObject(this);
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDExternalImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDExternalImpl.java
index 5b0387da0f..7d6ac096a3 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDExternalImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDExternalImpl.java
@@ -32,12 +32,12 @@ public class CDOIDExternalImpl extends AbstractCDOID implements CDOIDExternal
{
this.uri = uri;
}
-
+
public String getURI()
{
return uri;
}
-
+
public Type getType()
{
return Type.EXTERNAL_OBJECT;
@@ -79,7 +79,7 @@ public class CDOIDExternalImpl extends AbstractCDOID implements CDOIDExternal
{
return true;
}
- // Could CDOIDExternalTempImpl and CDOIDExternalImpl have the same uri. We don't want to mixed them.
+ // Could CDOIDExternalTempImpl and CDOIDExternalImpl have the same uri. We don't want to mixed them.
if (obj != null && obj.getClass() == getClass())
{
CDOIDExternal that = (CDOIDExternal)obj;
@@ -95,5 +95,4 @@ public class CDOIDExternalImpl extends AbstractCDOID implements CDOIDExternal
return getClass().hashCode() ^ uri.hashCode();
}
-
}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDExternalTempImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDExternalTempImpl.java
index b1e3601b29..9c0e018abd 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDExternalTempImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDExternalTempImpl.java
@@ -24,6 +24,7 @@ public class CDOIDExternalTempImpl extends CDOIDExternalImpl implements CDOIDTem
super(uri);
}
+ @Override
public Type getType()
{
return Type.EXTERNAL_TEMP_OBJECT;
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageImpl.java
index 760b293ee7..e83db12d9b 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageImpl.java
@@ -7,6 +7,7 @@
*
* Contributors:
* Eike Stepper - initial API and implementation
+ * Simon McDuff - http://bugs.eclipse.org/246442
**************************************************************************/
package org.eclipse.emf.cdo.internal.common.model;
@@ -278,8 +279,14 @@ public class CDOPackageImpl extends CDOModelElementImpl implements InternalCDOPa
{
if (ecore == null && packageManager instanceof CDOPackageManagerImpl && parentURI == null)
{
- // TODO Can ecore be null?
- ecore = ((CDOPackageManagerImpl)packageManager).provideEcore(this);
+ if (isPersistent() && isDynamic())
+ {
+ resolve();
+ }
+ else
+ {
+ ecore = ((CDOPackageManagerImpl)packageManager).provideEcore(this);
+ }
}
return ecore;
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionImpl.java
index dcb170782f..3150e34230 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionImpl.java
@@ -438,7 +438,7 @@ public class CDORevisionImpl implements InternalCDORevision
}
resourceID = (CDOID)remapID(resourceID, idMappings);
- containerID = (CDOID)remapID(containerID, idMappings);
+ containerID = remapID(containerID, idMappings);
CDOFeature[] features = cdoClass.getAllFeatures();
for (int i = 0; i < features.length; i++)
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java
index d5d21ece13..460d6deeda 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java
@@ -55,8 +55,8 @@ public class CDOContainerFeatureDeltaImpl extends CDOFeatureDeltaImpl implements
{
super(CONTAINER_FEATURE);
newContainerFeatureID = in.readInt();
- newContainerID = in.readCDOID();
- newResourceID = in.readCDOID();
+ newContainerID = in.readCDOID();
+ newResourceID = in.readCDOID();
}
public Type getType()
@@ -90,7 +90,7 @@ public class CDOContainerFeatureDeltaImpl extends CDOFeatureDeltaImpl implements
public void adjustReferences(Map<CDOIDTemp, CDOID> idMappings)
{
newResourceID = (CDOID)CDORevisionUtil.remapID(newResourceID, idMappings);
- newContainerID = (CDOID)CDORevisionUtil.remapID(newContainerID, idMappings);
+ newContainerID = CDORevisionUtil.remapID(newContainerID, idMappings);
}
@Override
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java
index e6b97bea0c..3fb0561c15 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java
@@ -73,7 +73,7 @@ public class CDORevisionDeltaImpl implements InternalCDORevisionDelta
CDORevisionData dirtyData = dirtyRevision.getData();
if (!compare(originData.getContainerID(), dirtyData.getContainerID())
|| !compare(originData.getContainingFeatureID(), dirtyData.getContainingFeatureID())
- || !compare(originData.getResourceID(), dirtyData.getResourceID()))
+ || !compare(originData.getResourceID(), dirtyData.getResourceID()))
{
addFeatureDelta(new CDOContainerFeatureDeltaImpl(dirtyData.getResourceID(), dirtyData.getContainerID(), dirtyData
.getContainingFeatureID()));
diff --git a/plugins/org.eclipse.emf.cdo.server/CDOServer.launch b/plugins/org.eclipse.emf.cdo.server/CDOServer.launch
index 64a156c758..d4aa4dde07 100644
--- a/plugins/org.eclipse.emf.cdo.server/CDOServer.launch
+++ b/plugins/org.eclipse.emf.cdo.server/CDOServer.launch
@@ -26,7 +26,7 @@
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
<stringAttribute key="selectedPlugin" value="org.eclipse.net4j.http.server"/>
-<stringAttribute key="selected_target_plugins" value="org.eclipse.equinox.http.jetty,org.eclipse.equinox.registry,org.eclipse.core.contenttype,org.eclipse.equinox.http.servlet,org.eclipse.equinox.common,org.eclipse.core.runtime,com.springsource.com.mysql.jdbc,org.apache.commons.logging,org.eclipse.osgi,org.eclipse.core.runtime.compatibility.registry,org.eclipse.core.jobs,com.springsource.org.hsqldb,org.eclipse.equinox.app,org.apache.derby,javax.servlet,org.mortbay.jetty,com.springsource.org.apache.commons.logging,org.eclipse.core.runtime.compatibility.auth,org.eclipse.equinox.preferences,com.springsource.javax.xml.stream,org.eclipse.equinox.http.registry,org.eclipse.osgi.services"/>
+<stringAttribute key="selected_target_plugins" value="com.springsource.com.mysql.jdbc,javax.servlet,org.mortbay.jetty,org.eclipse.equinox.http.jetty,org.eclipse.equinox.preferences,com.springsource.org.apache.commons.logging,org.eclipse.equinox.common,org.eclipse.equinox.app,org.eclipse.core.contenttype,org.eclipse.core.runtime.compatibility.registry,com.springsource.org.hsqldb,org.eclipse.core.runtime,org.apache.derby,org.eclipse.osgi.services,com.springsource.javax.xml.stream,org.eclipse.core.runtime.compatibility.auth,org.eclipse.equinox.registry,org.apache.commons.logging,org.eclipse.equinox.http.servlet,org.eclipse.core.jobs,org.eclipse.osgi,org.eclipse.equinox.http.registry"/>
<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.server.db,org.eclipse.emf.cdo.common,org.eclipse.net4j.db,org.eclipse.net4j.tcp,org.eclipse.net4j.db.hsqldb,org.eclipse.net4j.util,org.eclipse.emf.cdo.server,org.eclipse.net4j.db.mysql,org.eclipse.net4j.db.derby,org.eclipse.net4j"/>
<booleanAttribute key="show_selected_only" value="false"/>
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
@@ -43,23 +43,23 @@
<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
-<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
+<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
<mapEntry key="org.eclipse.net4j.tcp/debug" value="true"/>
<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.server/debug.repository" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.common/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
+<mapEntry key="org.eclipse.emf.cdo.common/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.net4j.util/debug.lifecycle.dump" value="true"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
<mapEntry key="org.eclipse.emf.cdo/debug.util" value="true"/>
<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
<mapEntry key="org.eclipse.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
@@ -69,8 +69,8 @@
<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
+<mapEntry key="org.eclipse.team.core/threading" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
@@ -83,14 +83,14 @@
<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
<mapEntry key="org.eclipse.help.base/debug/search" value="false"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
+<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
@@ -102,8 +102,8 @@
<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
<mapEntry key="org.eclipse.net4j.buddies/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
@@ -119,11 +119,11 @@
<mapEntry key="org.eclipse.net4j/debug.buffer" value="true"/>
<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
<mapEntry key="org.eclipse.emf.cdo/debug.repository" value="true"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.examples/debug" value="true"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
@@ -132,17 +132,17 @@
<mapEntry key="org.eclipse.net4j.util/debug.registry" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.object" value="true"/>
<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
+<mapEntry key="org.eclipse.emf.cdo/debug.object" value="true"/>
+<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.server/debug.revision" value="true"/>
<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
@@ -154,45 +154,45 @@
<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
<mapEntry key="org.eclipse.update.core/debug" value="true"/>
<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.net4j.jms.admin/debug.protocol" value="true"/>
-<mapEntry key="org.eclipse.net4j.db.hsqldb/debug" value="true"/>
<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
+<mapEntry key="org.eclipse.net4j.db.hsqldb/debug" value="true"/>
+<mapEntry key="org.eclipse.net4j.jms.admin/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.store" value="true"/>
<mapEntry key="org.eclipse.core.resources/history" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.server/debug.store" value="true"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
+<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.common/perf.revision" value="true"/>
<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.common/debug.model" value="true"/>
<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
-<mapEntry key="org.eclipse.emf.cdo.common/perf.revision.reading" value="true"/>
<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.common/perf.revision.reading" value="true"/>
<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
<mapEntry key="org.eclipse.net4j/debug.connector" value="true"/>
<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.net4j.buddies.server/debug" value="true"/>
<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
+<mapEntry key="org.eclipse.net4j.buddies.server/debug" value="true"/>
<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/grouping" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
<mapEntry key="org.eclipse.net4j/debug.acceptor" value="true"/>
@@ -219,8 +219,8 @@
<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
<mapEntry key="org.eclipse.help/debug/context" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug" value="true"/>
<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo/debug" value="true"/>
<mapEntry key="org.eclipse.emf.cdo.ui/debug" value="true"/>
<mapEntry key="org.eclipse.net4j.examples/debug" value="true"/>
<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
@@ -233,12 +233,12 @@
<mapEntry key="org.eclipse.emf.cdo.common/debug.revision" value="true"/>
<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
<mapEntry key="org.eclipse.net4j.jms.server.jdbc/debug" value="true"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save" value="false"/>
<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.server/debug" value="true"/>
<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
@@ -255,25 +255,25 @@
<mapEntry key="org.eclipse.net4j.jms/debug" value="true"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.server/debug.resource" value="true"/>
-<mapEntry key="org.eclipse.net4j.db.derby/debug.sql" value="true"/>
<mapEntry key="org.eclipse.net4j.debug/debug" value="true"/>
+<mapEntry key="org.eclipse.net4j.db.derby/debug.sql" value="true"/>
<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
<mapEntry key="org.eclipse.emf.cdo/debug.transaction" value="true"/>
<mapEntry key="org.eclipse.emf.cdo.server.db/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j/debug.selector" value="true"/>
<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
+<mapEntry key="org.eclipse.net4j/debug.selector" value="true"/>
<mapEntry key="org.eclipse.emf.cdo.common/perf" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
<mapEntry key="org.eclipse.net4j.db/debug.sql" value="true"/>
+<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
-<mapEntry key="org.eclipse.net4j.util/debug.concurrency" value="true"/>
<mapEntry key="org.eclipse.net4j.fileshare.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.net4j.util/debug.concurrency" value="true"/>
<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
@@ -281,20 +281,20 @@
<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
<mapEntry key="org.eclipse.emf.cdo.common/perf.revision.writing" value="true"/>
<mapEntry key="org.eclipse.net4j.jms.admin/debug" value="true"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.model" value="true"/>
<mapEntry key="org.eclipse.net4j.db.derby/debug" value="true"/>
+<mapEntry key="org.eclipse.emf.cdo/debug.model" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
<mapEntry key="org.eclipse.help/debug/search" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
<mapEntry key="org.eclipse.team.core/streams" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.common/debug" value="true"/>
<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
-<mapEntry key="org.eclipse.net4j.ui/debug" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
+<mapEntry key="org.eclipse.net4j.ui/debug" value="true"/>
<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
@@ -311,15 +311,15 @@
<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
-<mapEntry key="org.eclipse.net4j.buddies.common/debug" value="true"/>
<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
+<mapEntry key="org.eclipse.net4j.buddies.common/debug" value="true"/>
<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.server/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
<mapEntry key="org.eclipse.net4j.jms.server/debug.protocol" value="true"/>
+<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
<mapEntry key="org.eclipse.help/debug" value="true"/>
<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
@@ -331,10 +331,10 @@
<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
+<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
<mapEntry key="org.eclipse.emf.cdo/debug.resource" value="true"/>
<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
@@ -351,8 +351,8 @@
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
</mapAttribute>
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java
index f1d5aa14f6..094aa0ea9c 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java
@@ -237,11 +237,11 @@ public class MEMStoreAccessor extends StoreAccessor implements IStoreReader, ISt
}
});
}
- }
-
+ }
+
for (CDORevision revision : getStore().getCurrentRevisions())
{
-
+
if (sleep != null)
{
try
@@ -253,9 +253,9 @@ public class MEMStoreAccessor extends StoreAccessor implements IStoreReader, ISt
throw WrappedException.wrap(ex);
}
}
-
+
boolean valid = true;
-
+
for (Object filter : filters)
{
if (!filter.equals(revision))
@@ -273,7 +273,7 @@ public class MEMStoreAccessor extends StoreAccessor implements IStoreReader, ISt
}
}
}
-
+
else
{
throw new RuntimeException("Unsupported language " + info.getQueryLanguage());
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/NotificationManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/NotificationManager.java
index ca6df2ddbf..0cc2b6526e 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/NotificationManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/NotificationManager.java
@@ -45,10 +45,10 @@ public class NotificationManager extends Lifecycle implements INotificationManag
{
CDORevisionDelta[] arrayOfDeltas = commitContext.getDirtyObjectDeltas();
CDOID[] arrayOfDetachedObjects = commitContext.getDetachedObjects();
-
+
int dirtyIDSize = arrayOfDeltas == null ? 0 : arrayOfDeltas.length;
int detachedObjectsSize = arrayOfDetachedObjects == null ? 0 : arrayOfDetachedObjects.length;
-
+
if (dirtyIDSize > 0 || detachedObjectsSize > 0)
{
List<CDOIDAndVersion> dirtyIDs = new ArrayList<CDOIDAndVersion>(dirtyIDSize);
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
index 3136eb8f54..cafe56abdc 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java
@@ -228,7 +228,7 @@ public class Repository extends Container<IRepositoryElement> implements IReposi
{
handler = new ResourcesQueryHandler();
}
-
+
if (handler == null)
{
if (queryHandlerProvider != null)
@@ -248,12 +248,12 @@ public class Repository extends Container<IRepositoryElement> implements IReposi
}
}
}
-
+
if (handler == null)
{
handler = StoreThreadLocal.getStoreReader();
}
-
+
return handler;
}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
index dc86e2c3aa..1d2d22812b 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
@@ -184,7 +184,8 @@ public class Session extends Container<IView> implements ISession, CDOIDProvider
/**
* @since 2.0
*/
- public void handleCommitNotification(long timeStamp, List<CDOIDAndVersion> dirtyIDs, List<CDOID> detachedObjects, List<CDORevisionDelta> deltas)
+ public void handleCommitNotification(long timeStamp, List<CDOIDAndVersion> dirtyIDs, List<CDOID> detachedObjects,
+ List<CDORevisionDelta> deltas)
{
if (!isPassiveUpdateEnabled())
{
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
index e3c542b2d1..05e4d6a040 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
@@ -109,14 +109,14 @@ public class SessionManager extends Container<ISession> implements ISessionManag
/**
* @since 2.0
*/
- public void handleCommitNotification(long timeStamp, List<CDOIDAndVersion> dirtyIDs, List<CDOID> detachedObjects, List<CDORevisionDelta> deltas,
- Session excludedSession)
+ public void handleCommitNotification(long timeStamp, List<CDOIDAndVersion> dirtyIDs, List<CDOID> detachedObjects,
+ List<CDORevisionDelta> deltas, Session excludedSession)
{
for (Session session : getSessions())
{
if (session != excludedSession)
{
- session.handleCommitNotification(timeStamp, dirtyIDs,detachedObjects, deltas);
+ session.handleCommitNotification(timeStamp, dirtyIDs, detachedObjects, deltas);
}
}
}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/StoreAccessor.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/StoreAccessor.java
index 375e4fa809..945c1ea39d 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/StoreAccessor.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/StoreAccessor.java
@@ -40,9 +40,9 @@ import java.util.List;
public abstract class StoreAccessor extends Lifecycle implements IStoreAccessor
{
private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG, StoreAccessor.class);
-
+
private List<CommitContext> commitContexts = new ArrayList<CommitContext>();
-
+
private Store store;
private Object context;
@@ -110,9 +110,9 @@ public abstract class StoreAccessor extends Lifecycle implements IStoreAccessor
{
TRACER.format("Writing transaction: {0}", getView());
}
-
+
commitContexts.add(context);
-
+
writePackages(context.getNewPackages());
addIDMappings(context);
@@ -127,7 +127,7 @@ public abstract class StoreAccessor extends Lifecycle implements IStoreAccessor
{
writeRevisions(context.getDirtyObjects());
}
-
+
detachObjects(context.getDetachedObjects());
}
@@ -136,21 +136,21 @@ public abstract class StoreAccessor extends Lifecycle implements IStoreAccessor
*/
public void commit()
{
-
+
}
-
+
public void rollback(CommitContext commitContext)
{
-
+
}
-
+
public void rollback()
{
if (TRACER.isEnabled())
{
TRACER.format("Rolling back transaction: {0}", getView());
}
-
+
for (CommitContext commitContext : commitContexts)
{
rollback(commitContext);
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContextImpl.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContextImpl.java
index ab894380e8..7fd36cf667 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContextImpl.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContextImpl.java
@@ -62,7 +62,7 @@ public class TransactionCommitContextImpl implements IStoreWriter.CommitContext,
private CDORevision[] dirtyObjects;
private CDOID[] detachedObjects;
-
+
private List<InternalCDORevision> detachedRevisions = new ArrayList<InternalCDORevision>();;
private CDORevisionDelta[] dirtyObjectDeltas;
@@ -420,7 +420,7 @@ public class TransactionCommitContextImpl implements IStoreWriter.CommitContext,
}
}
}
-
+
private void revisedDetachObjects()
{
for (InternalCDORevision revision : detachedRevisions)
@@ -428,13 +428,13 @@ public class TransactionCommitContextImpl implements IStoreWriter.CommitContext,
revision.setRevised(getTimeStamp() - 1);
}
}
-
+
private void detachObjects()
{
detachedRevisions.clear();
-
+
RevisionManager revisionManager = transaction.getRepository().getRevisionManager();
-
+
for (CDOID id : getDetachedObjects())
{
InternalCDORevision revision = revisionManager.getRevision(id, CDORevision.UNCHUNKED, false);
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/XATransactionCommitContext.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/XATransactionCommitContext.java
index 2005a1371b..51b2a9fc2e 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/XATransactionCommitContext.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/XATransactionCommitContext.java
@@ -10,7 +10,6 @@
**************************************************************************/
package org.eclipse.emf.cdo.internal.server;
-
import org.eclipse.emf.cdo.internal.server.bundle.OM;
import org.eclipse.net4j.util.WrappedException;
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CommitNotificationRequest.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CommitNotificationRequest.java
index 828005d497..1bd0e131e4 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CommitNotificationRequest.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CommitNotificationRequest.java
@@ -38,7 +38,7 @@ public class CommitNotificationRequest extends CDOServerRequest
private List<CDOIDAndVersion> dirtyIDs;
private List<CDORevisionDelta> deltas;
-
+
private List<CDOID> detachedObjects;
public CommitNotificationRequest(IChannel channel, long timeStamp, List<CDOIDAndVersion> dirtyIDs,
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CommitTransactionIndication.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CommitTransactionIndication.java
index 38018523f3..4a8768389f 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CommitTransactionIndication.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/CommitTransactionIndication.java
@@ -54,13 +54,14 @@ public class CommitTransactionIndication extends CDOServerIndication
return CDOProtocolConstants.SIGNAL_COMMIT_TRANSACTION;
}
- @Override
+ @Override
protected TransactionPackageManager getPackageManager()
{
return commitContext.getPackageManager();
}
- @Override
- protected void indicating(CDODataInput in) throws IOException
+
+ @Override
+ protected void indicating(CDODataInput in) throws IOException
{
try
{
@@ -190,7 +191,7 @@ public class CommitTransactionIndication extends CDOServerIndication
List<CDOIDMetaRange> metaRanges = commitContext.getMetaIDRanges();
for (CDOIDMetaRange metaRange : metaRanges)
{
- out.writeCDOIDMetaRange(metaRange);
+ out.writeCDOIDMetaRange(metaRange);
}
}
@@ -205,7 +206,7 @@ public class CommitTransactionIndication extends CDOServerIndication
{
CDOID newID = entry.getValue();
out.writeCDOID(oldID);
- out.writeCDOID(newID);
+ out.writeCDOID(newID);
}
}
out.writeCDOID(CDOID.NULL);
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IQueryContext.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IQueryContext.java
index 99694d410b..afc4ee95e7 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IQueryContext.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IQueryContext.java
@@ -22,7 +22,8 @@ public interface IQueryContext
* Adds the given object to the results of the associated query.
*
* @param object
- * Support many primitives, CDOID and CDORevision. CDORevision are converted in CDOID and only CDOID are transfered to the client.
+ * Support many primitives, CDOID and CDORevision. CDORevision are converted in CDOID and only CDOID are
+ * transfered to the client.
* @return <code>true</code> to indicate that more results can be passed subsequently, <code>false</code> otherwise
* (i.e. maxResults has been reached or an asynchronous query has been canceled).
*/
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreWriter.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreWriter.java
index 8fe30bea20..8e67b22ef7 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreWriter.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreWriter.java
@@ -29,13 +29,16 @@ public interface IStoreWriter extends IStoreReader
public IView getView();
/**
- * Called before committing. An Instance of a storeWriter represents an instance of back-end Transaction. Could be called multiple times before commit it called.
+ * Called before committing. An Instance of a storeWriter represents an instance of back-end Transaction. Could be
+ * called multiple times before commit it called.
+ *
* @since 2.0
*/
public void write(CommitContext context);
/**
* It will flush to the backend and make available the data for others.
+ *
* @since 2.0
*/
public void commit();
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java
index b5160b138a..9ba8ebd20e 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java
@@ -142,8 +142,8 @@ public abstract class AbstractCDOTest extends AbstractTransportTest
// assertEquals(null, object.cdoID());
// assertEquals(null, object.cdoRevision());
// assertEquals(null, object.cdoView());
- //assertEquals(bject.eResource(), object.cdoResource());
- //assertEquals(null, object.cdoResource());
+ // assertEquals(bject.eResource(), object.cdoResource());
+ // assertEquals(null, object.cdoResource());
}
protected static void assertNotTransient(CDOObject object, CDOView view)
@@ -152,9 +152,9 @@ public abstract class AbstractCDOTest extends AbstractTransportTest
assertNotNull(object.cdoID());
assertNotNull(object.cdoRevision());
assertNotNull(object.cdoView());
- //assertNotNull(object.cdoResource());
+ // assertNotNull(object.cdoResource());
assertNotNull(object.eResource());
- //assertEquals(object.eResource(), object.cdoResource());
+ // assertEquals(object.eResource(), object.cdoResource());
assertEquals(view, object.cdoView());
assertEquals(object, view.getObject(object.cdoID(), false));
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java
index 738628412b..d347185291 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java
@@ -12,6 +12,7 @@ package org.eclipse.emf.cdo.tests;
import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_241464_Test;
import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_243310_Test;
+import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_246442_Test;
import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_246622_Test;
import junit.framework.Test;
@@ -51,7 +52,8 @@ public class AllTests
suite.addTestSuite(NoLegacyTest.class);
suite.addTestSuite(Bugzilla_241464_Test.class);
suite.addTestSuite(Bugzilla_243310_Test.class);
- suite.addTestSuite(Bugzilla_246622_Test.class);
+ suite.addTestSuite(Bugzilla_246622_Test.class);
+ suite.addTestSuite(Bugzilla_246442_Test.class);
suite.addTestSuite(AutoAttacherTest.class);
suite.addTestSuite(SavepointTest.class);
suite.addTestSuite(ChangeSubscriptionTest.class);
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ComplexTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ComplexTest.java
index 39f49bb0c8..bf8a2be614 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ComplexTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ComplexTest.java
@@ -573,9 +573,9 @@ public class ComplexTest extends AbstractCDOTest
MultiContainedElement element_work = (MultiContainedElement)o;
assertEquals(resource1FromTx2, element_work.cdoResource());
assertEquals(resource1FromTx2, element_work.eResource());
-
+
container.getElements().add(element_work);
-
+
assertEquals(null, element_work.cdoResource());
assertEquals(resource2, element_work.eResource());
transaction2.commit();
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ContainmentTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ContainmentTest.java
index 627e140064..2e83deb548 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ContainmentTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ContainmentTest.java
@@ -389,15 +389,13 @@ public class ContainmentTest extends AbstractCDOTest
CDOTransaction transaction = session.openTransaction(resourceSet);
resourceSet.getResourceFactoryRegistry().getProtocolToFactoryMap().put("test", new XMIResourceFactoryImpl());
-
+
Resource resource1 = resourceSet.createResource(URI.createURI("test://1"));
resource1.load(new ByteArrayInputStream(data), null);
Resource resource = transaction.getResource("test");
Order order = (Order)resource.getContents().get(0);
-
-
assertEquals(resource1.getContents().get(0), order.eContainer());
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/DetachTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/DetachTest.java
index c3e9c21399..78ba5c9f0b 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/DetachTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/DetachTest.java
@@ -77,9 +77,9 @@ public class DetachTest extends AbstractCDOTest
assertEquals(c1, transaction.getResourceSet().getEObject(uriC1, false));
resource.getContents().remove(c1);
-
+
assertTransient(c1);
-
+
// We should not be able to access that objects
try
{
@@ -92,9 +92,9 @@ public class DetachTest extends AbstractCDOTest
}
transaction.commit();
-
+
assertTransient(c1);
-
+
try
{
transaction.getResourceSet().getEObject(uriC1, false);
@@ -105,7 +105,6 @@ public class DetachTest extends AbstractCDOTest
}
-
}
public void testSavePointNewObjectDeletion() throws Exception
@@ -215,14 +214,14 @@ public class DetachTest extends AbstractCDOTest
assertEquals("Test", c1.getName());
}
-
+
private void detachResource(ResourceSet rset, CDOResource resource) throws Exception
{
Order order = Model1Factory.eINSTANCE.createOrder();
OrderDetail orderDetail = Model1Factory.eINSTANCE.createOrderDetail();
resource.getContents().add(order);
order.getOrderDetails().add(orderDetail);
-
+
assertActive(resource);
Assert.assertEquals(1, CDOUtil.getViewSet(rset).getViews().length);
Assert.assertEquals(1, rset.getResources().size());
@@ -234,7 +233,7 @@ public class DetachTest extends AbstractCDOTest
Assert.assertEquals(1, CDOUtil.getViewSet(rset).getViews().length);
Assert.assertEquals(0, rset.getResources().size());
}
-
+
public void testDetachNewResource() throws Exception
{
msg("Opening session");
@@ -250,7 +249,7 @@ public class DetachTest extends AbstractCDOTest
detachResource(rset, resource);
}
-
+
public void testDetachPersistedResource() throws Exception
{
msg("Opening session");
@@ -263,12 +262,12 @@ public class DetachTest extends AbstractCDOTest
msg("Creating resource");
CDOResource resource = transaction.createResource("/test1");
-
+
transaction.commit();
CDOID resourceID = resource.cdoID();
detachResource(rset, resource);
-
+
assertEquals(true, transaction.getDetachedObjects().contains(resourceID));
}
-
+
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/InvalidationTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/InvalidationTest.java
index 6b21cc5f94..8b948f0d7c 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/InvalidationTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/InvalidationTest.java
@@ -629,8 +629,7 @@ public class InvalidationTest extends AbstractCDOTest
assertEquals(false, timeOuterB_2.timedOut());
assertEquals(false, timeOuterC_2.timedOut());
}
-
-
+
public void testDetach() throws Exception
{
msg("Creating category1");
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/XATransactionTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/XATransactionTest.java
index 5c19da3a7f..afc1c9219a 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/XATransactionTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/XATransactionTest.java
@@ -141,7 +141,7 @@ public class XATransactionTest extends AbstractCDOTest
xaTransaction.commit();
}
-
+
public void testCommitFromTransactionDisabled() throws Exception
{
createRepository(REPOSITORY2_NAME);
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246442_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246442_Test.java
new file mode 100644
index 0000000000..5e8cb3ae45
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246442_Test.java
@@ -0,0 +1,107 @@
+/***************************************************************************
+ * 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:
+ * Simon McDuff - initial API and implementation
+ **************************************************************************/
+package org.eclipse.emf.cdo.tests.bugzilla;
+
+import org.eclipse.emf.cdo.CDOObject;
+import org.eclipse.emf.cdo.CDOSession;
+import org.eclipse.emf.cdo.CDOTransaction;
+import org.eclipse.emf.cdo.common.id.CDOID;
+import org.eclipse.emf.cdo.common.model.CDOPackage;
+import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.tests.AbstractCDOTest;
+
+import org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl;
+import org.eclipse.emf.internal.cdo.util.ModelUtil;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+
+/**
+ * ArrayIndexOutOfBoundsException when importing resoruces.
+ * <p>
+ *
+ * @see https://bugs.eclipse.org/246442
+ * @author Simon McDuff
+ */
+public class Bugzilla_246442_Test extends AbstractCDOTest
+{
+ public void testBugzilla_241464() throws Exception
+ {
+ CDOID lookupObject = null;
+
+ {
+ EPackage topPackage = createDynamicEPackage();
+
+ EPackage subpackage1 = topPackage.getESubpackages().get(0);
+ EClass class1Class = (EClass)subpackage1.getEClassifier("class1");
+
+ class1Class.getEAllStructuralFeatures();
+ CDOSession session = openSession();
+
+ session.getPackageRegistry().putEPackage(topPackage);
+ CDOPackage packageObject = ModelUtil.getCDOPackage(topPackage, (CDOSessionPackageManagerImpl)session
+ .getPackageManager());
+ assertNotNull(packageObject.getEcore());
+
+ CDOTransaction transaction = session.openTransaction();
+ CDOObject instance = (CDOObject)subpackage1.getEFactoryInstance().create(class1Class);
+ CDOResource resource = transaction.createResource("/test1");
+ resource.getContents().add(instance);
+ transaction.commit();
+
+ lookupObject = instance.cdoID();
+ session.close();
+ }
+
+ CDOSession session = openSession();
+ session.getFailOverStrategy().setDefaultTimeout(2000L);
+
+ CDOTransaction transaction = session.openTransaction();
+ transaction.getObject(lookupObject);
+ }
+
+ private EPackage createDynamicEPackage()
+ {
+ final EcoreFactory efactory = EcoreFactory.eINSTANCE;
+ final EcorePackage epackage = EcorePackage.eINSTANCE;
+
+ EClass schoolBookEClass = efactory.createEClass();
+ schoolBookEClass.setName("class1");
+ // create a new attribute for this EClass
+ EAttribute level = efactory.createEAttribute();
+ level.setName("level");
+ level.setEType(epackage.getEInt());
+ schoolBookEClass.getEStructuralFeatures().add(level);
+
+ // Create a new EPackage and add the new EClasses
+ EPackage topPackage = efactory.createEPackage();
+ topPackage.setName("toppackage");
+ topPackage.setNsPrefix("toppackage");
+ topPackage.setNsURI("http:///www.elver.org/toppackage");
+
+ EPackage subPackage1 = efactory.createEPackage();
+ subPackage1.setName("subPackage1");
+ subPackage1.setNsPrefix("subPackage1");
+ subPackage1.setNsURI("http:///www.elver.org/subPackage1");
+ subPackage1.getEClassifiers().add(schoolBookEClass);
+
+ EPackage subPackage2 = efactory.createEPackage();
+ subPackage2.setName("subPackage2");
+ subPackage2.setNsPrefix("subPackage2");
+ subPackage2.setNsURI("http:///www.elver.org/subPackage2");
+
+ topPackage.getESubpackages().add(subPackage1);
+ return topPackage;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246622_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246622_Test.java
index 91d0b00b5d..f3a37eeac9 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246622_Test.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246622_Test.java
@@ -39,10 +39,11 @@ public class Bugzilla_246622_Test extends AbstractCDOTest
CDOResource res = transaction1.createResource("/test1");
Order order = Model1Factory.eINSTANCE.createOrder();
OrderDetail orderDetail = Model1Factory.eINSTANCE.createOrderDetail();
-
+
res.getContents().add(order);
order.getOrderDetails().add(orderDetail);
- CDOFeature order_OrderDetailFeature = session.getPackageManager().convert(Model1Package.eINSTANCE.getOrder_OrderDetails());
+ CDOFeature order_OrderDetailFeature = session.getPackageManager().convert(
+ Model1Package.eINSTANCE.getOrder_OrderDetails());
assertEquals(orderDetail, order.cdoRevision().getData().get(order_OrderDetailFeature, 0));
assertEquals(order, orderDetail.cdoRevision().getData().getContainerID());
@@ -58,51 +59,52 @@ public class Bugzilla_246622_Test extends AbstractCDOTest
msg("Committing");
transaction1.commit();
-
+
assertEquals(orderDetail.cdoID(), order.cdoRevision().getData().get(order_OrderDetailFeature, 0));
assertEquals(orderDetail2.cdoID(), order2.cdoRevision().getData().get(order_OrderDetailFeature, 0));
-
+
assertEquals(order.cdoID(), orderDetail.cdoRevision().getData().getContainerID());
assertEquals(order2.cdoID(), orderDetail2.cdoRevision().getData().getContainerID());
-
+
Order order3 = Model1Factory.eINSTANCE.createOrder();
-
+
res.getContents().add(order3);
order3.getOrderDetails().add(orderDetail2);
-
+
assertEquals(orderDetail2.cdoID(), order3.cdoRevision().getData().get(order_OrderDetailFeature, 0));
assertEquals(order3, orderDetail2.cdoRevision().getData().getContainerID());
-
+
msg("Committing");
transaction1.commit();
}
+
public void testSet() throws Exception
{
CDOSession session = openModel1Session();
CDOTransaction transaction1 = session.openTransaction();
CDOResource res = transaction1.createResource("/test1");
-
-
+
msg("Test set with link before");
PurchaseOrder purchaseOrder = Model1Factory.eINSTANCE.createPurchaseOrder();
- Supplier supplier = Model1Factory.eINSTANCE.createSupplier();
-
+ Supplier supplier = Model1Factory.eINSTANCE.createSupplier();
+
purchaseOrder.setSupplier(supplier);
-
+
res.getContents().add(purchaseOrder);
res.getContents().add(supplier);
-
- CDOFeature supplier_PurchaseOrder = session.getPackageManager().convert(Model1Package.eINSTANCE.getSupplier_PurchaseOrders());
- CDOFeature purchaseOrder_Supplier = session.getPackageManager().convert(Model1Package.eINSTANCE.getPurchaseOrder_Supplier());
-
+ CDOFeature supplier_PurchaseOrder = session.getPackageManager().convert(
+ Model1Package.eINSTANCE.getSupplier_PurchaseOrders());
+ CDOFeature purchaseOrder_Supplier = session.getPackageManager().convert(
+ Model1Package.eINSTANCE.getPurchaseOrder_Supplier());
+
assertEquals(supplier, purchaseOrder.cdoRevision().getData().get(purchaseOrder_Supplier, 0));
assertEquals(purchaseOrder, supplier.cdoRevision().getData().get(supplier_PurchaseOrder, 0));
msg("Test set with link after");
PurchaseOrder purchaseOrder2 = Model1Factory.eINSTANCE.createPurchaseOrder();
- Supplier supplier2 = Model1Factory.eINSTANCE.createSupplier();
+ Supplier supplier2 = Model1Factory.eINSTANCE.createSupplier();
res.getContents().add(purchaseOrder2);
res.getContents().add(supplier2);
@@ -113,19 +115,18 @@ public class Bugzilla_246622_Test extends AbstractCDOTest
msg("Committing");
transaction1.commit();
-
-
+
assertEquals(supplier2.cdoID(), purchaseOrder2.cdoRevision().getData().get(purchaseOrder_Supplier, 0));
assertEquals(purchaseOrder2.cdoID(), supplier2.cdoRevision().getData().get(supplier_PurchaseOrder, 0));
-
+
assertEquals(supplier.cdoID(), purchaseOrder.cdoRevision().getData().get(purchaseOrder_Supplier, 0));
assertEquals(purchaseOrder.cdoID(), supplier.cdoRevision().getData().get(supplier_PurchaseOrder, 0));
-
+
msg("Test set with persisted CDOID");
PurchaseOrder purchaseOrder3 = Model1Factory.eINSTANCE.createPurchaseOrder();
purchaseOrder3.setSupplier(supplier2);
res.getContents().add(purchaseOrder3);
-
+
assertEquals(supplier2.cdoID(), purchaseOrder3.cdoRevision().getData().get(purchaseOrder_Supplier, 0));
assertEquals(purchaseOrder3, supplier2.cdoRevision().getData().get(supplier_PurchaseOrder, 1));
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/CommitTransactionPhase2Request.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/CommitTransactionPhase2Request.java
index 8961395fc2..aa05c9db57 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/CommitTransactionPhase2Request.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/protocol/CommitTransactionPhase2Request.java
@@ -103,7 +103,8 @@ public class CommitTransactionPhase2Request extends CommitTransactionRequest
CDOID newID = commitContext.getResult().getIDMappings().get(oldCDOID);
if (newID == null)
{
- throw new IllegalStateException("Missing informations. " + oldCDOID.toURIFragment() + " isn't mapped in the commit.");
+ throw new IllegalStateException("Missing informations. " + oldCDOID.toURIFragment()
+ + " isn't mapped in the commit.");
}
CDOID newIDExternal = CDOURIUtil.convertExternalCDOID(oldURIExternal, newID);
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/CompletePackageClosure.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/CompletePackageClosure.java
index 7571c35a0a..f16970f069 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/CompletePackageClosure.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/CompletePackageClosure.java
@@ -7,6 +7,7 @@
*
* Contributors:
* Eike Stepper - initial API and implementation
+ * Simon McDuff - http://bugs.eclipse.org/246442
**************************************************************************/
package org.eclipse.emf.internal.cdo.util;
@@ -50,9 +51,11 @@ public class CompletePackageClosure extends PackageClosure
@Override
protected void collectContents(EPackage ePackage, Set<EPackage> visited)
{
- if (ePackage != null)
+
+ if (ePackage != null && visited.add(ePackage))
{
- if (excludeEcore && ePackage == EcorePackage.eINSTANCE)
+ if (excludeEcore && // Optimize EPackage comparison
+ (EcorePackage.eINSTANCE == ePackage || EcorePackage.eNS_URI.equals(ePackage.getNsURI())))
{
return;
}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/ModelUtil.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/ModelUtil.java
index 93717194c6..3f27f36ed7 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/ModelUtil.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/ModelUtil.java
@@ -7,6 +7,7 @@
*
* Contributors:
* Eike Stepper - initial API and implementation
+ * Eike Stepper - http://bugs.eclipse.org/246442
**************************************************************************/
package org.eclipse.emf.internal.cdo.util;
@@ -35,6 +36,7 @@ import org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl;
import org.eclipse.emf.internal.cdo.bundle.OM;
import org.eclipse.net4j.util.ImplementationError;
+import org.eclipse.net4j.util.ObjectUtil;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.emf.ecore.EAttribute;
@@ -338,12 +340,29 @@ public final class ModelUtil
public static EPackageImpl createDynamicEPackage(CDOPackage cdoPackage)
{
- String ecore = cdoPackage.getEcore();
- EPackageImpl ePackage = (EPackageImpl)EMFUtil.ePackageFromString(ecore);
- prepareEPackage(ePackage);
+ CDOPackage topLevelPackage = cdoPackage.getTopLevelPackage();
+ String ecore = topLevelPackage.getEcore();
+ EPackageImpl topLevelPackageEPackage = (EPackageImpl)EMFUtil.ePackageFromString(ecore);
+ EPackageImpl ePackage = prepareEPackage(topLevelPackageEPackage, cdoPackage.getPackageURI());
return ePackage;
}
+ private static EPackageImpl prepareEPackage(EPackageImpl ePackage, String nsURI)
+ {
+ prepareEPackage(ePackage);
+ EPackageImpl result = ObjectUtil.equals(ePackage.getNsURI(), nsURI) ? ePackage : null;
+ for (EPackage subPackage : ePackage.getESubpackages())
+ {
+ EPackageImpl p = prepareEPackage((EPackageImpl)subPackage, nsURI);
+ if (p != null && result == null)
+ {
+ result = p;
+ }
+ }
+
+ return result;
+ }
+
public static void prepareEPackage(EPackageImpl ePackage)
{
ePackage.setEFactoryInstance(new CDOFactoryImpl(ePackage));

Back to the top