Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2011-06-08 10:11:29 +0000
committerEike Stepper2011-06-08 10:11:29 +0000
commitb4d8ea3b2d3eec14bb86e3f91a20da3ca95c21da (patch)
tree4a703eb596facd3f76469fed05f8224ec7e0156b /plugins/org.eclipse.emf.cdo.examples/src
parent5fd9c80fc14af93061e65e1a6e7bc5845ed27839 (diff)
downloadcdo-b4d8ea3b2d3eec14bb86e3f91a20da3ca95c21da.tar.gz
cdo-b4d8ea3b2d3eec14bb86e3f91a20da3ca95c21da.tar.xz
cdo-b4d8ea3b2d3eec14bb86e3f91a20da3ca95c21da.zip
[346792] OfflineCloneExample fails with IllegalArgumentException: Cannot end transaction with unknown timestamp 1305996854765
https://bugs.eclipse.org/bugs/show_bug.cgi?id=346792
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.examples/src')
-rw-r--r--plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/AbstractOfflineExampleServer.java19
-rw-r--r--plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/OfflineExampleClone.java28
2 files changed, 47 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/AbstractOfflineExampleServer.java b/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/AbstractOfflineExampleServer.java
index 74bb166675..ac775d09de 100644
--- a/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/AbstractOfflineExampleServer.java
+++ b/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/AbstractOfflineExampleServer.java
@@ -16,6 +16,7 @@ import org.eclipse.emf.cdo.common.util.RepositoryTypeChangedEvent;
import org.eclipse.emf.cdo.examples.company.CompanyPackage;
import org.eclipse.emf.cdo.server.CDOServerUtil;
import org.eclipse.emf.cdo.server.IRepository;
+import org.eclipse.emf.cdo.server.ISession;
import org.eclipse.emf.cdo.server.IStore;
import org.eclipse.emf.cdo.server.db.CDODBUtil;
import org.eclipse.emf.cdo.server.db.mapping.IMappingStrategy;
@@ -25,6 +26,8 @@ import org.eclipse.net4j.db.DBUtil;
import org.eclipse.net4j.db.IDBAdapter;
import org.eclipse.net4j.db.IDBConnectionProvider;
import org.eclipse.net4j.db.h2.H2Adapter;
+import org.eclipse.net4j.util.container.ContainerEventAdapter;
+import org.eclipse.net4j.util.container.IContainer;
import org.eclipse.net4j.util.container.IManagedContainer;
import org.eclipse.net4j.util.event.IEvent;
import org.eclipse.net4j.util.event.IListener;
@@ -69,6 +72,7 @@ public abstract class AbstractOfflineExampleServer
{
this.name = name;
this.port = port;
+
container = OfflineExampleUtil.createContainer();
container.getElement("org.eclipse.emf.cdo.server.browsers", "default", dbBrowserPort + ""); //$NON-NLS-1$ //$NON-NLS-2$
}
@@ -98,6 +102,21 @@ public abstract class AbstractOfflineExampleServer
}
});
+ repository.getSessionManager().addListener(new ContainerEventAdapter<ISession>()
+ {
+ @Override
+ protected void onAdded(IContainer<ISession> sessionManager, ISession session)
+ {
+ System.out.println("Registered " + session);
+ }
+
+ @Override
+ protected void onRemoved(IContainer<ISession> sessionManager, ISession session)
+ {
+ System.out.println("Unregistered " + session);
+ }
+ });
+
connect();
}
diff --git a/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/OfflineExampleClone.java b/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/OfflineExampleClone.java
index da814caf2b..4f7b86c589 100644
--- a/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/OfflineExampleClone.java
+++ b/plugins/org.eclipse.emf.cdo.examples/src/org/eclipse/emf/cdo/examples/server/offline/OfflineExampleClone.java
@@ -18,10 +18,16 @@ import org.eclipse.emf.cdo.server.CDOServerUtil;
import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.IRepositorySynchronizer;
import org.eclipse.emf.cdo.server.IStore;
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.session.CDOSessionConfiguration.SessionOpenedEvent;
import org.eclipse.emf.cdo.session.CDOSessionConfigurationFactory;
import org.eclipse.net4j.Net4jUtil;
import org.eclipse.net4j.connector.IConnector;
+import org.eclipse.net4j.util.event.IEvent;
+import org.eclipse.net4j.util.event.IListener;
+import org.eclipse.net4j.util.lifecycle.ILifecycle;
+import org.eclipse.net4j.util.lifecycle.LifecycleEventAdapter;
import java.util.Map;
@@ -89,6 +95,28 @@ public class OfflineExampleClone extends AbstractOfflineExampleServer
configuration.setConnector(connector);
configuration.setRepositoryName(repositoryName);
configuration.setRevisionManager(CDORevisionUtil.createRevisionManager(CDORevisionCache.NOOP));
+ configuration.addListener(new IListener()
+ {
+ public void notifyEvent(IEvent event)
+ {
+ if (event instanceof SessionOpenedEvent)
+ {
+ SessionOpenedEvent e = (SessionOpenedEvent)event;
+ CDOSession session = e.getOpenedSession();
+ System.out.println("Opened " + session);
+
+ session.addListener(new LifecycleEventAdapter()
+ {
+ @Override
+ protected void onAboutToDeactivate(ILifecycle lifecycle)
+ {
+ System.out.println("Closing " + lifecycle);
+ }
+ });
+ }
+ }
+ });
+
return configuration;
}

Back to the top