Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: getsentry/sentry-java
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 8.44.1
Choose a base ref
...
head repository: getsentry/sentry-java
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 8.45.0
Choose a head ref
  • 14 commits
  • 63 files changed
  • 10 contributors

Commits on Jun 19, 2026

  1. Configuration menu
    Copy the full SHA
    6219b79 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    69943b8 View commit details
    Browse the repository at this point in the history
  3. chore(samples-android): Adapt SQLite demo screen to SAGP build mode (#…

    …5568)
    
    Exposes a `BuildConfig.USE_SAGP` property from the recently introduced -PuseSagp flag ([#5538](#5538)).
    
    Lets us update the SQLite screen in the Android sample app so that it swizzles between auto-instrumenting vs manually wrapping `SQLiteDriver`, depending on the whether SAGP was applied to the build.
    0xadam-brown authored Jun 19, 2026
    Configuration menu
    Copy the full SHA
    05aa61d View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2026

  1. feat(android): Report app start reason as app.vitals.start.reason o…

    …n standalone app start transaction (#5552)
    
    * feat(android): Report app start reason on standalone app start transaction
    
    Read ApplicationStartInfo.getReason() (API 35+) and attach it as
    app.start.reason trace data on the standalone app.start transaction
    in both the foreground and headless paths.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    
    * feat(android): Register StandaloneAppStart SDK integration marker
    
    Advertise that standalone app start tracing is active by adding a
    StandaloneAppStart marker to the SDK metadata integrations when the
    feature is enabled. Internal SDK metadata only.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    
    * docs(changelog): Note app.start.reason is searchable in Trace Explorer
    
    Address review feedback to mention that customers can search and group
    by the app.vitals.start.reason attribute.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    
    ---------
    
    Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
    buenaflor and claude authored Jun 22, 2026
    Configuration menu
    Copy the full SHA
    0c118e9 View commit details
    Browse the repository at this point in the history
  2. fix(replay): Release MediaMuxer when no frames are encoded (#5583)

    * fix(replay): Release MediaMuxer when no frames are encoded
    
    The MediaMuxer is created when the video encoder is constructed, but its
    release() was reachable only on the happy path. Two cases leaked it:
    
    - createVideoOf returned early when frameCount was 0 without releasing the
      encoder.
    - SimpleMp4FrameMuxer.release() called muxer.stop() before muxer.release().
      stop() throws if the muxer was never started (no frame ever muxed), so
      release() was skipped.
    
    This surfaced as a CloseGuard "resource was acquired but never released"
    warning. Guard stop() behind the started flag so release() is always
    reached, and release the encoder on the no-frames return path.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    
    * changelog
    
    ---------
    
    Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
    runningcode and claude authored Jun 22, 2026
    Configuration menu
    Copy the full SHA
    f037273 View commit details
    Browse the repository at this point in the history
  3. docs(replay): Add THIRD_PARTY_NOTICES entry for SimpleMp4FrameMuxer (#…

    …5586)
    
    * docs(replay): Add THIRD_PARTY_NOTICES entry for SimpleMp4FrameMuxer
    
    SimpleMp4FrameMuxer is adapted from the flutter_screen_recorder library
    and carries a complete attribution header, but the corresponding entry
    in THIRD_PARTY_NOTICES.md was never added. Warden's check-code-attribution
    flags the missing entry as independently required regardless of header
    completeness.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    
    * docs(replay): Cover all adapted flutter_screen_recorder and Curtains files
    
    SimpleFrameMuxer and SimpleVideoEncoder are adapted from the same
    flutter_screen_recorder library as SimpleMp4FrameMuxer; fold all three
    into one notice entry. Also extend the existing Square Curtains scope to
    list io.sentry.android.replay.Windows, which is adapted from Curtains but
    was not mentioned.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    
    * fix(replay): Correct adapted-from URL in SimpleVideoEncoder header
    
    The attribution header pointed at the upstream SimpleFrameMuxer.kt
    instead of SimpleVideoEncoder.kt.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    
    ---------
    
    Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
    runningcode and claude authored Jun 22, 2026
    Configuration menu
    Copy the full SHA
    57d359a View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2026

  1. build(samples): Remove outputs.upToDateWhen { false } from systemTest…

    … tasks (#5522)
    
    * build(samples): Remove outputs.upToDateWhen { false } from systemTest tasks
    
    The systemTest tasks in the sample modules forced Gradle to always treat
    their outputs as out of date, disabling up-to-date checks and build cache
    reuse. Removing this lets Gradle rely on its normal input/output tracking
    for the Test tasks.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    
    * build(samples): Track systemTest app archive via convention plugin
    
    The system tests launch the packaged sample (war/shadowJar/bootJar) from
    build/libs as a separate process, so the archive is a real input to the
    systemTest task even though it is not on the test classpath. Without it,
    removing outputs.upToDateWhen { false } would let Gradle mark systemTest
    up-to-date while a separate jar build refreshed the artifact, skipping
    verification against the rebuilt sample.
    
    Move that wiring into a single io.sentry.systemtest convention plugin in
    build-logic instead of repeating it in every sample build file. The
    plugin auto-detects the packaging task (war, else shadowJar, else
    bootJar), mirroring the selection in test/system-test-runner.py, and
    declares its archive as an input and dependency. Each sample just
    applies the plugin.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    
    * build(samples): Track OpenTelemetry agent jar as systemTest input
    
    The agent-based OpenTelemetry samples are launched by the runner with
    -javaagent:<sentry-opentelemetry-agent>, started outside the test JVM.
    That jar is not on the test classpath nor one of the app archives, so
    without tracking it systemTest could stay up-to-date and be skipped
    while the runner launches a newer agent.
    
    Add a usesOpenTelemetryAgent opt-in to the io.sentry.systemtest plugin;
    the three agent samples enable it and the agent jar is then tracked as a
    content input. The runner already builds and launches the agent before
    invoking the task, so it is tracked by path without a cross-project task
    dependency, which keeps it configuration-on-demand and configuration
    cache compatible.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    
    ---------
    
    Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
    runningcode and claude authored Jun 23, 2026
    Configuration menu
    Copy the full SHA
    f982bad View commit details
    Browse the repository at this point in the history
  2. fix(android): Fix crash when getHistoricalProcessStartReasons is call…

    …ed from a wrong process (#5597)
    
    * fix(android): Fix crash when getHistoricalProcessStartReasons is called from a wrong process
    
    * test(android): Add test and changelog for getHistoricalProcessStartReasons crash fix
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    
    * SecurityException -> RuntimeException
    
    ---------
    
    Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
    romtsn and claude authored Jun 23, 2026
    Configuration menu
    Copy the full SHA
    ec5e3a5 View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2026

  1. fix(replay): Fix flaky ComposeMaskingOptionsTest (#5613)

    The `when sentry-unmask modifier is set unmasks the node` test intermittently
    failed because Robolectric can report zero bounds for some nodes when running
    the full test class, making them invisible (shouldMask = isVisible && ...).
    
    Restructure the test to:
    - Explicitly find the "Make Request" node and assert it IS visible and unmasked
    - Assert other visible nodes remain masked, with a guard against empty iteration
    - Tolerate intermittent zero-bounds on non-identifiable nodes (Robolectric artifact)
    
    Validated with the repro from getsentry/repro#51: 20/20 passes (vs ~10% flake
    rate before the fix).
    
    Fixes #5585
    
    Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
    romtsn and claude authored Jun 24, 2026
    Configuration menu
    Copy the full SHA
    8183500 View commit details
    Browse the repository at this point in the history
  2. ci(replay): Skip snapshot upload on PRs from forks (#5621)

    Fork PRs don't have access to the SENTRY_AUTH_TOKEN secret, so the
    sentry-cli snapshot upload would fail anyway. Guard the step to run
    only on pushes and same-repo PRs.
    
    Co-authored-by: Claude Opus 4.8 <[email protected]>
    runningcode and claude authored Jun 24, 2026
    Configuration menu
    Copy the full SHA
    3c89fa4 View commit details
    Browse the repository at this point in the history
  3. ci(build): Skip snapshot upload on PRs from forks (#5622)

    Fork PRs don't have access to SENTRY_AUTH_TOKEN, so the upload step
    would attempt to run without credentials. Guard it the same way the
    replay snapshot upload is guarded so fork PRs cleanly skip it.
    runningcode authored Jun 24, 2026
    Configuration menu
    Copy the full SHA
    477b848 View commit details
    Browse the repository at this point in the history
  4. fix: use System.nanoTime() for cron check-in duration measurement (#5611

    )
    
    * fix: use System.nanoTime() for cron check-in duration measurement
    
    System.currentTimeMillis() is a wall-clock value and is subject to
    NTP adjustments and DST transitions. For long-running cron jobs this
    can produce incorrect or even negative durations in the check-in payload.
    
    Switch the start/end capture in CheckInUtils.withCheckIn() and the three
    SentryCheckInAdvice implementations (sentry-spring, sentry-spring-jakarta,
    sentry-spring-7) to System.nanoTime(), which is guaranteed monotonic.
    Use DateUtils.nanosToSeconds() (already present) to convert the delta.
    
    Fixes #5579
    
    * changelog
    
    ---------
    
    Co-authored-by: Roman Zavarnitsyn <[email protected]>
    tsushanth and romtsn authored Jun 24, 2026
    Configuration menu
    Copy the full SHA
    693fc15 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    0499903 View commit details
    Browse the repository at this point in the history
  6. release: 8.45.0

    0xadam-brown committed Jun 24, 2026
    Configuration menu
    Copy the full SHA
    f8e292e View commit details
    Browse the repository at this point in the history
Loading