Skip to content

Conversation

@github-actions
Copy link
Contributor

Bumps scripts/update-sentry-sdk.sh from 8.22.0 to 8.25.0.

Auto-generated by a dependency updater.

Changelog

8.25.0

Fixes

  • [ANR] Removed AndroidTransactionProfiler lock (#4817)
  • Avoid ExecutorService for DefaultCompositePerformanceCollector timeout (#4841)
    • This avoids infinite data collection for never stopped transactions, leading to OOMs
  • Fix wrong .super() call in SentryTimberTree (#4844)

Improvements

  • [ANR] Defer some class availability checks (#4825)
  • Collect PerformanceCollectionData only for sampled transactions (#4834)
    • Breaking change: Transactions with a deferred sampling decision (sampled == null) won't be collecting any performance data anymore (CPU, RAM, slow/frozen frames).

Dependencies

8.24.0

Features

  • Attach MDC properties to logs as attributes (#4786)
    • MDC properties set using supported logging frameworks (Logback, Log4j2, java.util.Logging) are now attached to structured logs as attributes.
    • The attribute reflected on the log is mdc.<key>, where <key> is the original key in the MDC.
    • This means that you will be able to filter/aggregate logs in the product based on these properties.
    • Only properties with keys matching the configured contextTags are sent as log attributes.
      • You can configure which properties are sent using options.setContextTags if initalizing manually, or by specifying a comma-separated list of keys with a context-tags entry in sentry.properties or sentry.context-tags in application.properties.
      • Note that keys containing spaces are not supported.
  • Add experimental Sentry Android Distribution module for integrating with Sentry Build Distribution to check for and install updates (#4804)
  • Allow passing a different Handler to SystemEventsBreadcrumbsIntegration and AndroidConnectionStatusProvider so their callbacks are deliver to that handler (#4808)
  • Session Replay: Add new experimental Canvas Capture Strategy (#4777)
    • A new screenshot capture strategy that uses Android's Canvas API for more accurate and reliable text and image masking
    • Any .drawText() or .drawBitmap() calls are replaced by rectangles, ensuring no text or images are present in the resulting output
    • Note: If this strategy is used, all text and images will be masked, regardless of any masking configuration
    • To enable this feature, set the screenshotStrategy, either via code:
      SentryAndroid.init(context) { options ->
        options.sessionReplay.screenshotStrategy = ScreenshotStrategyType.CANVAS
      }
      or AndroidManifest.xml:
      <application>
        <meta-data android:name="io.sentry.session-replay.screenshot-strategy" android:value="canvas" />
      </application>

Fixes

  • Avoid StrictMode warnings (#4724)
  • Use logger from options for JVM profiler (#4771)
  • Session Replay: Avoid deadlock when pausing replay if no connection (#4788)
  • Session Replay: Fix capturing roots with no windows (#4805)
  • Session Replay: Fix java.lang.IllegalArgumentException: width and height must be > 0 (#4805)
  • Handle NoOpScopes in Context when starting a span through OpenTelemetry (#4823)
    • This fixes "java.lang.IllegalArgumentException: The DSN is required" when combining WebFlux and OpenTelemetry
  • Session Replay: Do not use recycled screenshots for masking (#4790)
    • This fixes native crashes seen in Canvas.<init>/ScreenshotRecorder.capture
  • Session Replay: Ensure bitmaps are recycled properly (#4820)

Miscellaneous

  • Mark SentryClient(SentryOptions) constructor as not internal (#4787)

Dependencies

8.23.0

Features

  • Add session replay id to Sentry Logs (#4740)
  • Add support for continuous profiling of JVM applications on macOS and Linux (#4556)
    • Sentry continuous profiling on the JVM is using async-profiler under the hood.
    • By default this feature is disabled. Set a profile sample rate and chose a lifecycle (see below) to enable it.
    • Add the sentry-async-profiler dependency to your project
    • Set a sample rate for profiles, e.g. 1.0 to send all of them. You may use options.setProfileSessionSampleRate(1.0) in code or profile-session-sample-rate=1.0 in sentry.properties
    • Set a profile lifecycle via options.setProfileLifecycle(ProfileLifecycle.TRACE) in code or profile-lifecycle=TRACE in sentry.properties
      • By default the lifecycle is set to MANUAL, meaning you have to explicitly call Sentry.startProfiler() and Sentry.stopProfiler()
      • You may change it to TRACE which will create a profile for each transaction
    • To automatically upload Profiles for each transaction in a Spring Boot application
      • set sentry.profile-session-sample-rate=1.0 and sentry.profile-lifecycle=TRACE in application.properties
      • or set sentry.profile-session-sample-rate: 1.0 and sentry.profile-lifecycle: TRACE in application.yml
    • Profiling can also be combined with our OpenTelemetry integration

Fixes

  • Start performance collection on AppStart continuous profiling (#4752)
  • Preserve modifiers in SentryTraced (#4757)

Improvements

  • Handle RejectedExecutionException everywhere (#4747)
  • Mark SentryEnvelope as not internal (#4748)

@github-actions github-actions bot force-pushed the deps/scripts/update-sentry-sdk.sh/8.25.0 branch from e4b2def to 437eb48 Compare October 30, 2025 03:26
@@ -1 +1 @@
sdk_version = 8.22.0
sdk_version = 8.25.0
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Missing sentry-sdk.properties causes NullPointerException during Maven build.
Severity: CRITICAL | Confidence: 0.95

🔍 Detailed Analysis

The SdkVersionInfo.getSentryVersion() method attempts to load /sentry-sdk.properties using SentryInstaller.class.getResourceAsStream(). If this file is missing, getResourceAsStream() returns null. Subsequently, sdkProperties.load(null) is called, which triggers an NullPointerException. This exception is not caught by the catch (IOException e) block, leading to an uncaught exception during the Maven build lifecycle. This prevents the Sentry auto-installation feature from functioning.

💡 Suggested Fix

Ensure src/main/resources/sentry-sdk.properties exists and contains sdk_version = 8.25.0. Verify the update script scripts/update-sentry-sdk.sh correctly generates and commits this file.

🤖 Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: src/main/resources/sentry-sdk.properties#L1

Potential issue: The `SdkVersionInfo.getSentryVersion()` method attempts to load
`/sentry-sdk.properties` using `SentryInstaller.class.getResourceAsStream()`. If this
file is missing, `getResourceAsStream()` returns `null`. Subsequently,
`sdkProperties.load(null)` is called, which triggers an `NullPointerException`. This
exception is not caught by the `catch (IOException e)` block, leading to an uncaught
exception during the Maven build lifecycle. This prevents the Sentry auto-installation
feature from functioning.

Did we get this right? 👍 / 👎 to inform future reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants