|
2 | 2 |
|
3 | 3 | ## Unreleased |
4 | 4 |
|
| 5 | +### Fixes |
| 6 | + |
| 7 | +- The SDK now handles `null` on many APIs instead of expecting a non `null` value ([#4245](https://github.com/getsentry/sentry-java/pull/4245)) |
| 8 | + - Certain APIs like `setTag`, `setData`, `setExtra`, `setContext` previously caused a `NullPointerException` when invoked with either `null` key or value. |
| 9 | + - The SDK now tries to have a sane fallback when `null` is passed and no longer throws `NullPointerException` |
| 10 | + - If `null` is passed, the SDK will |
| 11 | + - do nothing if a `null` key is passed, returning `null` for non void methods |
| 12 | + - remove any previous value if the new value is set to `null` |
| 13 | +- Add support for setting in-app-includes/in-app-excludes via AndroidManifest.xml ([#4240](https://github.com/getsentry/sentry-java/pull/4240)) |
| 14 | +- Modifications to OkHttp requests are now properly propagated to the affected span / breadcrumbs ([#4238](https://github.com/getsentry/sentry-java/pull/4238)) |
| 15 | + - Please ensure the SentryOkHttpInterceptor is added last to your OkHttpClient, as otherwise changes to the `Request` by subsequent interceptors won't be considered |
| 16 | +- Fix "class ch.qos.logback.classic.spi.ThrowableProxyVO cannot be cast to class ch.qos.logback.classic.spi.ThrowableProxy" ([#4206](https://github.com/getsentry/sentry-java/pull/4206)) |
| 17 | + - In this case we cannot report the `Throwable` to Sentry as it's not available |
| 18 | + - If you are using OpenTelemetry v1 `OpenTelemetryAppender`, please consider upgrading to v2 |
| 19 | + |
| 20 | +### Features |
| 21 | + |
| 22 | +- The SDK now automatically propagates the trace-context to the native layer. This allows to connect errors on different layers of the application. ([#4137](https://github.com/getsentry/sentry-java/pull/4137)) |
| 23 | +- Capture OpenTelemetry span events ([#3564](https://github.com/getsentry/sentry-java/pull/3564)) |
| 24 | + - OpenTelemetry spans may have exceptions attached to them (`openTelemetrySpan.recordException`). We can now send those to Sentry as errors. |
| 25 | + - Set `capture-open-telemetry-events=true` in `sentry.properties` to enable it |
| 26 | + - Set `sentry.capture-open-telemetry-events=true` in Springs `application.properties` to enable it |
| 27 | + - Set `sentry.captureOpenTelemetryEvents: true` in Springs `application.yml` to enable it |
| 28 | + |
| 29 | +### Behavioural Changes |
| 30 | + |
| 31 | +- Use `java.net.URI` for parsing URLs in `UrlUtils` ([#4210](https://github.com/getsentry/sentry-java/pull/4210)) |
| 32 | + - This could affect grouping for issues with messages containing URLs that fall in known corner cases that were handled incorrectly previously (e.g. email in URL path) |
| 33 | + |
| 34 | +### Internal |
| 35 | + |
| 36 | +- Also use port when checking if a request is made to Sentry DSN ([#4231](https://github.com/getsentry/sentry-java/pull/4231)) |
| 37 | + - For our OpenTelemetry integration we check if a span is for a request to Sentry |
| 38 | + - We now also consider the port when performing this check |
| 39 | + |
| 40 | +### Dependencies |
| 41 | + |
| 42 | +- Bump Native SDK from v0.7.20 to v0.8.1 ([#4137](https://github.com/getsentry/sentry-java/pull/4137)) |
| 43 | + - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0810) |
| 44 | + - [diff](https://github.com/getsentry/sentry-native/compare/v0.7.20...0.8.1) |
| 45 | + |
| 46 | +## 8.3.0 |
| 47 | + |
5 | 48 | ### Features |
6 | 49 |
|
| 50 | +- Add HTTP server request headers from OpenTelemetry span attributes to sentry `request` in payload ([#4102](https://github.com/getsentry/sentry-java/pull/4102)) |
| 51 | + - You have to explicitly enable each header by adding it to the [OpenTelemetry config](https://opentelemetry.io/docs/zero-code/java/agent/instrumentation/http/#capturing-http-request-and-response-headers) |
| 52 | + - Please only enable headers you actually want to send to Sentry. Some may contain sensitive data like PII, cookies, tokens etc. |
| 53 | + - We are no longer adding request/response headers to `contexts/otel/attributes` of the event. |
7 | 54 | - The `ignoredErrors` option is now configurable via the manifest property `io.sentry.traces.ignored-errors` ([#4178](https://github.com/getsentry/sentry-java/pull/4178)) |
8 | 55 | - A list of active Spring profiles is attached to payloads sent to Sentry (errors, traces, etc.) and displayed in the UI when using our Spring or Spring Boot integrations ([#4147](https://github.com/getsentry/sentry-java/pull/4147)) |
9 | 56 | - This consists of an empty list when only the default profile is active |
10 | 57 | - Added `enableTraceIdGeneration` to the AndroidOptions. This allows Hybrid SDKs to "freeze" and control the trace and connect errors on different layers of the application ([4188](https://github.com/getsentry/sentry-java/pull/4188)) |
11 | 58 | - Move to a single NetworkCallback listener to reduce number of IPC calls on Android ([#4164](https://github.com/getsentry/sentry-java/pull/4164)) |
12 | 59 | - Add GraphQL Apollo Kotlin 4 integration ([#4166](https://github.com/getsentry/sentry-java/pull/4166)) |
| 60 | +- Add support for async dispatch requests to Spring Boot 2 and 3 ([#3983](https://github.com/getsentry/sentry-java/pull/3983)) |
| 61 | + - To enable it, please set `sentry.keep-transactions-open-for-async-responses=true` in `application.properties` or `sentry.keepTransactionsOpenForAsyncResponses: true` in `application.yml` |
| 62 | +- Add constructor to JUL `SentryHandler` for disabling external config ([#4208](https://github.com/getsentry/sentry-java/pull/4208)) |
13 | 63 |
|
14 | 64 | ### Fixes |
15 | 65 |
|
| 66 | +- Filter strings that cannot be parsed as Regex no longer cause an SDK crash ([#4213](https://github.com/getsentry/sentry-java/pull/4213)) |
| 67 | + - This was the case e.g. for `ignoredErrors`, `ignoredTransactions` and `ignoredCheckIns` |
| 68 | + - We now simply don't use such strings for Regex matching and only use them for String comparison |
16 | 69 | - `SentryOptions.setTracePropagationTargets` is no longer marked internal ([#4170](https://github.com/getsentry/sentry-java/pull/4170)) |
17 | | -- Fix "class ch.qos.logback.classic.spi.ThrowableProxyVO cannot be cast to class ch.qos.logback.classic.spi.ThrowableProxy" ([#4206](https://github.com/getsentry/sentry-java/pull/4206)) |
18 | | - - In this case we cannot report the `Throwable` to Sentry as it's not available |
19 | | - - If you are using OpenTelemetry v1 `OpenTelemetryAppender`, please consider upgrading to v2 |
| 70 | +- Session Replay: Fix crash when a navigation breadcrumb does not have "to" destination ([#4185](https://github.com/getsentry/sentry-java/pull/4185)) |
| 71 | +- Session Replay: Cap video segment duration to maximum 5 minutes to prevent endless video encoding in background ([#4185](https://github.com/getsentry/sentry-java/pull/4185)) |
| 72 | +- Check `tracePropagationTargets` in OpenTelemetry propagator ([#4191](https://github.com/getsentry/sentry-java/pull/4191)) |
| 73 | + - If a URL can be retrieved from OpenTelemetry span attributes, we check it against `tracePropagationTargets` before attaching `sentry-trace` and `baggage` headers to outgoing requests |
| 74 | + - If no URL can be retrieved we always attach the headers |
| 75 | +- Fix `ignoredErrors`, `ignoredTransactions` and `ignoredCheckIns` being unset by external options like `sentry.properties` or ENV vars ([#4207](https://github.com/getsentry/sentry-java/pull/4207)) |
| 76 | + - Whenever parsing of external options was enabled (`enableExternalConfiguration`), which is the default for many integrations, the values set on `SentryOptions` passed to `Sentry.init` would be lost |
| 77 | + - Even if the value was not set in any external configuration it would still be set to an empty list |
20 | 78 |
|
21 | 79 | ### Behavioural Changes |
22 | 80 |
|
|
0 commit comments