Skip to content

v1.0.0-beta.9

Pre-release
Pre-release

Choose a tag to compare

@michaelbushe michaelbushe released this 11 Jul 07:13
· 32 commits to main since this release

Fixed

  • OTelAPI.instrumentationScope() recursed into itself when called before
    initialization, causing an immediate StackOverflowError; it now lazily
    installs the no-op API factory like the other accessors (#27). Thanks
    @kevmoo.
  • OTelAPI.tracer() and OTelAPI.logger() threw a null-check error before
    initialization instead of lazily installing the no-op API factory (#27).
  • TraceState.fromString / fromMap / empty, SpanContext.fromJson, and
    Baggage.fromJson threw StateError('Call initialize() first.') instead
    of lazily installing the no-op API factory — fromString parses the W3C
    tracestate header (a propagator path) and the fromJsons run in fresh
    isolates during deserialization, both classic pre-init calls (#33).
  • OTelAPI.tracerProviders() / meterProviders() / loggerProviders()
    read OTelAPI's private factory cache instead of the global factory, so
    providers of a factory installed by an SDK were invisible until some
    OTelAPI accessor ran (#33).
  • OTelAPI.attributesFromMap, Attributes.of, and Map.toAttributes() no
    longer bypass the factory via the static attrsFromMap "cheat" (obsolete
    since the beta.8 lazy-install lifecycle); a factory that overrides
    attributesFromMap is now respected on all three paths (#33).
  • TraceState multi-tenant tracestate keys (tenant-id@system-id) now
    match the W3C Trace Context key grammar: a tenant-id may start with a
    digit, and tenant-id/system-id are length-capped (241/14 chars).
    Previously a digit-leading tenant was rejected and over-long ids
    accepted (#38).