Skip to content

Commit 775a791

Browse files
committed
fixed tracing bug.
1 parent 5c27b2d commit 775a791

2 files changed

Lines changed: 8 additions & 11 deletions

File tree

txlcn-tc/src/main/java/com/codingapi/txlcn/tc/core/transaction/tcc/control/TccTransactionCleanService.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,17 @@ public TccTransactionCleanService(ApplicationContext applicationContext,
5959
@Override
6060
public void clear(String groupId, int state, String unitId, String unitType) throws TransactionClearException {
6161
Method exeMethod;
62+
boolean shouldDestroy = !TracingContext.tracing().hasGroup();
6263
try {
6364
TccTransactionInfo tccInfo = globalContext.tccTransactionInfo(unitId, null);
6465
Object object = applicationContext.getBean(tccInfo.getExecuteClass());
6566
// 将要移除。
6667
if (Objects.isNull(DTXLocalContext.cur())) {
6768
DTXLocalContext.getOrNew().setJustNow(true);
6869
}
69-
TracingContext.init(Maps.of(TracingConstants.GROUP_ID, groupId, TracingConstants.APP_MAP, "{}"));
70+
if (shouldDestroy) {
71+
TracingContext.init(Maps.of(TracingConstants.GROUP_ID, groupId, TracingConstants.APP_MAP, "{}"));
72+
}
7073
DTXLocalContext.getOrNew().setGroupId(groupId);
7174
DTXLocalContext.cur().setUnitId(unitId);
7275
exeMethod = tccInfo.getExecuteClass().getMethod(
@@ -85,7 +88,9 @@ public void clear(String groupId, int state, String unitId, String unitType) thr
8588
if (DTXLocalContext.cur().isJustNow()) {
8689
DTXLocalContext.makeNeverAppeared();
8790
}
88-
TracingContext.tracing().destroy();
91+
if (shouldDestroy) {
92+
TracingContext.tracing().destroy();
93+
}
8994
}
9095
}
9196
}

txlcn-tracing/src/main/java/com/codingapi/txlcn/tracing/TracingContext.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,8 @@
2020
import com.codingapi.txlcn.common.util.Maps;
2121
import com.codingapi.txlcn.common.util.id.RandomUtils;
2222
import lombok.extern.slf4j.Slf4j;
23-
import org.springframework.util.Base64Utils;
2423
import org.springframework.util.StringUtils;
2524

26-
import java.nio.charset.Charset;
27-
import java.nio.charset.StandardCharsets;
2825
import java.util.HashMap;
2926
import java.util.Map;
3027
import java.util.Objects;
@@ -56,8 +53,6 @@ public static TracingContext tracing() {
5653

5754
private Map<String, String> fields;
5855

59-
private boolean destroy;
60-
6156
public void beginTransactionGroup() {
6257
if (hasGroup()) {
6358
return;
@@ -75,7 +70,6 @@ public static void init(Map<String, String> initFields) {
7570
TracingContext tracingContext = tracing();
7671
if (Objects.isNull(tracingContext.fields)) {
7772
tracingContext.fields = new HashMap<>();
78-
tracingContext.destroy = true;
7973
}
8074
tracingContext.fields.putAll(initFields);
8175
}
@@ -160,9 +154,7 @@ public String appMapString() {
160154
*/
161155
public void destroy() {
162156
if (Objects.nonNull(tracingContextThreadLocal.get())) {
163-
if (tracingContextThreadLocal.get().destroy) {
164-
tracingContextThreadLocal.remove();
165-
}
157+
tracingContextThreadLocal.remove();
166158
}
167159
}
168160

0 commit comments

Comments
 (0)