static SpanValueStorageProvider get()

in common/src/main/java/co/elastic/otel/common/SpanValueStorageProvider.java [32:48]


  static SpanValueStorageProvider get() {
    try {
      Class<?> sdkSpan = Class.forName("io.opentelemetry.sdk.trace.SdkSpan");
      if (sdkSpan.getClassLoader() != SpanValueStorage.class.getClassLoader()) {
        // If we are running in a different classloader, this means we aren't running in our distro
        logger.log(
            Level.FINE,
            "Using map-backed storage for SpanValues because SdkSpan lives in a different classloader and therefore is inaccessible");
        return MapBacked.getInstance();
      }
    } catch (ClassNotFoundException e) {
      throw new IllegalStateException("Expected SdkSpan class to exist", e);
    }
    return FieldBackedSpanValueStorageProvider.INSTANCE != null
        ? FieldBackedSpanValueStorageProvider.INSTANCE
        : MapBacked.getInstance();
  }