88import io .sentry .SpanStatus ;
99import java .util .Arrays ;
1010import java .util .Iterator ;
11+ import java .util .List ;
1112import java .util .Map ;
1213import java .util .Set ;
1314import java .util .stream .Collectors ;
@@ -454,31 +455,22 @@ public Iterator<Entry<K, V>> iterator() {
454455
455456 private @ Nullable ISpan startSpan (
456457 final @ Nullable Object key , final @ NotNull String operationName ) {
457- if (!scopes .getOptions ().isEnableCacheTracing ()) {
458- return null ;
459- }
460-
461- final ISpan activeSpan = scopes .getSpan ();
462- if (activeSpan == null || activeSpan .isNoOp ()) {
463- return null ;
464- }
465-
466- final SpanOptions spanOptions = new SpanOptions ();
467- spanOptions .setOrigin (TRACE_ORIGIN );
468458 final String keyString = key != null ? String .valueOf (key ) : null ;
469- final ISpan span = activeSpan .startChild ("cache." + operationName , keyString , spanOptions );
470- if (span .isNoOp ()) {
471- return null ;
472- }
473- if (keyString != null ) {
474- span .setData (SpanDataConvention .CACHE_KEY_KEY , Arrays .asList (keyString ));
475- }
476- span .setData (OPERATION_ATTRIBUTE , operationName );
477- return span ;
459+ return startSpan (operationName , keyString , keyString != null ? Arrays .asList (keyString ) : null );
478460 }
479461
480462 private @ Nullable ISpan startSpanForKeys (
481463 final @ NotNull Set <?> keys , final @ NotNull String operationName ) {
464+ return startSpan (
465+ operationName ,
466+ delegate .getName (),
467+ keys .stream ().map (String ::valueOf ).collect (Collectors .toList ()));
468+ }
469+
470+ private @ Nullable ISpan startSpan (
471+ final @ NotNull String operationName ,
472+ final @ Nullable String description ,
473+ final @ Nullable List <String > cacheKeys ) {
482474 if (!scopes .getOptions ().isEnableCacheTracing ()) {
483475 return null ;
484476 }
@@ -490,14 +482,13 @@ public Iterator<Entry<K, V>> iterator() {
490482
491483 final SpanOptions spanOptions = new SpanOptions ();
492484 spanOptions .setOrigin (TRACE_ORIGIN );
493- final ISpan span =
494- activeSpan .startChild ("cache." + operationName , delegate .getName (), spanOptions );
485+ final ISpan span = activeSpan .startChild ("cache." + operationName , description , spanOptions );
495486 if (span .isNoOp ()) {
496487 return null ;
497488 }
498- span . setData (
499- SpanDataConvention .CACHE_KEY_KEY ,
500- keys . stream (). map ( String :: valueOf ). collect ( Collectors . toList ()));
489+ if ( cacheKeys != null ) {
490+ span . setData ( SpanDataConvention .CACHE_KEY_KEY , cacheKeys );
491+ }
501492 span .setData (OPERATION_ATTRIBUTE , operationName );
502493 return span ;
503494 }
0 commit comments