Skip to content

Releases: getsentry/sentry-java

7.19.0

12 Dec 10:01
Compare
Choose a tag to compare

Fixes

  • Session Replay: fix various crashes and issues (#3970)
    • Fix IndexOutOfBoundsException when tracking window changes
    • Fix IllegalStateException when adding/removing draw listener for a dead view
    • Fix ConcurrentModificationException when registering window listeners and stopping WindowRecorder/GestureRecorder
  • Add support for setting sentry-native handler_strategy (#3671)

Dependencies

8.0.0-rc.2

05 Dec 10:28
Compare
Choose a tag to compare
8.0.0-rc.2 Pre-release
Pre-release

Fixes

  • Fix incoming defer sampling decision sentry-trace header (#3942)
    • A sentry-trace header that only contains trace ID and span ID but no sampled flag (-1, -0 suffix) means the receiving system can make its own sampling decision
    • When generating sentry-trace header from PropagationContext we now copy the sampled flag.
    • In TransactionContext.fromPropagationContext when there is no parent sampling decision, keep the decision null so a new sampling decision is made instead of defaulting to false
  • Defer sampling decision by setting sampled to null in PropagationContext when using OpenTelemetry in case of an incoming defer sampling sentry-trace header. (#3945)
  • Build PropagationContext from SamplingDecision made by SentrySampler instead of parsing headers and potentially ignoring a sampling decision in case a sentry-trace header comes in with deferred sampling decision. (#3947)
  • Let OpenTelemetry handle extracting and injecting tracing information (#3953)
    • Our integrations no longer call .continueTrace and also do not inject tracing headers if the integration has been added to ignoredSpanOrigins
  • Changes up to 7.18.1 have been merged and are now included as well

8.0.0-rc.1

29 Nov 12:55
Compare
Choose a tag to compare
8.0.0-rc.1 Pre-release
Pre-release

Features

  • Extract OpenTelemetry URL_PATH span attribute into description (#3933)
  • Replace OpenTelemetry ContextStorage wrapper with ContextStorageProvider (#3938)
    • The wrapper had to be put in place before any call to Context whereas ContextStorageProvider is automatically invoked at the correct time.

Dependencies

  • Bump OpenTelemetry to 1.44.1, OpenTelemetry Java Agent to 2.10.0 and Semantic Conventions to 1.28.0 (#3935)

7.18.1

29 Nov 09:44
Compare
Choose a tag to compare

Fixes

  • Fix testTag not working for Jetpack Compose user interaction tracking (#3878)

8.0.0-beta.3

22 Nov 09:34
Compare
Choose a tag to compare
8.0.0-beta.3 Pre-release
Pre-release

Features

  • Send otel.kind to Sentry (#3907)
  • Allow passing environment to CheckinUtils.withCheckIn (3889)
  • Changes up to 7.18.0 have been merged and are now included as well

Fixes

  • Mark DiskFlushNotification hint flushed when rate limited (#3892)
    • Our UncaughtExceptionHandlerIntegration waited for the full flush timeout duration (default 15s) when rate limited.
  • Do not replace op with auto generated content for OpenTelemetry spans with span kind INTERNAL (#3906)

Behavioural Changes

  • Send file name and path only if isSendDefaultPii is true (#3919)

7.18.0

18 Nov 15:52
Compare
Choose a tag to compare

Features

Fixes

  • Avoid collecting normal frames (#3782)
  • Ensure android initialization process continues even if options configuration block throws an exception (#3887)
  • Do not report parsing ANR error when there are no threads (#3888)
    • This should significantly reduce the number of events with message "Sentry Android SDK failed to parse system thread dump..." reported
  • Session Replay: Disable replay in session mode when rate limit is active (#3854)

Dependencies

8.0.0-beta.2

13 Nov 10:48
Compare
Choose a tag to compare
8.0.0-beta.2 Pre-release
Pre-release

Breaking Changes

  • Use String instead of UUID for SessionId (#3834)
    • The Session constructor now takes a String instead of a UUID for the sessionId parameter.
    • Session.getSessionId() now returns a String instead of a UUID.
  • The Android minSdk level for all Android modules is now 21 (#3852)
  • The minSdk level for sentry-android-ndk changed from 19 to 21 (#3851)
  • All status codes below 400 are now mapped to SpanStatus.OK (#3869)

Features

  • Spring Boot now automatically detects if OpenTelemetry is available and makes use of it (#3846)
    • This is only enabled if there is no OpenTelemetry agent available
    • We prefer to use the OpenTelemetry agent as it offers more auto instrumentation
    • In some cases the OpenTelemetry agent cannot be used, please see https://opentelemetry.io/docs/zero-code/java/spring-boot-starter/ for more details on when to prefer the Agent and when the Spring Boot starter makes more sense.
    • In this mode the SDK makes use of the OpenTelemetry bean that is created by opentelemetry-spring-boot-starter instead of GlobalOpenTelemetry
  • Spring Boot now automatically detects our OpenTelemetry agent if its auto init is disabled (#3848)
    • This means Spring Boot config mechanisms can now be combined with our OpenTelemetry agent
    • The sentry-opentelemetry-extra module has been removed again, most classes have been moved to sentry-opentelemetry-bootstrap which is loaded into the bootstrap classloader (i.e. null) when our Java agent is used. The rest has been moved into sentry-opentelemetry-agentcustomization and is loaded into the agent classloader when our Java agent is used.
    • The sentry-opentelemetry-bootstrap and sentry-opentelemetry-agentcustomization modules can be used without the agent as well, in which case all classes are loaded into the application classloader. Check out our sentry-samples-spring-boot-jakarta-opentelemetry-noagent sample.
    • In this mode the SDK makes use of GlobalOpenTelemetry
  • Automatically set span factory based on presence of OpenTelemetry (#3858)
    • SentrySpanFactoryHolder has been removed as it is no longer required.
  • Add ignoredTransactions option to filter out transactions by name (#3871)
    • can be used via ENV vars, e.g. SENTRY_IGNORED_TRANSACTIONS=POST /person/,GET /pers.*
    • can also be set in options directly, e.g. options.setIgnoredTransactions(...)
    • can also be set in sentry.properties, e.g. ignored-transactions=POST /person/,GET /pers.*
    • can also be set in Spring config application.properties, e.g. sentry.ignored-transactions=POST /person/,GET /pers.*
  • Add a sample for showcasing Sentry with OpenTelemetry for Spring Boot 3 with our Java agent (sentry-samples-spring-boot-jakarta-opentelemetry) (#3856)
  • Add a sample for showcasing Sentry with OpenTelemetry for Spring Boot 3 without our Java agent (sentry-samples-spring-boot-jakarta-opentelemetry-noagent) (#3856)
  • Add a sample for showcasing Sentry with OpenTelemetry (sentry-samples-console-opentelemetry-noagent) (#3856)
  • Add globalHubMode to options (#3805)
    • globalHubMode used to only be a param on Sentry.init. To make it easier to be used in e.g. Desktop environments, we now additionally added it as an option on SentryOptions that can also be set via sentry.properties.
    • If both the param on Sentry.init and the option are set, the option will win. By default the option is set to null meaning whatever is passed to Sentry.init takes effect.
  • Lazy uuid generation for SentryId and SpanId (#3770)
  • Faster generation of Sentry and Span IDs (#3818)
    • Uses faster implementation to convert UUID to SentryID String
    • Uses faster Random implementation to generate UUIDs
  • Android 15: Add support for 16KB page sizes (#3851)

Fixes

  • The Sentry OpenTelemetry Java agent now makes sure Sentry Scopes storage is initialized even if the agents auto init is disabled (#3848)
    • This is required for all integrations to work together with our OpenTelemetry Java agent if its auto init has been disabled and the SDKs init should be used instead.
  • Do not ignore certain span origins for OpenTelemetry without agent (#3856)
  • Fix startChild for span that is not in current OpenTelemetry Context (#3862)
    • Starting a child span from a transaction that wasn't in the current Context lead to multiple transactions being created (one for the transaction and another per span created).
  • Add auto.graphql.graphql22 to ignored span origins when using OpenTelemetry (#3828)
  • The Spring Boot 3 WebFlux sample now uses our GraphQL v22 integration (#3828)
  • All status codes below 400 are now mapped to SpanStatus.OK (#3869)

Dependencies

Behavioural Changes

  • (Android) Enable Performance V2 by default (#3824)
    • With this change cold app start spans will include spans for ContentProviders, Application and Activity load.

7.17.0

12 Nov 14:18
Compare
Choose a tag to compare

Features

  • Add meta option to set the maximum amount of breadcrumbs to be logged. (#3836)
  • Use a separate Random instance per thread to improve SDK performance (#3835)

Fixes

  • Using MaxBreadcrumb with value 0 no longer crashes. (#3836)
  • Accept manifest integer values when requiring floating values (#3823)
  • Fix standalone tomcat jndi issue (#3873)
    • Using Sentry Spring Boot on a standalone tomcat caused the following error:
      • Failed to bind properties under 'sentry.parsed-dsn' to io.sentry.Dsn

7.17.0-alpha.1

24 Oct 14:27
Compare
Choose a tag to compare
7.17.0-alpha.1 Pre-release
Pre-release

Features

7.16.0 (Stable)

23 Oct 13:08
Compare
Choose a tag to compare

Features

  • Add meta option to attach ANR thread dumps (#3791)

Fixes

  • Cache parsed Dsn (#3796)
  • fix invalid profiles when the transaction name is empty (#3747)
  • Deprecate enableTracing option (#3777)
  • Vendor java.util.Random and replace java.security.SecureRandom usages (#3783)
  • Fix potential ANRs due to NDK scope sync (#3754)
  • Fix potential ANRs due to NDK System.loadLibrary calls (#3670)
  • Fix slow Log calls on app startup (#3793)
  • Fix slow Integration name parsing (#3794)
  • Session Replay: Reduce startup and capture overhead (#3799)
  • Load lazy fields on init in the background (#3803)
  • Replace setOf with HashSet.add (#3801)

Breaking changes

  • The method addIntegrationToSdkVersion(Ljava/lang/Class;)V has been removed from the core (io.sentry:sentry) package. Please make sure all of the packages (e.g. io.sentry:sentry-android-core, io.sentry:sentry-android-fragment, io.sentry:sentry-okhttp and others) are all aligned and using the same version to prevent the NoSuchMethodError exception.