Releases: getsentry/sentry-java
Releases · getsentry/sentry-java
7.17.0
Features
- Add meta option to set the maximum amount of breadcrumbs to be logged. (#3836)
- Use a separate
Randominstance 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
- Using Sentry Spring Boot on a standalone tomcat caused the following error:
7.17.0-alpha.1
Features
- Android 15: Add support for 16KB page sizes (#3620)
- See https://developer.android.com/guide/practices/page-sizes for more details
7.16.0 (Stable)
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
enableTracingoption (#3777) - Vendor
java.util.Randomand replacejava.security.SecureRandomusages (#3783) - Fix potential ANRs due to NDK scope sync (#3754)
- Fix potential ANRs due to NDK System.loadLibrary calls (#3670)
- Fix slow
Logcalls 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;)Vhas 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-okhttpand others) are all aligned and using the same version to prevent theNoSuchMethodErrorexception.
7.16.0-alpha.1
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
enableTracingoption (#3777) - Vendor
java.util.Randomand replacejava.security.SecureRandomusages (#3783) - Fix potential ANRs due to NDK scope sync (#3754)
- Fix potential ANRs due to NDK System.loadLibrary calls (#3670)
- Fix slow
Logcalls on app startup (#3793) - Fix slow Integration name parsing (#3794)
- Session Replay: Reduce startup and capture overhead (#3799)
8.0.0-beta.1
Breaking Changes
- Throw IllegalArgumentException when calling Sentry.init on Android (#3596)
- Metrics have been removed from the SDK (#3774)
- Metrics will return but we don't know in what exact form yet
enableTracingoption (a.k.aenable-tracing) has been removed from the SDK (#3776)- Please set
tracesSampleRateto a value >= 0.0 for enabling performance instead. The default value isnullwhich means performance is disabled.
- Please set
- Change OkHttp sub-spans to span attributes (#3556)
- This will reduce the number of spans created by the SDK
- Replace
synchronizedmethods and blocks withReentrantLock(AutoClosableReentrantLock) (#3715)- If you are subclassing any Sentry classes, please check if the parent class used
synchronizedbefore. Please make sure to use the same lock object as the parent class in that case.
- If you are subclassing any Sentry classes, please check if the parent class used
traceOriginsoption (io.sentry.traces.tracing-originsin manifest) has been removed, please usetracePropagationTargets(io.sentry.traces.trace-propagation-targetsin manifest`) instead (#3780)profilingEnabledoption (io.sentry.traces.profiling.enablein manifest) has been removed, please useprofilesSampleRate(io.sentry.traces.profiling.sample-rateinstead) instead (#3780)shutdownTimeoutoption has been removed, please useshutdownTimeoutMillisinstead (#3780)profilingTracesIntervalMillisoption for Android has been removed (#3780)io.sentry.session-tracking.enablemanifest option has been removed (#3780)Sentry.traceHeaders()method has been removed, please useSentry.getTraceparent()instead (#3718)Sentry.reportFullDisplayed()method has been removed, please useSentry.reportFullyDisplayed()instead (#3717)User.otherhas been removed, please usedatainstead (#3780)SdkVersion.getIntegrations()has been removed, please usegetIntegrationSetinstead (#3780)SdkVersion.getPackages()has been removed, please usegetPackageSet()instead (#3780)Device.languagehas been removed, please uselocaleinstead (#3780)TraceContext.userandTraceContextUserclass have been removed, please useuserIdonTraceContextinstead (#3780)TransactionContext.fromSentryTrace()has been removed, please useSentry.continueTrace()instead (#3780)SentryDataFetcherExceptionHandlerhas been removed, please useSentryGenericDataFetcherExceptionHandlerin combination withSentryInstrumentationinstead (#3780)- One of the
AndroidTransactionProfilerconstructors has been removed, please use a different one (#3780)
Features
- Add init priority settings (#3674)
- You may now set
forceInit=true(force-initfor.propertiesfiles) to ensure a call to Sentry.init / SentryAndroid.init takes effect
- You may now set
- Add force init option to Android Manifest (#3675)
- Use
<meta-data android:name="io.sentry.force-init" android:value="true" />to ensure Sentry Android auto init is not easily overwritten
- Use
- Attach request body for
application/x-www-form-urlencodedrequests in Spring (#3731)- Previously request body was only attached for
application/jsonrequests
- Previously request body was only attached for
- Set breadcrumb level based on http status (#3771)
- Support
graphql-javav22 via a new modulesentry-graphql-22(#3740)- If you are using
graphql-javav21 or earlier, you can use thesentry-graphqlmodule - For
graphql-javav22 and newer please use thesentry-graphql-22module
- If you are using
- We now provide a
SentryInstrumenterbean directly for Spring (Boot) if there is none yet instead of usingGraphQlSourceBuilderCustomizerto add the instrumentation (#3744)- It is now also possible to provide a bean of type
SentryGraphqlInstrumentation.BeforeSpanCallbackwhich is then used bySentryInstrumenter
- It is now also possible to provide a bean of type
- Emit transaction.data inside contexts.trace.data (#3735)
- Also does not emit
transaction.datainexrasanymore
- Also does not emit
Fixes
- Use OpenTelemetry span name as fallback for transaction name (#3557)
- In certain cases we were sending transactions as "" when using OpenTelemetry
- Add OpenTelemetry span data to Sentry span (#3593)
- No longer selectively copy OpenTelemetry attributes to Sentry spans / transactions
data(#3663) - Remove
PROCESS_COMMAND_ARGS(process.command_args) OpenTelemetry span attribute as it can be very large (#3664) - Use RECORD_ONLY sampling decision if performance is disabled (#3659)
- Also fix check whether Performance is enabled when making a sampling decision in the OpenTelemetry sampler
- Sentry OpenTelemetry Java Agent now sets Instrumenter to SENTRY (used to be OTEL) (#3697)
- Set span origin in
ActivityLifecycleIntegrationon span options instead of after creating the span / transaction (#3702)- This allows spans to be filtered by span origin on creation
- Honor ignored span origins in
SentryTracer.startChild(#3704) - Add
enable-spotlightandspotlight-connection-urlto external options and check if spotlight is enabled when deciding whether to inspect an OpenTelemetry span for connecting to splotlight (#3709) - Trace context on
Contexts.setTracehas been marked@NotNull(#3721)- Setting it to
nullwould cause an exception. - Transactions are dropped if trace context is missing
- Setting it to
- Remove internal annotation on
SpanOptions(#3722) SentryLogbackInitializeris now public (#3723)- Fix order of calling
closeon previous Sentry instance when re-initializing (#3750)- Previously some parts of Sentry were immediately closed after re-init that should have stayed open and some parts of the previous init were never closed
Behavioural Changes
- (Android) Replace thread id with kernel thread id in span data (#3706)
Dependencies
- Bump OpenTelemetry to 1.41.0, OpenTelemetry Java Agent to 2.7.0 and Semantic Conventions to 1.25.0 (#3668)
7.15.0 (Stable)
Features
- Add support for
feedbackenvelope 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
Views 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
TextViews 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,VideoViewandandroidx.media3.ui.PlayerViewby default (#3775)
Fixes
- Avoid stopping appStartProfiler after application creation (#3630)
- Session Replay: Correctly detect dominant color for
TextViews with Spans (#3682) - Fix ensure Application Context is used even when SDK is initialized via Activity Context (#3669)
- Fix potential ANRs due to
Calendar.getInstanceusage in Breadcrumbs constructor (#3736) - Fix potential ANRs due to default integrations (#3778)
- Lazily initialize heavy
SentryOptionsmembers to avoid ANRs on app start (#3749)
Breaking changes:
options.experimental.sessionReplay.errorSampleRatewas renamed tooptions.experimental.sessionReplay.onErrorSampleRate(#3637)- Manifest option
io.sentry.session-replay.error-sample-ratewas renamed toio.sentry.session-replay.on-error-sample-rate(#3637) - Change
redactAllTextandredactAllImagestomaskAllTextandmaskAllImages(#3741)
7.15.0-alpha.1
Features
- Add support for setting sentry-native handler_strategy (#3671)
Dependencies
- Bump
sentry-nativeSDK tod11359bof 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
bufferreplay type for the entire replay when converting from buffer mode to session mode - Properly store screen names for
buffermode
- 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
RejectedExecutionExceptionwhen redacting a screenshot - Fix
FileNotFoundExceptionwhen persisting segment values
Chores
- Introduce
ReplayShadowMediaCodecand 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
sessionmode 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)