diff options
author | Eike Stepper | 2009-04-28 07:50:08 +0000 |
---|---|---|
committer | Eike Stepper | 2009-04-28 07:50:08 +0000 |
commit | 20f07bcde664b78b07fd42b89af9a006932aa96a (patch) | |
tree | 47fa869ae5aeb54a0c51593479e1cb81b37d8ff7 /plugins/org.eclipse.net4j | |
parent | 7459be000d18c0b12d1a5b220a4f80f46107ba90 (diff) | |
download | cdo-20f07bcde664b78b07fd42b89af9a006932aa96a.tar.gz cdo-20f07bcde664b78b07fd42b89af9a006932aa96a.tar.xz cdo-20f07bcde664b78b07fd42b89af9a006932aa96a.zip |
[273771] Commit timeout
https://bugs.eclipse.org/bugs/show_bug.cgi?id=273771
Diffstat (limited to 'plugins/org.eclipse.net4j')
-rw-r--r-- | plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java index 37d976c580..dd7fbd8c13 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java @@ -4,7 +4,7 @@ * 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 */ @@ -256,12 +256,26 @@ public class SignalProtocol<INFRA_STRUCTURE> extends Protocol<INFRA_STRUCTURE> i @Override public String toString() { - return MessageFormat.format("SignalProtocol[{0}]", getType()); //$NON-NLS-1$ + return MessageFormat.format("SignalProtocol[{0}]", getType()); //$NON-NLS-1$ } @Override protected void doDeactivate() throws Exception { + for (Signal signal : getSignals()) + { + if (signal instanceof RequestWithConfirmation<?>) + { + RequestWithConfirmation<?> request = (RequestWithConfirmation<?>)signal; + request.setRemoteException(new IllegalStateException("Request canceled due to protocol deactivation"), false); + } + } + + synchronized (signals) + { + signals.clear(); + } + failOverStrategy = null; IChannel channel = getChannel(); if (channel != null) @@ -324,6 +338,14 @@ public class SignalProtocol<INFRA_STRUCTURE> extends Protocol<INFRA_STRUCTURE> i return null; } + private Signal[] getSignals() + { + synchronized (signals) + { + return signals.values().toArray(new Signal[signals.size()]); + } + } + synchronized int getNextCorrelationID() { int correlationID = nextCorrelationID; |