@@ -91,12 +91,26 @@ public CompletableFuture<Void> submitExceptionAsync(Exception exception) {
9191 }
9292
9393 public void submitException (Exception exception ) {
94- Event event = createException ().build ();
94+ submitException (null , exception );
95+ }
96+
97+ public CompletableFuture <Void > submitExceptionAsync (String message , Exception exception ) {
98+ return CompletableFuture .runAsync (() -> submitException (message , exception ), executorService );
99+ }
100+
101+ public void submitException (String message , Exception exception ) {
102+ Event event ;
103+ if (message == null ) {
104+ event = createError ().build ();
105+ } else {
106+ event = createError ().message (message ).build ();
107+ }
95108 PluginContext pluginContext = PluginContext .builder ().exception (exception ).build ();
96- submitEvent (EventPluginContext .builder ().event (event ).context (pluginContext ).build ());
109+ submitEventWithContext (
110+ EventPluginContext .builder ().event (event ).context (pluginContext ).build ());
97111 }
98112
99- public Event .EventBuilder createException () {
113+ public Event .EventBuilder createError () {
100114 return createEvent ().type (EventType .ERROR .value ());
101115 }
102116
@@ -107,23 +121,23 @@ public CompletableFuture<Void> submitUnhandledExceptionAsync(
107121 }
108122
109123 public void submitUnhandledException (Exception exception , String submissionMethod ) {
110- Event event = createException ().build ();
124+ Event event = createError ().build ();
111125 PluginContext pluginContext =
112126 PluginContext .builder ()
113127 .exception (exception )
114128 .unhandledError (true )
115129 .submissionMethod (submissionMethod )
116130 .build ();
117- submitEvent (EventPluginContext .builder ().event (event ).context (pluginContext ).build ());
131+ submitEventWithContext (
132+ EventPluginContext .builder ().event (event ).context (pluginContext ).build ());
118133 }
119134
120135 public CompletableFuture <Void > submitFeatureUsageAsync (String feature ) {
121136 return CompletableFuture .runAsync (() -> submitFeatureUsage (feature ), executorService );
122137 }
123138
124139 public void submitFeatureUsage (String feature ) {
125- Event event = createFeatureUsage (feature ).build ();
126- submitEvent (EventPluginContext .from (event ));
140+ submitEvent (createFeatureUsage (feature ).build ());
127141 }
128142
129143 public Event .EventBuilder createFeatureUsage (String feature ) {
@@ -151,8 +165,7 @@ public CompletableFuture<Void> submitLogAsync(String message, String source, Str
151165 }
152166
153167 public void submitLog (String message , String source , String level ) {
154- Event event = createLog (message , source , level ).build ();
155- submitEvent (EventPluginContext .from (event ));
168+ submitEvent (createLog (message , source , level ).build ());
156169 }
157170
158171 public Event .EventBuilder createLog (String message ) {
@@ -165,13 +178,7 @@ public Event.EventBuilder createLog(String message, String source) {
165178
166179 public Event .EventBuilder createLog (String message , String source , String level ) {
167180 if (source == null ) {
168- // Calling method
169- StackTraceElement [] traceElements = Thread .currentThread ().getStackTrace ();
170- source = traceElements [2 ].getMethodName ();
171- // Came from the overrided method
172- if (source .equals ("createLog" )) {
173- source = traceElements [3 ].getMethodName ();
174- }
181+ source = getCallingMethod ();
175182 }
176183
177184 Event .EventBuilder builder =
@@ -183,13 +190,20 @@ public Event.EventBuilder createLog(String message, String source, String level)
183190 return builder .property (EventPropertyKey .LOG_LEVEL .value (), level );
184191 }
185192
193+ private String getCallingMethod () {
194+ StackTraceElement [] traceElements = Thread .currentThread ().getStackTrace ();
195+ String source = traceElements [3 ].getMethodName ();
196+ boolean cameFromOverridenMethod = source .equals ("createLog" );
197+
198+ return cameFromOverridenMethod ? traceElements [4 ].getMethodName () : source ;
199+ }
200+
186201 public CompletableFuture <Void > submitNotFoundAsync (String resource ) {
187202 return CompletableFuture .runAsync (() -> submitNotFound (resource ), executorService );
188203 }
189204
190205 public void submitNotFound (String resource ) {
191- Event event = createNotFound (resource ).build ();
192- submitEvent (EventPluginContext .from (event ));
206+ submitEvent (createNotFound (resource ).build ());
193207 }
194208
195209 public Event .EventBuilder createNotFound (String resource ) {
@@ -201,8 +215,7 @@ public CompletableFuture<Void> submitSessionStartAsync() {
201215 }
202216
203217 public void submitSessionStart () {
204- Event event = createSessionStart ().build ();
205- submitEvent (EventPluginContext .from (event ));
218+ submitEvent (createSessionStart ().build ());
206219 }
207220
208221 public Event .EventBuilder createSessionStart () {
@@ -215,11 +228,21 @@ public Event.EventBuilder createEvent() {
215228 .date (LocalDate .now ());
216229 }
217230
218- public CompletableFuture <Void > submitEventAsync (EventPluginContext eventPluginContext ) {
219- return CompletableFuture .runAsync (() -> submitEvent (eventPluginContext ), executorService );
231+ public CompletableFuture <Void > submitEventAsync (Event event ) {
232+ return CompletableFuture .runAsync (() -> submitEvent (event ), executorService );
233+ }
234+
235+ public void submitEvent (Event event ) {
236+ eventPluginRunner .run (EventPluginContext .from (event ));
237+ }
238+
239+ public CompletableFuture <Void > submitEventWithContextAsync (
240+ EventPluginContext eventPluginContext ) {
241+ return CompletableFuture .runAsync (
242+ () -> submitEventWithContext (eventPluginContext ), executorService );
220243 }
221244
222- public void submitEvent (EventPluginContext eventPluginContext ) {
245+ public void submitEventWithContext (EventPluginContext eventPluginContext ) {
223246 eventPluginRunner .run (eventPluginContext );
224247 }
225248
0 commit comments