7
7
8
8
import io .opentracing .Span ;
9
9
import io .opentracing .SpanContext ;
10
+ import io .opentracing .noop .NoopSpan ;
10
11
import java .util .function .Supplier ;
12
+ import java .util .logging .Level ;
13
+ import java .util .logging .Logger ;
11
14
import javax .annotation .Nullable ;
12
15
13
16
class ShimUtil {
17
+ private static final Logger logger = Logger .getLogger (ShimUtil .class .getName ());
14
18
15
19
private ShimUtil () {}
16
20
17
- static SpanContextShim getContextShim (SpanContext context ) {
21
+ @ Nullable
22
+ static SpanContextShim getContextShim (@ Nullable SpanContext context ) {
23
+ if (context == null ) {
24
+ return null ;
25
+ }
26
+
18
27
if (!(context instanceof SpanContextShim )) {
19
- throw new IllegalArgumentException (
20
- "context is not a valid SpanContextShim object: " + className (context ));
28
+ logger .log (
29
+ Level .INFO ,
30
+ "Expected to have an OpenTelemetry SpanContext but got {0}" ,
31
+ className (context ));
32
+ return null ;
21
33
}
22
34
23
35
return (SpanContextShim ) context ;
24
36
}
25
37
26
- static SpanShim getSpanShim (Span span ) {
38
+ @ Nullable
39
+ static SpanShim getSpanShim (@ Nullable Span span ) {
40
+ if (span == null || span instanceof NoopSpan ) {
41
+ return null ;
42
+ }
43
+
27
44
if (!(span instanceof SpanShim )) {
28
45
if (span instanceof Supplier <?>) {
29
46
// allow libraries to implement a delegate span,
@@ -32,11 +49,13 @@ static SpanShim getSpanShim(Span span) {
32
49
if (wrapped instanceof Span ) {
33
50
return getSpanShim ((Span ) wrapped );
34
51
} else {
35
- throw new IllegalArgumentException (
36
- "span wrapper didn't return a span: " + className ( wrapped )) ;
52
+ logger . log ( Level . INFO , "Span wrapper didn't return a span: {0}" , className ( wrapped ));
53
+ return null ;
37
54
}
38
55
}
39
- throw new IllegalArgumentException ("span is not a valid SpanShim object: " + className (span ));
56
+
57
+ logger .log (Level .INFO , "Expected to have an OpenTelemetry Span but got {0}" , className (span ));
58
+ return null ;
40
59
}
41
60
42
61
return (SpanShim ) span ;
0 commit comments