2525import io .quarkus .runtime .Startup ;
2626import io .smallrye .common .annotation .Identifier ;
2727import jakarta .annotation .Nonnull ;
28+ import jakarta .annotation .Nullable ;
2829import jakarta .enterprise .context .ApplicationScoped ;
2930import jakarta .inject .Inject ;
3031import java .util .List ;
@@ -62,7 +63,7 @@ public class TaskExecutorImpl implements TaskExecutor {
6263 private final TaskFileIOSupplier fileIOSupplier ;
6364 private final List <TaskHandler > taskHandlers = new CopyOnWriteArrayList <>();
6465 private final PolarisEventListener polarisEventListener ;
65- private final Tracer tracer ;
66+ @ Nullable private final Tracer tracer ;
6667
6768 @ SuppressWarnings ("unused" ) // Required by CDI
6869 public TaskExecutorImpl () {
@@ -74,13 +75,13 @@ public TaskExecutorImpl(
7475 @ Identifier ("task-executor" ) Executor executor ,
7576 MetaStoreManagerFactory metaStoreManagerFactory ,
7677 TaskFileIOSupplier fileIOSupplier ,
77- Tracer tracer ,
78- PolarisEventListener polarisEventListener ) {
78+ PolarisEventListener polarisEventListener ,
79+ @ Nullable Tracer tracer ) {
7980 this .executor = executor ;
8081 this .metaStoreManagerFactory = metaStoreManagerFactory ;
8182 this .fileIOSupplier = fileIOSupplier ;
82- this .tracer = tracer ;
8383 this .polarisEventListener = polarisEventListener ;
84+ this .tracer = tracer ;
8485 }
8586
8687 @ Startup
@@ -187,20 +188,24 @@ protected void handleTask(long taskEntityId, CallContext ctx, int attempt) {
187188 }
188189
189190 protected void handleTaskWithTracing (long taskEntityId , CallContext callContext , int attempt ) {
190- Span span =
191- tracer
192- .spanBuilder ("polaris.task" )
193- .setParent (Context .current ())
194- .setAttribute (
195- TracingFilter .REALM_ID_ATTRIBUTE ,
196- callContext .getRealmContext ().getRealmIdentifier ())
197- .setAttribute ("polaris.task.entity.id" , taskEntityId )
198- .setAttribute ("polaris.task.attempt" , attempt )
199- .startSpan ();
200- try (Scope ignored = span .makeCurrent ()) {
191+ if (tracer == null ) {
201192 handleTask (taskEntityId , callContext , attempt );
202- } finally {
203- span .end ();
193+ } else {
194+ Span span =
195+ tracer
196+ .spanBuilder ("polaris.task" )
197+ .setParent (Context .current ())
198+ .setAttribute (
199+ TracingFilter .REALM_ID_ATTRIBUTE ,
200+ callContext .getRealmContext ().getRealmIdentifier ())
201+ .setAttribute ("polaris.task.entity.id" , taskEntityId )
202+ .setAttribute ("polaris.task.attempt" , attempt )
203+ .startSpan ();
204+ try (Scope ignored = span .makeCurrent ()) {
205+ handleTask (taskEntityId , callContext , attempt );
206+ } finally {
207+ span .end ();
208+ }
204209 }
205210 }
206211}
0 commit comments