Releases: getsentry/sentry-java
Releases · getsentry/sentry-java
6.33.0
Features
- Add thread information to spans (#2998)
- Use PixelCopy API for capturing screenshots on API level 24+ (#3008)
Fixes
- Fix crash when HTTP connection error message contains formatting symbols (#3002)
- Cap max number of stack frames to 100 to not exceed payload size limit (#3009)
- This will ensure we report errors with a big number of frames such as
StackOverflowError
- This will ensure we report errors with a big number of frames such as
- Fix user interaction tracking not working for Jetpack Compose 1.5+ (#3010)
- Make sure to close all Closeable resources (#3000)
6.32.0
6.31.0
Features
- Improve default debouncing mechanism (#2945)
- Add
CheckInUtils.withCheckIn
which abstracts away some of the manual check-ins complexity (#2959) - Add
@SentryCaptureExceptionParameter
annotation which captures exceptions passed into an annotated method (#2764)- This can be used to replace
Sentry.captureException
calls in@ExceptionHandler
of a@ControllerAdvice
- This can be used to replace
- Add
ServerWebExchange
toHint
for WebFlux asWEBFLUX_EXCEPTION_HANDLER_EXCHANGE
(#2977) - Allow filtering GraphQL errors (#2967)
- This list can be set directly when calling the constructor of
SentryInstrumentation
- For Spring Boot it can also be set in
application.properties
assentry.graphql.ignored-error-types=SOME_ERROR,ANOTHER_ERROR
- This list can be set directly when calling the constructor of
Fixes
- Add OkHttp span auto-close when response body is not read (#2923)
- Fix json parsing of nullable/empty fields for Hybrid SDKs (#2968)
- (Internal) Rename
nextList
tonextListOrNull
to actually match what the method does - (Hybrid) Check if there's any object in a collection before trying to parse it (which prevents the "Failed to deserilize object in list" log message)
- (Hybrid) If a date can't be parsed as an ISO timestamp, attempts to parse it as millis silently, without printing a log message
- (Hybrid) If
op
is not defined as part ofSpanContext
, fallback to an empty string, because the filed is optional in the spec
- (Internal) Rename
- Always attach OkHttp errors and Http Client Errors only to call root span (#2961)
- Fixed crash accessing Choreographer instance (#2970)
Dependencies
7.0.0-beta.1
Features
Breaking changes:
- Capture failed HTTP requests by default (#2794)
- Reduce flush timeout to 4s on Android to avoid ANRs (#2858)
- Set ip_address to {{auto}} by default, even if sendDefaultPII is disabled (#2860)
- Instead use the "Prevent Storing of IP Addresses" option in the "Security & Privacy" project settings on sentry.io
- Reduce timeout of AsyncHttpTransport to avoid ANR (#2879)
- Add deadline timeout for automatic transactions (#2865)
- This affects all automatically generated transactions on Android (UI, clicks), the default timeout is 30s
- Apollo v2 BeforeSpanCallback now allows returning null (#2890)
- Automatic user interaction tracking: every click now starts a new automatic transaction (#2891)
- Previously performing a click on the same UI widget twice would keep the existing transaction running, the new behavior now better aligns with other SDKs
- Android only: If global hub mode is enabled, Sentry.getSpan() returns the root span instead of the latest span (#2855)
- Observe network state to upload any unsent envelopes (#2910)
- Android: it works out-of-the-box as part of the default
SendCachedEnvelopeIntegration
- JVM: you'd have to install
SendCachedEnvelopeFireAndForgetIntegration
as mentioned in https://docs.sentry.io/platforms/java/configuration/#configuring-offline-caching and provide your own implementation ofIConnectionStatusProvider
viaSentryOptions
- Android: it works out-of-the-box as part of the default
- Do not try to send and drop cached envelopes when rate-limiting is active (#2937)
Fixes
- Measure AppStart time till First Draw instead of
onResume
(#2851) - Do not overwrite UI transaction status if set by the user (#2852)
- Capture unfinished transaction on Scope with status
aborted
in case a crash happens (#2938)- This will fix the link between transactions and corresponding crashes, you'll be able to see them in a single trace
Breaking changes:
- Move enableNdk from SentryOptions to SentryAndroidOptions (#2793)
- Fix Coroutine Context Propagation using CopyableThreadContextElement, requires
kotlinx-coroutines-core
version1.6.1
or higher (#2838) - Bump min API to 19 (#2883)
- Fix don't overwrite the span status of unfinished spans (#2859)
- If you're using a self hosted version of sentry, sentry self hosted >= 22.12.0 is required
- Migrate from
default
interface methods to proper implementations in each interface implementor (#2847)- This prevents issues when using the SDK on older AGP versions (< 4.x.x)
- Make sure to align Sentry dependencies to the same version when bumping the SDK to 7.+, otherwise it will crash at runtime due to binary incompatibility.
(E.g. if you're using-timber
,-okhttp
or other packages)
6.30.0
Features
- Add
sendModules
option for disable sending modules (#2926) - Send
db.system
anddb.name
in span data for androidx.sqlite spans (#2928) - Check-ins (CRONS) support (#2952)
Fixes
- Always send memory stats for transactions (#2936)
- This makes it possible to query transactions by the
device.class
tag on Sentry
- This makes it possible to query transactions by the
- Add
sentry.enable-aot-compatibility
property to SpringBoot JakartaSentryAutoConfiguration
to enable building for GraalVM (#2915)
Dependencies
- Bump Gradle from v8.2.1 to v8.3.0 (#2900)
- [changelog](https://github.com/gradle/gradle/blob/master release-test/CHANGELOG.md#v830)
- diff
6.29.0
6.28.0
Features
- Add HTTP response code to Spring WebFlux transactions (#2870)
- Add
sampled
to Dynamic Sampling Context (#2869) - Improve server side GraphQL support for spring-graphql and Nextflix DGS (#2856)
- If you have already been using
SentryDataFetcherExceptionHandler
that still works but has been deprecated. Please useSentryGenericDataFetcherExceptionHandler
combined withSentryInstrumentation
instead for better error reporting. - More exceptions and errors caught and reported to Sentry by also looking at the
ExecutionResult
(more specifically itserrors
)- You may want to filter out certain errors, please see docs on filtering
- More details for Sentry events: query, variables and response (where possible)
- Breadcrumbs for operation (query, mutation, subscription), data fetchers and data loaders (Spring only)
- Better hub propagation by using
GraphQLContext
- If you have already been using
- Add autoconfigure modules for Spring Boot called
sentry-spring-boot
andsentry-spring-boot-jakarta
(#2880)- The autoconfigure modules
sentry-spring-boot
andsentry-spring-boot-jakarta
have acompileOnly
dependency onspring-boot-starter
which is needed for our auto installation in sentry-android-gradle-plugin - The starter modules
sentry-spring-boot-starter
andsentry-spring-boot-starter-jakarta
now bringspring-boot-starter
as a dependency
- The autoconfigure modules
- You can now disable Sentry by setting the
enabled
option tofalse
(#2840)
Fixes
- Propagate OkHttp status to parent spans (#2872)
6.27.0
Features
- Add TraceOrigin to Transactions and Spans (#2803)
Fixes
- Deduplicate events happening in multiple threads simultaneously (e.g.
OutOfMemoryError
) (#2845)- This will improve Crash-Free Session Rate as we no longer will send multiple Session updates with
Crashed
status, but only the one that is relevant
- This will improve Crash-Free Session Rate as we no longer will send multiple Session updates with
- Ensure no Java 8 method reference sugar is used for Android (#2857)
- Do not send session updates for terminated sessions (#2849)