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.22.0
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.23.0
Choose a head ref
  • 16 commits
  • 127 files changed
  • 14 contributors

Commits on Sep 22, 2025

  1. Merge branch 'release/8.22.0'

    getsentry-bot committed Sep 22, 2025
    Configuration menu
    Copy the full SHA
    d217708 View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2025

  1. Mark SentryEnvelope as not internal (#4748)

    Co-authored-by: Sentry Github Bot <[email protected]>
    Co-authored-by: Alexander Dinauer <[email protected]>
    3 people authored Sep 26, 2025
    Configuration menu
    Copy the full SHA
    e4db821 View commit details
    Browse the repository at this point in the history
  2. Handle RejectedExecutionException everywhere (#4747)

    Co-authored-by: Sentry Github Bot <[email protected]>
    lcian and getsentry-bot authored Sep 26, 2025
    Configuration menu
    Copy the full SHA
    818a27d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f0a95bc View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    8294a87 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d478d66 View commit details
    Browse the repository at this point in the history
  6. Create Test Matrix for Spring Boot (#4741)

    * Create Test Matrix for Spring Boot
    
    * caching
    
    * ignore android changes
    
    * Add missing otel samples / auto init false
    
    * add spring modules
    
    * fix used module
    
    * comment out spring boot 4 noagent for now
    adinauer authored Sep 26, 2025
    Configuration menu
    Copy the full SHA
    f634d01 View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2025

  1. feat(android-distribution): add httpclient for checking for build dis…

    …tribution updates (#4734)
    
    * feat(android-distribution): implement checkForUpdateBlocking functionality
    
    Implements the checkForUpdateBlocking method in DistributionIntegration to check for app updates via Sentry's distribution API.
    
    ## Why not reuse existing HttpConnection?
    
    The existing `HttpConnection` class is designed specifically for Sentry event transport and is not suitable for distribution API calls:
    - Hardcoded for POST requests (we need GET)
    - Expects Sentry envelopes with gzip encoding (we need simple JSON)
    - Only considers status 200 successful (REST APIs use 200-299 range)
    - Includes Sentry-specific rate limiting logic
    
    ## Changes
    
    - **DistributionHttpClient**: New HTTP client for distribution API requests
      - Supports GET requests with query parameters (main_binary_identifier, app_id, platform, version)
      - Uses SentryOptions.DistributionOptions for configuration (orgSlug, projectSlug, orgAuthToken)
      - Handles SSL configuration, timeouts, and proper error handling
    
    - **UpdateResponseParser**: JSON response parser for API responses
      - Parses API responses into UpdateStatus objects (UpToDate, NewRelease, UpdateError)
      - Handles various HTTP status codes with appropriate error messages
      - Validates required fields in update information
    
    - **DistributionIntegration**: Updated to use new classes
      - Automatically extracts app information (package name, version) from Android context
      - Clean separation of concerns with HTTP client and response parser
      - Comprehensive error handling and logging
    
    - **Tests**: Added unit test for DistributionHttpClient with real API integration
    
    🤖 Generated with [Claude Code](https://claude.ai/code)
    
    Co-Authored-By: Claude <[email protected]>
    
    * Address PR review feedback
    
    - Remove unnecessary Claude-style comments from DistributionHttpClient
    - Replace manual URL building with Android Uri.Builder for safer parameter encoding
    - Add comprehensive tests for UpdateResponseParser with 11 test cases
    - Improve error handling to distinguish between network connection vs server issues
    - Add clarifying comments about which exceptions indicate network connectivity problems
    - Fix null value handling in JSON parsing to properly validate "null" strings
    - Remove unclear comment about package name usage
    
    🤖 Generated with [Claude Code](https://claude.ai/code)
    
    Co-Authored-By: Claude <[email protected]>
    
    * Fix User-Agent header to follow codebase conventions
    
    Replace custom fallback "sentry-android-distribution" with error throw
    when sentryClientName is null, following the pattern used throughout
    the codebase where sentryClientName is expected to always be set.
    
    Addresses PR review feedback about reusing consistent user agent.
    
    🤖 Generated with [Claude Code](https://claude.ai/code)
    
    Co-Authored-By: Claude <[email protected]>
    
    * Update SocketTimeoutException message to mention network connection
    
    Change "check connection speed" to "check network connection" to be
    more general and align with the goal of distinguishing network
    connectivity issues.
    
    🤖 Generated with [Claude Code](https://claude.ai/code)
    
    Co-Authored-By: Claude <[email protected]>
    
    * Add NoNetwork status and improve error messages
    
    - Add UpdateStatus.NoNetwork subclass for network-specific errors
    - Update DistributionIntegration to use NoNetwork for UnknownHostException and SocketTimeoutException
    - Improve UpdateResponseParser error messages to specify which required fields are missing
    - Add comprehensive tests for specific missing field error messages
    
    🤖 Generated with [Claude Code](https://claude.ai/code)
    
    Co-Authored-By: Claude <[email protected]>
    
    * Fix CI compilation errors in DistributionHttpClient
    
    - Update UpdateCheckParams constructor to use separate versionCode and versionName parameters
    - Replace Android Uri with string building for better compatibility
    - Remove unused Android Uri import
    - Update URL construction to use build_number and build_version query parameters
    
    This fixes the CI compilation errors where the old constructor expected a single 'version' parameter.
    
    🤖 Generated with [Claude Code](https://claude.ai/code)
    
    Co-Authored-By: Claude <[email protected]>
    
    ---------
    
    Co-authored-by: Claude <[email protected]>
    runningcode and claude authored Sep 29, 2025
    Configuration menu
    Copy the full SHA
    8e6d732 View commit details
    Browse the repository at this point in the history
  2. build(deps): bump github/codeql-action from 3.30.3 to 3.30.5 (#4761)

    Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.3 to 3.30.5.
    - [Release notes](https://github.com/github/codeql-action/releases)
    - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
    - [Commits](github/codeql-action@192325c...3599b3b)
    
    ---
    updated-dependencies:
    - dependency-name: github/codeql-action
      dependency-version: 3.30.5
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Sep 29, 2025
    Configuration menu
    Copy the full SHA
    4c657b6 View commit details
    Browse the repository at this point in the history
  3. Fix(compose): Preserve modifiers in SentryNavigable (#4757)

    * Fix(compose): Preserve modifiers in SentryNavigable
    
    * Update Changelog
    
    ---------
    
    Co-authored-by: Michiel Vleeming <[email protected]>
    Co-authored-by: Markus Hintersteiner <[email protected]>
    3 people authored Sep 29, 2025
    Configuration menu
    Copy the full SHA
    b66ccf3 View commit details
    Browse the repository at this point in the history
  4. Start performance collection on AppStart continuous profiling (#4752)

    * app start continuous profiler will now start performance collection when the SDK inits
    stefanosiano authored Sep 29, 2025
    Configuration menu
    Copy the full SHA
    806307f View commit details
    Browse the repository at this point in the history

Commits on Sep 30, 2025

  1. feat(android-distribution): Add update check button to Android sample (

    …#4764)
    
    - Add sentry-android-distribution as debug-only dependency
    - Add "Check for Update" button to main activity UI
    - Implement handler that calls Sentry.distribution().checkForUpdate()
    - Handle all UpdateStatus types: NewRelease, UpToDate, NoNetwork, UpdateError
    - Display results in toast messages
    
    Note: This feature requires proper distribution tokens and configuration to work.
    This change makes it easier to test the distribution integration.
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-authored-by: Claude <[email protected]>
    runningcode and claude authored Sep 30, 2025
    Configuration menu
    Copy the full SHA
    604a261 View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2025

  1. Feat/poc continuous profiling (#4556)

    * wip
    
    * re-add data category profile_chunk, fix json naming, new converter based on jfr converter bundled with asyncprofiler
    
    * read java thread ids from jfr and use those instead of os thread ids, use existing SentryStackFrame instead of JfrFrame,
    
    * adhere to sentry conventions re format null safety etc, fix compilation
    
    * add profile-session-sample-rate to external options
    
    * add platform as constructor param to ProfileChunk, wip: set java continuous profiler in sentry init
    
    * add doubleToBigDecimal in JfrSample and ProfileChunk, same as we do it in SentrySpan to work around scientific notation of double, use wall clock profiling
    
    * rename JfrProfile to SentryProfile
    
    * move java profiling into its own module, load using SPI
    
    * [WIP] use getProfilingTracesDirPath
    
    * add missing build.gradle.kts for profiler module
    
    * WIP continuous profiling in trace mode
    
    * cleanup unused classes from vendor, cleanup packages
    
    * allow setting profiling-traces-dir-path independently from cache dir using external options
    
    * use profileChunk.platform to decide how to deal with the chunk instead of file extension
    
    * port relevant AndroidContinuousProfilerTest tests to JavaContinuousProfilerTest
    
    * add service loader tests for profiler and profile converter
    
    * remove old jfr test files
    
    * Support ProfileLifecycle.TRACE (#4576)
    
    * delete unused JfrFrame and JfrToSentryProfileconverter
    
    * use passed-in profilingTracesHz parameter instead of hardcoded value
    
    * start profiler before starting the transaction when ProfileLifecycle.TRACE is used to have the profile ID when SentryTracer is created
    
    * use improved way to calculate timestamp of sample
    
    * api dump
    
    * let profile-lifecycle be set from external_options, add tests for SpringBoot autoconfig
    
    * initialize stackTraceFactory only once per chunk
    
    * rename profile data classes, add deserialization and tests
    
    * extract methods in ProfileConverter, fix SentryProfile serialization and make fields private
    
    * use wall=[interval] instead of setting the event to wall and setting the interval separately, this seems to work better and create more samples
    
    * start/stop profiler in OtelSentrySpanProcesser in trace mode for root spans
    
    * add profiler dependency to jakarta-opentelemetry sample, add needed configs
    
    * add dependenies and config to spring-boot-jakarta sample
    
    * remove connection status check
    
    * extract event visitor
    
    * Add enum for ProfileChunk platform
    
    * fallback to default temp directory for profiling on jvm if directory is not configured
    
    * cleanup some minor things
    
    * remove ProfilingInitializer, fix comments
    
    * Format code
    
    * add getter/setter to sample and metadata
    
    * fix compile error
    
    * add comment/todo for deleteOnExit
    
    * Profiling - Deduplication and cleanup (#4681)
    
    * add readme and info about commit of the source repository
    
    * delete jfr file on jvm exit
    
    * further split into smaller methods
    
    * deduplicate frames in order to save bandwidth, add converter tests
    
    * remove Platform Enum, use string constants instead for compatibility with cross platform frameworks
    
    * implement equals and hashcode for SentryStackFrame to make frame deduplication work
    
    * bump api
    
    * improve error handling, fix start stop start flow
    
    * add new testfile
    
    * calculate ticksPerNanosecond in constructor
    
    * adapt Ratelimiter to check for both ProfileChunk and ProfileChunkUi ratelimiting
    
    * update ratelimiter test to check for both profileChunk and profileChunkUi drops
    
    * use string constant instead of string
    
    * Format code
    
    * add non aggregating event collector to send each event individually, deduplicate stacks
    
    * adapt converter tests to new non-aggregated converter
    
    * Format code
    
    * add logging to loadProfileConverter
    
    * Format code
    
    * fix duplication of events
    
    * catch all exception happening when converting from jfr
    
    * add exists and writable info to log message
    
    * add method to safely delete file
    
    * remove setNative call
    
    * fix test
    
    * fix reference to commit we vendored from
    
    * drop event if it cannot be processed to not lose the whole chunk
    
    * make format
    
    * fix test
    
    * Format code
    
    * Profiling - OTEL profiling fix, Stabilization, Logging (#4746)
    
    * add skipProfiling flag to TransactionOptions to be able to skip profiling and handle cases where profiling has been started by otel
    
    * add profilerId to spanContext so that otel span processor can propagate this to the exporter and SentryTracer
    
    * immediately end profiling when stopProfiler is called
    
    * bump api, fix android api 24 code
    
    * catch all exception happening when converting from jfr
    
    * simplify JavaContinuous profiler by catching AsyncProfiler instantiation exceptions in provider
    
    * add exists and writable info to log message
    
    * add method to safely delete file
    
    * remove setNative call
    
    * fix test
    
    * fix reference to commit we vendored from
    
    * drop event if it cannot be processed to not lose the whole chunk
    
    * Format code
    
    * fix test
    
    * Format code
    
    * fix test
    
    * catch exceptions in startProfiler/stopProfiler
    
    * fallback to threadId -1 if it cannot be resolved
    
    ---------
    
    Co-authored-by: Sentry Github Bot <[email protected]>
    
    ---------
    
    Co-authored-by: Sentry Github Bot <[email protected]>
    
    ---------
    
    Co-authored-by: Sentry Github Bot <[email protected]>
    
    * change profiler api from Path to String to keep Android Api 21 compatibility
    
    * mark all profiling related classes as internal
    
    * Format code
    
    * mark Sentry profile classes internal
    
    * Format code
    
    * mark SentryThreadMetadata internal
    
    * add changelog entry
    
    * Format code
    
    * re-add asyncprofiler classes, cr changes
    
    * bump api
    
    * detect dangerous/invalid chars in profiling directory name
    
    * ignore vendored profile conversion code in codecov
    
    ---------
    
    Co-authored-by: Sentry Github Bot <[email protected]>
    lbloder and getsentry-bot authored Oct 1, 2025
    Configuration menu
    Copy the full SHA
    0e2c478 View commit details
    Browse the repository at this point in the history
  2. Add session replay id to Sentry Logs (#4740)

    * added session replay id to logs
    * added sentry._internal.replay_is_buffering to logs when replay is in buffer mode
    stefanosiano authored Oct 1, 2025
    Configuration menu
    Copy the full SHA
    9023083 View commit details
    Browse the repository at this point in the history
  3. Improve Profiling changelog entry (#4767)

    * Enhance documentation for Sentry continuous profiling
    
    Expanded details on Sentry continuous profiling feature, including configuration options and default settings.
    
    * Update CHANGELOG.md
    adinauer authored Oct 1, 2025
    Configuration menu
    Copy the full SHA
    dcb8068 View commit details
    Browse the repository at this point in the history
  4. release: 8.23.0

    getsentry-bot committed Oct 1, 2025
    Configuration menu
    Copy the full SHA
    5eccfcd View commit details
    Browse the repository at this point in the history
Loading