Releases: getsentry/sentry-java
Releases · getsentry/sentry-java
7.15.0 (Stable)
Features
- Add support for
feedback
envelope header item type (#3687) - Add breadcrumb.origin field (#3727)
- Session Replay: Add options to selectively mask/unmask views captured in replay. The following options are available: (#3689)
android:tag="sentry-mask|sentry-unmask"
in XML orview.setTag("sentry-mask|sentry-unmask")
in code tags- if you already have a tag set for a view, you can set a tag by id:
<tag android:id="@id/sentry_privacy" android:value="mask|unmask"/>
in XML orview.setTag(io.sentry.android.replay.R.id.sentry_privacy, "mask|unmask")
in code
- if you already have a tag set for a view, you can set a tag by id:
view.sentryReplayMask()
orview.sentryReplayUnmask()
extension functions- mask/unmask
View
s of a certain type by adding fully-qualified classname to one of the listsoptions.experimental.sessionReplay.addMaskViewClass()
oroptions.experimental.sessionReplay.addUnmaskViewClass()
. Note, that all of the view subclasses/subtypes will be masked/unmasked as well- For example, (this is already a default behavior) to mask all
TextView
s and their subclasses (RadioButton
,EditText
, etc.):options.experimental.sessionReplay.addMaskViewClass("android.widget.TextView")
- If you're using code obfuscation, adjust your proguard-rules accordingly, so your custom view class name is not minified
- For example, (this is already a default behavior) to mask all
- Session Replay: Support Jetpack Compose masking (#3739)
- To selectively mask/unmask Composables, use
Modifier.sentryReplayMask()
andModifier.sentryReplayUnmask()
modifiers
- To selectively mask/unmask Composables, use
- Session Replay: Mask
WebView
,VideoView
andandroidx.media3.ui.PlayerView
by default (#3775)
Fixes
- Avoid stopping appStartProfiler after application creation (#3630)
- Session Replay: Correctly detect dominant color for
TextView
s with Spans (#3682) - Fix ensure Application Context is used even when SDK is initialized via Activity Context (#3669)
- Fix potential ANRs due to
Calendar.getInstance
usage in Breadcrumbs constructor (#3736) - Fix potential ANRs due to default integrations (#3778)
- Lazily initialize heavy
SentryOptions
members to avoid ANRs on app start (#3749)
Breaking changes:
options.experimental.sessionReplay.errorSampleRate
was renamed tooptions.experimental.sessionReplay.onErrorSampleRate
(#3637)- Manifest option
io.sentry.session-replay.error-sample-rate
was renamed toio.sentry.session-replay.on-error-sample-rate
(#3637) - Change
redactAllText
andredactAllImages
tomaskAllText
andmaskAllImages
(#3741)
7.15.0-alpha.1
Features
- Add support for setting sentry-native handler_strategy (#3671)
Dependencies
- Bump
sentry-native
SDK tod11359b
of feat/inproc_handler_strategy- See the following issue for more details: getsentry/sentry-native#1026
7.14.0 (Stable)
Features
- Session Replay: Gesture/touch support for Flutter (#3623)
Fixes
- Fix app start spans missing from Pixel devices (#3634)
- Avoid ArrayIndexOutOfBoundsException on Android cpu data collection (#3598)
- Fix lazy select queries instrumentation (#3604)
- Session Replay: buffer mode improvements (#3622)
- Align next segment timestamp with the end of the buffered segment when converting from buffer mode to session mode
- Persist
buffer
replay type for the entire replay when converting from buffer mode to session mode - Properly store screen names for
buffer
mode
- Session Replay: fix various crashes and issues (#3628)
- Fix video not being encoded on Pixel devices
- Fix SIGABRT native crashes on Xiaomi devices when encoding a video
- Fix
RejectedExecutionException
when redacting a screenshot - Fix
FileNotFoundException
when persisting segment values
Chores
- Introduce
ReplayShadowMediaCodec
and refactor tests using custom encoder (#3612)
7.13.0
Features
- Session Replay: (#3565) (#3609)
- Capture remaining replay segment for ANRs on next app launch
- Capture remaining replay segment for unhandled crashes on next app launch
Fixes
- Session Replay: (#3565) (#3609)
- Fix stopping replay in
session
mode at 1 hour deadline - Never encode full frames for a video segment, only do partial updates. This further reduces size of the replay segment
- Use propagation context when no active transaction for ANRs
- Fix stopping replay in
Dependencies
- Bump Spring Boot to 3.3.2 (#3541)
7.12.1
7.12.0
Features
-
Session Replay Public Beta (#3339)
To enable Replay use the
sessionReplay.sessionSampleRate
orsessionReplay.errorSampleRate
experimental options.import io.sentry.SentryReplayOptions import io.sentry.android.core.SentryAndroid SentryAndroid.init(context) { options -> // Currently under experimental options: options.experimental.sessionReplay.sessionSampleRate = 1.0 // We suggest 0.1 in production (10% sessions sampled) options.experimental.sessionReplay.errorSampleRate = 1.0 // To change default redaction behavior (defaults to true) options.experimental.sessionReplay.redactAllImages = true options.experimental.sessionReplay.redactAllText = true // To change quality of the recording (defaults to MEDIUM) options.experimental.sessionReplay.quality = SentryReplayOptions.SentryReplayQuality.MEDIUM // (LOW|MEDIUM|HIGH) }
To learn more visit Sentry's Mobile Session Replay documentation page.
7.12.0-alpha.4
8.0.0-alpha.4
Fixes
- Removed user segment (#3512)
- Use span id of remote parent (#3548)
- Traces were broken because on an incoming request, OtelSentrySpanProcessor did not set the parentSpanId on the span correctly. Traces were not referencing the actual parent span but some other (random) span ID which the server doesn't know.
- Attach active span to scope when using OpenTelemetry (#3549)
- Errors weren't linked to traces correctly due to parts of the SDK not knowing the current span
- Record dropped spans in client report when sampling out OpenTelemetry spans (#3552)
- Retrieve the correct current span from
Scope
/Scopes
when using OpenTelemetry (#3554)
8.0.0-alpha.3
Breaking Changes
sentry-android-okhttp
has been removed in favor ofsentry-okhttp
, removing android dependency from the module (#3510)
Fixes
- Support spans that are split into multiple batches (#3539)
- When spans belonging to a single transaction were split into multiple batches for SpanExporter, we did not add all spans because the isSpanTooOld check wasn't inverted.
- Parse and use
send-default-pii
andmax-request-body-size
fromsentry.properties
(#3534) span.startChild
now uses.makeCurrent()
by default (#3544)- This caused an issue where the span tree wasn't correct because some spans were not added to their direct parent
- Partially fix bootstrap class loading (#3543)
- There was a problem with two separate Sentry
Scopes
being active inside each OpenTelemetryContext
due to using context keys from more than one class loader.
- There was a problem with two separate Sentry