@@ -18,7 +18,7 @@ public class EventTraceContext {
18
18
private final ThreadLocal <String > threadLocal = new ThreadLocal <>();
19
19
20
20
// event listener state
21
- private final Map <String , Boolean > eventListenerState = new HashMap <>();
21
+ private final Map <String , Boolean > eventKeyState = new HashMap <>();
22
22
23
23
// event stack
24
24
private final Map <String , List <Class <?>>> eventStack = new HashMap <>();
@@ -27,37 +27,38 @@ private EventTraceContext() {
27
27
}
28
28
29
29
String getOrCreateTrace () {
30
- String listenerKey = threadLocal .get ();
31
- if (listenerKey != null ) {
32
- return listenerKey .split ("#" )[0 ];
30
+ String eventKey = threadLocal .get ();
31
+ if (eventKey != null ) {
32
+ return eventKey .split ("#" )[0 ];
33
33
}
34
- String traceId = UUID .randomUUID ().toString ();
34
+ String traceId = UUID .randomUUID ().toString (). replaceAll ( "-" , "" ) ;
35
35
traceKeys .add (traceId );
36
36
return traceId ;
37
37
}
38
38
39
- public String getListenerKey (){
39
+ public String getEventKey (){
40
40
return threadLocal .get ();
41
41
}
42
42
43
- void createEventListener (String traceId ) {
44
- String listenerKey = traceId + "#" + RandomGenerator .randomString (8 );
45
- eventListenerState .put (listenerKey , false );
46
- threadLocal .set (listenerKey );
43
+ void createEventKey (String traceId ) {
44
+ String eventKey = traceId + "#" + RandomGenerator .randomString (8 );
45
+ eventKeyState .put (eventKey , false );
46
+ threadLocal .set (eventKey );
47
47
}
48
48
49
- void checkListener () {
50
- String listenerKey = threadLocal .get ();
51
- if (listenerKey != null ) {
52
- boolean state = eventListenerState .get (listenerKey );
49
+ void checkEventState () {
50
+ String eventKey = threadLocal .get ();
51
+ if (eventKey != null ) {
52
+ boolean state = eventKeyState .get (eventKey );
53
53
if (!state ) {
54
54
// event execute finish
55
- String traceId = listenerKey .split ("#" )[0 ];
55
+ String traceId = eventKey .split ("#" )[0 ];
56
56
traceKeys .remove (traceId );
57
57
eventStack .remove (traceId );
58
+ EventLogContext .getInstance ().removeEvents (traceId );
58
59
}
59
60
}
60
- eventListenerState .remove (listenerKey );
61
+ eventKeyState .remove (eventKey );
61
62
threadLocal .remove ();
62
63
}
63
64
@@ -70,11 +71,13 @@ void addEvent(String traceId, IEvent event) {
70
71
//清空trace记录
71
72
traceKeys .remove (traceId );
72
73
eventStack .remove (traceId );
73
- eventListenerState .remove (traceId );
74
+ eventKeyState .remove (traceId );
74
75
threadLocal .remove ();
76
+ EventLogContext .getInstance ().removeEvents (traceId );
75
77
throw new EventLoopException (stack , event );
76
78
}
77
79
}
80
+ EventLogContext .getInstance ().addEvent (traceId ,event );
78
81
stack .add (event .getClass ());
79
82
eventStack .put (traceId , stack );
80
83
}
0 commit comments