This is an automated email from the ASF dual-hosted git repository.
ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-saga.git
The following commit(s) were added to refs/heads/master by this push:
new 5580cfd * SCB-856 Fixed the way to remove specific OmegaCallback.
5580cfd is described below
commit 5580cfd1e89b0d73d00f275c4280b996b8fb6c10
Author: Chenhaoqing <[email protected]>
AuthorDate: Mon Sep 3 20:56:18 2018 +0800
* SCB-856 Fixed the way to remove specific OmegaCallback.
---
.../saga/alpha/server/tcc/callback/OmegaCallbackWrapper.java | 2 +-
.../alpha/server/tcc/registry/OmegaCallbacksRegistry.java | 11 ++++++++---
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git
a/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/callback/OmegaCallbackWrapper.java
b/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/callback/OmegaCallbackWrapper.java
index 62c183a..dd98b1a 100644
---
a/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/callback/OmegaCallbackWrapper.java
+++
b/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/callback/OmegaCallbackWrapper.java
@@ -29,7 +29,7 @@ public class OmegaCallbackWrapper implements OmegaCallback {
try {
omegaCallback.invoke(event, status);
} catch (Exception ex) {
- OmegaCallbacksRegistry.removeByValue(event.getServiceName(),
omegaCallback);
+ OmegaCallbacksRegistry.remove(event.getServiceName(),
event.getInstanceId());
throw ex;
}
}
diff --git
a/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/registry/OmegaCallbacksRegistry.java
b/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/registry/OmegaCallbacksRegistry.java
index 02340b2..feb9026 100644
---
a/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/registry/OmegaCallbacksRegistry.java
+++
b/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/registry/OmegaCallbacksRegistry.java
@@ -77,9 +77,14 @@ public final class OmegaCallbacksRegistry {
return result;
}
- public static void removeByValue(String serviceName, OmegaCallback
omegaCallback) {
- Map<String, OmegaCallback> callbackMap =
REGISTRY.getOrDefault(serviceName, emptyMap());
- callbackMap.values().remove(omegaCallback);
+ /**
+ * Remove omega TCC callback by service name and instance id.
+ *
+ * @param serviceName service name
+ * @param instanceId instance id
+ */
+ public static void remove(String serviceName, String instanceId) {
+ REGISTRY.getOrDefault(serviceName, emptyMap()).remove(instanceId);
}
/**