diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/RecoveringCDOSessionImpl.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/RecoveringCDOSessionImpl.java | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/RecoveringCDOSessionImpl.java b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/RecoveringCDOSessionImpl.java index 04ac972933..5f67b15497 100644 --- a/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/RecoveringCDOSessionImpl.java +++ b/plugins/org.eclipse.emf.cdo.net4j/src/org/eclipse/emf/cdo/internal/net4j/RecoveringCDOSessionImpl.java @@ -123,9 +123,8 @@ public abstract class RecoveringCDOSessionImpl extends CDONet4jSessionImpl unhookSessionProtocol(); List<AfterRecoveryRunnable> runnables = recoverSession(); - // Check if the the sessionProtocol was replaced. (This may not be the case + // Check if the sessionProtocol was replaced. (This may not be the case // if the protocol is wrapped inside a DelegatingSessionProtocol.) - // CDOSessionProtocol newSessionProtocol = getSessionProtocol(); if (newSessionProtocol != oldSessionProtocol) { @@ -223,6 +222,17 @@ public abstract class RecoveringCDOSessionImpl extends CDONet4jSessionImpl } } + @Override + public void setSessionProtocol(CDOSessionProtocol sessionProtocol) + { + super.setSessionProtocol(sessionProtocol); + + // Bug 534014: The DelegatingSessionProtocol of this session is deactivated by CDOSessionImpl.sessionProtocolListener + // when the delegate protocol becomes inactive. The super.setSessionProtocol() method just replaces the delegate + // protocol but doesn't reactivate the DelegatingSessionProtocol. Reactivate it now. + LifecycleUtil.activate(getSessionProtocol()); + } + protected IConnector removeTCPConnector() { return (IConnector)container.removeElement("org.eclipse.net4j.connectors", "tcp", repositoryConnectorDescription); @@ -276,7 +286,7 @@ public abstract class RecoveringCDOSessionImpl extends CDONet4jSessionImpl /** * @author Eike Stepper */ - public final class OpenViewRunnable implements AfterRecoveryRunnable + private static final class OpenViewRunnable implements AfterRecoveryRunnable { private int viewID; @@ -300,7 +310,7 @@ public abstract class RecoveringCDOSessionImpl extends CDONet4jSessionImpl /** * @author Eike Stepper */ - private static class AutoCloser implements IListener + private static final class AutoCloser implements IListener { public void notifyEvent(IEvent event) { |