Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2009-04-28 07:50:08 +0000
committerEike Stepper2009-04-28 07:50:08 +0000
commit20f07bcde664b78b07fd42b89af9a006932aa96a (patch)
tree47fa869ae5aeb54a0c51593479e1cb81b37d8ff7 /plugins/org.eclipse.net4j
parent7459be000d18c0b12d1a5b220a4f80f46107ba90 (diff)
downloadcdo-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.java26
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;

Back to the top