Skip to content

Releases: getsentry/sentry-java

8.13.2

27 May 12:41
Compare
Choose a tag to compare

Fixes

  • Don't apply Spring Boot plugin in sentry-spring-boot-jakarta (#4456)
    • The jar for io.sentry:sentry-spring-boot-jakarta is now correctly being built and published to Maven Central.

8.13.1

26 May 18:57
Compare
Choose a tag to compare

Fixes

  • Fix SentryAndroid.init crash if SDK is initialized from a background thread while an Activity is in resumed state (#4449)

Dependencies

8.13.0

26 May 11:35
Compare
Choose a tag to compare

Features

  • Add debug mode for Session Replay masking (#4357)
    • Use Sentry.replay().enableDebugMaskingOverlay() to overlay the screen with the Session Replay masks.
    • The masks will be invalidated at most once per frameRate (default 1 fps).
  • Extend Logs API to allow passing in attributes (#4402)
    • Sentry.logger.log now takes a SentryLogParameters
    • Use SentryLogParameters.create(SentryAttributes.of(...)) to pass attributes
      • Attribute values may be of type string, boolean, integer or double.
      • Other types will be converted to string. Currently we simply call toString() but we might offer more in the future.
      • You may manually flatten complex types into multiple separate attributes of simple types.
        • e.g. intead of SentryAttribute.named("point", Point(10, 20)) you may store it as SentryAttribute.integerAttribute("point.x", point.x) and SentryAttribute.integerAttribute("point.y", point.y)
      • SentryAttribute.named() will automatically infer the type or fall back to string.
      • SentryAttribute.booleanAttribute() takes a Boolean value
      • SentryAttribute.integerAttribute() takes a Integer value
      • SentryAttribute.doubleAttribute() takes a Double value
      • SentryAttribute.stringAttribute() takes a String value
    • We opted for handling parameters via SentryLogParameters to avoid creating tons of overloads that are ambiguous.

Fixes

  • Isolation scope is now forked in OtelSentrySpanProcessor instead of OtelSentryPropagator (#4434)
    • Since propagator may never be invoked we moved the location where isolation scope is forked.
    • Not invoking OtelSentryPropagator.extract or having a sentry-trace header that failed to parse would cause isolation scope not to be forked.
    • This in turn caused data to bleed between scopes, e.g. from one request into another

Dependencies

  • Bump Spring Boot to 3.5.0 (#4111)

8.12.0

13 May 16:48
Compare
Choose a tag to compare

Features

  • Add new User Feedback API (#4286)
    • We now introduced Sentry.captureFeedback, which supersedes Sentry.captureUserFeedback
  • Add Sentry Log Feature (#4372)
    • The feature is disabled by default and needs to be enabled by:
      • options.getLogs().setEnabled(true) in Sentry.init / SentryAndroid.init
      • <meta-data android:name="io.sentry.logs.enabled" android:value="true" /> in AndroidManifest.xml
      • logs.enabled=true in sentry.properties
      • sentry.logs.enabled=true in application.properties
      • sentry.logs.enabled: true in application.yml
    • Logs can be captured using Sentry.logger().info() and similar methods.
    • Logs also take a format string and arguments which we then send through String.format.
    • Please use options.getLogs().setBeforeSend() to filter outgoing logs

Fixes

  • Hook User Interaction integration into running Activity in case of deferred SDK init (#4337)

Dependencies

8.11.1

30 Apr 16:04
Compare
Choose a tag to compare

Fixes

  • Fix Android profile chunk envelope type for UI Profiling (#4366)

8.11.0

29 Apr 14:03
Compare
Choose a tag to compare

Features

  • Make RequestDetailsResolver public (#4326)
    • RequestDetailsResolver is now public and has an additional constructor, making it easier to use a custom TransportFactory

Fixes

  • Session Replay: Fix masking of non-styled Text Composables (#4361)
  • Session Replay: Fix masking read-only TextField Composables (#4362)

8.11.0-alpha.1

29 Apr 13:49
Compare
Choose a tag to compare
8.11.0-alpha.1 Pre-release
Pre-release

Features

  • Support globalHubMode for OpenTelemetry (#4349)
    • Sentry now adds OpenTelemetry spans without a parent to the last known unfinished root span (transaction)
    • Previously those spans would end up in Sentry as separate transactions
    • Spans created via Sentry API are preferred over those created through OpenTelemetry API or auto instrumentation
  • New option ignoreStandaloneClientSpans that prevents Sentry from creating transactions for OpenTelemetry spans with kind CLIENT (#4349)
    • Defaults to false meaning standalone OpenTelemetry spans with kind CLIENT will be turned into Sentry transactions
  • Make RequestDetailsResolver public (#4326)
    • RequestDetailsResolver is now public and has an additional constructor, making it easier to use a custom TransportFactory

Fixes

  • Session Replay: Fix masking of non-styled Text Composables (#4361)
  • Session Replay: Fix masking read-only TextField Composables (#4362)

8.10.0

25 Apr 14:30
Compare
Choose a tag to compare

Features

  • Wrap configured OpenTelemetry ContextStorageProvider if available (#4359)
    • This is only relevant if you see java.lang.IllegalStateException: Found multiple ContextStorageProvider. Set the io.opentelemetry.context.ContextStorageProvider property to the fully qualified class name of the provider to use. Falling back to default ContextStorage. Found providers: ...
    • Set -Dio.opentelemetry.context.contextStorageProvider=io.sentry.opentelemetry.SentryContextStorageProvider on your java command
    • Sentry will then wrap the other ContextStorageProvider that has been configured by loading it through SPI
    • If no other ContextStorageProvider is available or there are problems loading it, we fall back to using SentryOtelThreadLocalStorage

Fixes

  • Update profile chunk rate limit and client report (#4353)

Dependencies

8.10.0-alpha.1

24 Apr 15:47
Compare
Choose a tag to compare
8.10.0-alpha.1 Pre-release
Pre-release

Features

  • Support globalHubMode for OpenTelemetry (#4349)
    • Sentry now adds OpenTelemetry spans without a parent to the last known unfinished root span (transaction)
    • Previously those spans would end up in Sentry as separate transactions
    • Spans created via Sentry API are preferred over those created through OpenTelemetry API or auto instrumentation
  • New option ignoreStandaloneClientSpans that prevents Sentry from creating transactions for OpenTelemetry spans with kind CLIENT (#4349)
    • Defaults to false meaning standalone OpenTelemetry spans with kind CLIENT will be turned into Sentry transactions

Fixes

  • Update profile chunk rate limit and client report (#4353)

8.9.0

22 Apr 15:23
Compare
Choose a tag to compare

Features

  • Add SentryWrapper.wrapRunnable to wrap Runnable for use with Sentry (#4332)

Fixes

  • Fix TTFD measurement when API called too early (#4297)
  • Tag sockets traffic originating from Sentry's HttpConnection (#4340)
    • This should suppress the StrictMode's UntaggedSocketViolation
  • Reduce debug logs verbosity (#4341)
  • Fix unregister SystemEventsBroadcastReceiver when entering background (#4338)
    • This should reduce ANRs seen with this class in the stack trace for Android 14 and above

Improvements

  • Make user interaction tracing faster and do fewer allocations (#4347)
  • Pre-load modules on a background thread upon SDK init (#4348)