From 5ada041461f6ac8ead41ceab7f2b79576449a76b Mon Sep 17 00:00:00 2001 From: Ben Manes Date: Thu, 4 Jul 2024 11:57:32 -0700 Subject: [PATCH] dependency updates --- .github/actions/run-gradle/action.yml | 4 +- .github/workflows/actionlint.yml | 2 +- .github/workflows/codacy.yml | 2 +- .github/workflows/codeql.yml | 6 +-- .github/workflows/dependency-check.yml | 5 +- .../dependency-submission-pr-retreive.yml | 2 +- .../dependency-submission-pr-submit.yml | 2 +- .github/workflows/dependency-submission.yml | 2 +- .github/workflows/devskim.yml | 2 +- .github/workflows/examples.yml | 2 +- .../workflows/gradle-wrapper-validation.yml | 2 +- .github/workflows/qodana.yml | 4 +- .github/workflows/scorecards-analysis.yml | 2 +- .github/workflows/semgrep.yml | 2 +- .github/workflows/snyk.yml | 51 +++++++------------ .github/workflows/spelling.yml | 4 +- .github/workflows/trivy.yml | 4 +- .../cache/testing/CacheContextSubject.java | 11 ++-- .../cache/testing/GuavaCacheFromContext.java | 9 +++- .../gradle/libs.versions.toml | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../settings.gradle.kts | 2 +- .../bulkloader/CoalescingBulkLoaderTest.java | 2 +- .../graal-native/gradle/libs.versions.toml | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/graal-native/settings.gradle.kts | 2 +- examples/hibernate/gradle/libs.versions.toml | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/hibernate/settings.gradle.kts | 2 +- examples/indexable/README.md | 2 +- examples/indexable/gradle/libs.versions.toml | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/indexable/settings.gradle.kts | 2 +- .../examples/indexable/IndexedCache.java | 4 +- .../gradle/libs.versions.toml | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../resilience-failsafe/settings.gradle.kts | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../write-behind-rxjava/settings.gradle.kts | 2 +- gradle/config/eclipse/Simulator.launch | 22 ++++++++ gradle/libs.versions.toml | 20 ++++---- gradle/plugins/settings.gradle.kts | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- .../caffeine/guava/CaffeinatedGuavaCache.java | 12 +---- settings.gradle.kts | 2 +- simulator/build.gradle.kts | 23 ++++----- 46 files changed, 123 insertions(+), 120 deletions(-) create mode 100644 gradle/config/eclipse/Simulator.launch diff --git a/.github/actions/run-gradle/action.yml b/.github/actions/run-gradle/action.yml index f12eb25187..c649a0a782 100644 --- a/.github/actions/run-gradle/action.yml +++ b/.github/actions/run-gradle/action.yml @@ -53,7 +53,7 @@ runs: website: jdk.java.net version: latest - name: Set up GraalVM - uses: graalvm/setup-graalvm@2f25c0caae5b220866f732832d5e3e29ff493338 # v1.2.1 + uses: graalvm/setup-graalvm@2911b2304bee2c2f59b9a67bf45f025a6b6de4b1 # v1.2.2 if: inputs.java == 'GraalVM' with: distribution: 'graalvm' @@ -79,7 +79,7 @@ runs: distribution: temurin - name: Setup Gradle id: setup-gradle - uses: gradle/actions/setup-gradle@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 + uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3.4.2 env: JAVA_HOME: ${{ steps.setup-gradle-jdk.outputs.path }} ORG_GRADLE_PROJECT_org.gradle.java.installations.auto-download: 'false' diff --git a/.github/workflows/actionlint.yml b/.github/workflows/actionlint.yml index fc1b27d585..0894ebd208 100644 --- a/.github/workflows/actionlint.yml +++ b/.github/workflows/actionlint.yml @@ -16,7 +16,7 @@ jobs: github.com:443 - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: actionlint - uses: reviewdog/action-actionlint@52819f5f70db72e17c2fadecd44a791ae4459276 # v1.49.0 + uses: reviewdog/action-actionlint@afad3b6ab835e5611bda8c8193377e2d5c21413d # v1.51.0 env: SHELLCHECK_OPTS: -e SC2001 -e SC2035 -e SC2046 -e SC2061 -e SC2086 -e SC2156 with: diff --git a/.github/workflows/codacy.yml b/.github/workflows/codacy.yml index 67acd7326e..b172d63d53 100644 --- a/.github/workflows/codacy.yml +++ b/.github/workflows/codacy.yml @@ -47,7 +47,7 @@ jobs: if: steps.check_files.outputs.files_exists == 'true' run: jq -c '.runs |= unique_by({tool, invocations, results})' < results.sarif > codacy.sarif - name: Upload result to GitHub Code Scanning - uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 if: steps.check_files.outputs.files_exists == 'true' continue-on-error: true with: diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 9e3af0389f..bcbde24d3c 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -57,10 +57,10 @@ jobs: java: ${{ env.JAVA_VERSION }} token: ${{ secrets.GITHUB_TOKEN }} - name: Initialize CodeQL - uses: github/codeql-action/init@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 + uses: github/codeql-action/init@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 with: languages: java - name: Autobuild - uses: github/codeql-action/autobuild@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 + uses: github/codeql-action/autobuild@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 + uses: github/codeql-action/analyze@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 diff --git a/.github/workflows/dependency-check.yml b/.github/workflows/dependency-check.yml index d2b5826b25..d019ccf158 100644 --- a/.github/workflows/dependency-check.yml +++ b/.github/workflows/dependency-check.yml @@ -17,6 +17,9 @@ jobs: actions: read contents: read security-events: write + if: > + github.actor != 'dependabot[bot]' + && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) steps: - name: Harden Runner uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1 @@ -57,7 +60,7 @@ jobs: with: files: build/reports/dependency-check-report.sarif - name: Upload result to GitHub Code Scanning - uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 if: steps.check_files.outputs.files_exists == 'true' with: sarif_file: build/reports/dependency-check-report.sarif diff --git a/.github/workflows/dependency-submission-pr-retreive.yml b/.github/workflows/dependency-submission-pr-retreive.yml index b0b02d8e50..4e4eb44eba 100644 --- a/.github/workflows/dependency-submission-pr-retreive.yml +++ b/.github/workflows/dependency-submission-pr-retreive.yml @@ -35,6 +35,6 @@ jobs: repo1.maven.org:443 services.gradle.org:443 - name: Retrieve and submit dependency graph - uses: gradle/actions/dependency-submission@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 + uses: gradle/actions/dependency-submission@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3.4.2 with: dependency-graph: download-and-submit diff --git a/.github/workflows/dependency-submission-pr-submit.yml b/.github/workflows/dependency-submission-pr-submit.yml index f73c9e7f8d..298771380a 100644 --- a/.github/workflows/dependency-submission-pr-submit.yml +++ b/.github/workflows/dependency-submission-pr-submit.yml @@ -38,7 +38,7 @@ jobs: java-version: ${{ env.JAVA_VERSION }} distribution: temurin - name: Submit Dependency Graph - uses: gradle/actions/dependency-submission@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 + uses: gradle/actions/dependency-submission@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3.4.2 with: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} dependency-graph: generate-and-upload diff --git a/.github/workflows/dependency-submission.yml b/.github/workflows/dependency-submission.yml index 7f2299fa7a..0a13e3ab9f 100644 --- a/.github/workflows/dependency-submission.yml +++ b/.github/workflows/dependency-submission.yml @@ -38,6 +38,6 @@ jobs: java-version: ${{ env.JAVA_VERSION }} distribution: temurin - name: Submit Dependency Graph - uses: gradle/actions/dependency-submission@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 + uses: gradle/actions/dependency-submission@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3.4.2 with: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} diff --git a/.github/workflows/devskim.yml b/.github/workflows/devskim.yml index 196d7853ea..e7ce45b769 100644 --- a/.github/workflows/devskim.yml +++ b/.github/workflows/devskim.yml @@ -31,6 +31,6 @@ jobs: - name: Run DevSkim scanner uses: microsoft/DevSkim-Action@914fa647b406c387000300b2f09bb28691be2b6d # v1.0.14 - name: Upload DevSkim scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 with: sarif_file: devskim-results.sarif diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 18d6e2514c..2b04dc9e34 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -39,7 +39,7 @@ jobs: java-version: ${{ env.JAVA_VERSION }} distribution: temurin - name: Setup Gradle - uses: gradle/actions/setup-gradle@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 + uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3.4.2 with: add-job-summary: never cache-read-only: false diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index b2db44c243..808beac813 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -18,4 +18,4 @@ jobs: github.com:443 services.gradle.org:443 - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - - uses: gradle/actions/wrapper-validation@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 + - uses: gradle/actions/wrapper-validation@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3.4.2 diff --git a/.github/workflows/qodana.yml b/.github/workflows/qodana.yml index 269a473301..47d7e377a5 100644 --- a/.github/workflows/qodana.yml +++ b/.github/workflows/qodana.yml @@ -62,12 +62,12 @@ jobs: java: ${{ env.JAVA_VERSION }} arguments: build -x test - name: Qodana - Code Inspection - uses: JetBrains/qodana-action@32840fdb87f8dd110e0a6b09323c7142b667b25d # v2024.1.5 + uses: JetBrains/qodana-action@c96b39a84dea25f2a24b38a3f6e89903306d5e2a # v2024.1.8 env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} with: upload-result: true - name: Upload SARIF file for GitHub Advanced Security Dashboard - uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 with: sarif_file: ${{ runner.temp }}/qodana/results/qodana.sarif.json diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index c9379a337d..8f7ce1827d 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -57,6 +57,6 @@ jobs: path: results.sarif retention-days: 5 - name: Upload to code-scanning - uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 with: sarif_file: results.sarif diff --git a/.github/workflows/semgrep.yml b/.github/workflows/semgrep.yml index afa2d8cdc3..4411543c5c 100644 --- a/.github/workflows/semgrep.yml +++ b/.github/workflows/semgrep.yml @@ -34,7 +34,7 @@ jobs: if: steps.check_files.outputs.files_exists == 'true' run: jq -c '.runs[0].tool.driver.rules |= unique_by(.id)' < results.sarif > semgrep.sarif - name: Upload SARIF file for GitHub Advanced Security Dashboard - uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 if: steps.check_files.outputs.files_exists == 'true' continue-on-error: true with: diff --git a/.github/workflows/snyk.yml b/.github/workflows/snyk.yml index dc628ff588..869c2fe39c 100644 --- a/.github/workflows/snyk.yml +++ b/.github/workflows/snyk.yml @@ -6,6 +6,7 @@ permissions: read-all env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} + JAVA_VERSION: 21 jobs: snyk: @@ -14,53 +15,39 @@ jobs: actions: read contents: read security-events: write + container: + # Incompatible with Harden Runner + image: snyk/snyk:gradle-jdk21 + env: + SNYK_INTEGRATION_VERSION: gradle-jdk21 + SNYK_INTEGRATION_NAME: GITHUB_ACTIONS + FORCE_COLOR: 2 if: github.event.repository.fork == false steps: - - name: Harden Runner - uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1 + - name: Checkout repository + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - name: Setup Gradle + uses: ./.github/actions/run-gradle with: - disable-sudo: true - egress-policy: block - allowed-endpoints: > - api.adoptium.net:443 - api.foojay.io - api.github.com:443 - api.snyk.io:443 - caffeine.gradle-enterprise.cloud:443 - downloads.gradle.org:443 - downloads.gradle-dn.com:443 - github.com:443 - jcenter.bintray.com:443 - objects.githubusercontent.com:443 - plugins.gradle.org:443 - plugins-artifacts.gradle.org:443 - repo.maven.apache.org:443 - repo1.maven.org:443 - services.gradle.org:443 - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + java: ${{ env.JAVA_VERSION }} + token: ${{ secrets.GITHUB_TOKEN }} - name: Run Snyk test - uses: snyk/actions/gradle-jdk17@master - continue-on-error: true env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} - with: - command: test - args: --sarif-file-output=snyk.sarif --all-sub-projects -- --no-configuration-cache + continue-on-error: true + run: snyk test --sarif-file-output=snyk.sarif --all-sub-projects -- --no-configuration-cache - name: Check file existence id: check_files uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0 with: files: snyk.sarif - name: Upload result to GitHub Code Scanning - uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 if: steps.check_files.outputs.files_exists == 'true' with: sarif_file: snyk.sarif - name: Run Snyk monitor - uses: snyk/actions/gradle-jdk17@master - continue-on-error: true env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} - with: - command: monitor - args: --all-sub-projects -- --no-configuration-cache + continue-on-error: true + run: snyk monitor --all-sub-projects -- --no-configuration-cache diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml index eaa264b350..e9cab89831 100644 --- a/.github/workflows/spelling.yml +++ b/.github/workflows/spelling.yml @@ -16,7 +16,7 @@ jobs: github.com:443 - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Misspell - uses: reviewdog/action-misspell@8cd4a880dd86b1b175092c18c23cdec31283d654 # v1.19.0 + uses: reviewdog/action-misspell@30433ca7be17888deb78a32521706fb65defbf3f # v1.21.0 with: reporter: github-check github_token: ${{ secrets.GITHUB_TOKEN }} @@ -34,4 +34,4 @@ jobs: objects.githubusercontent.com:443 - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Typos - uses: crate-ci/typos@cfe759ac8dd421e203cc293a373396fbc6fe0d4b # v1.22.7 + uses: crate-ci/typos@c16dc8f5b4a7ad6211464ecf136c69c851e8e83c # v1.22.9 diff --git a/.github/workflows/trivy.yml b/.github/workflows/trivy.yml index c921c77078..d737056c44 100644 --- a/.github/workflows/trivy.yml +++ b/.github/workflows/trivy.yml @@ -23,12 +23,12 @@ jobs: pkg-containers.githubusercontent.com:443 - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@595be6a0f6560a0a8fc419ddf630567fc623531d # v0.22.0 + uses: aquasecurity/trivy-action@7c2007bcb556501da015201bcba5aa14069b74e2 # v0.23.0 with: scan-type: fs format: sarif output: trivy-results.sarif - name: Upload Trivy scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 with: sarif_file: trivy-results.sarif diff --git a/caffeine/src/test/java/com/github/benmanes/caffeine/cache/testing/CacheContextSubject.java b/caffeine/src/test/java/com/github/benmanes/caffeine/cache/testing/CacheContextSubject.java index 2e73a71e49..3e98bf232d 100644 --- a/caffeine/src/test/java/com/github/benmanes/caffeine/cache/testing/CacheContextSubject.java +++ b/caffeine/src/test/java/com/github/benmanes/caffeine/cache/testing/CacheContextSubject.java @@ -25,8 +25,6 @@ import static com.google.common.collect.ImmutableListMultimap.toImmutableListMultimap; import static com.google.common.collect.ImmutableMap.toImmutableMap; import static com.google.common.collect.ImmutableMultiset.toImmutableMultiset; -import static com.google.common.truth.OptionalLongSubject.optionalLongs; -import static com.google.common.truth.StreamSubject.streams; import static com.google.common.truth.Truth.assertAbout; import static java.util.Objects.requireNonNull; import static java.util.concurrent.TimeUnit.NANOSECONDS; @@ -83,8 +81,7 @@ public static CacheContextSubject assertThat(CacheContext actual) { public void hasWeightedSize(long expectedSize) { checkArgument(expectedSize >= 0, "expectedSize (%s) must be >= 0", expectedSize); actual.cache().policy().eviction().ifPresentOrElse(policy -> { - check("weightedSize()").about(optionalLongs()) - .that(policy.weightedSize()).hasValue(expectedSize); + check("weightedSize()").that(policy.weightedSize()).hasValue(expectedSize); }, () -> { long weight = actual.cache().asMap().entrySet().stream() .mapToLong(entry -> actual.weigher().weigh(entry.getKey(), entry.getValue())) @@ -97,7 +94,7 @@ public void hasWeightedSize(long expectedSize) { public void hasWeightedSizeLessThan(long other) { checkArgument(other >= 0, "other (%s) must be >= 0", other); actual.cache().policy().eviction().ifPresentOrElse(policy -> { - check("weightedSize()").about(optionalLongs()).that(policy.weightedSize()).isPresent(); + check("weightedSize()").that(policy.weightedSize()).isPresent(); check("weightedSize()").that(policy.weightedSize().orElseThrow()).isLessThan(other); }, () -> { long weight = actual.cache().asMap().entrySet().stream() @@ -320,14 +317,14 @@ public void hasSize(long expectedSize) { public void containsExactlyValues(Object... values) { awaitUntil((type, listener) -> { var stream = listener.removed().stream().map(RemovalNotification::getValue); - check(type).about(streams()).that(stream).containsExactly(values); + check(type).that(stream).containsExactly(values); }); } public void hasNoEvictions() { awaitUntil((type, listener) -> { var stream = listener.removed().stream().filter(entry -> entry.getCause().wasEvicted()); - check(type).about(streams()).that(stream).isEmpty(); + check(type).that(stream).isEmpty(); }); } diff --git a/caffeine/src/test/java/com/github/benmanes/caffeine/cache/testing/GuavaCacheFromContext.java b/caffeine/src/test/java/com/github/benmanes/caffeine/cache/testing/GuavaCacheFromContext.java index 976f34c45b..dc1d532f51 100644 --- a/caffeine/src/test/java/com/github/benmanes/caffeine/cache/testing/GuavaCacheFromContext.java +++ b/caffeine/src/test/java/com/github/benmanes/caffeine/cache/testing/GuavaCacheFromContext.java @@ -173,7 +173,7 @@ public V get(K key, Function mappingFunction) { return cache.get(key, () -> { V value = mappingFunction.apply(key); if (value == null) { - throw new CacheMissException(); + throw CacheMissException.INSTANCE; } return value; }); @@ -639,7 +639,7 @@ public V load(K key) throws Exception { error.set(null); V value = delegate.load(key); if (value == null) { - throw new CacheMissException(); + throw CacheMissException.INSTANCE; } return value; } catch (Exception e) { @@ -707,6 +707,11 @@ public GuavaCacheEntry(K key, V value, long snapshot) { } static final class CacheMissException extends RuntimeException { + private static final CacheMissException INSTANCE = new CacheMissException(); private static final long serialVersionUID = 1L; + + CacheMissException() { + super(null, null, /* enableSuppression */ false, /* writableStackTrace */ false); + } } } diff --git a/examples/coalescing-bulkloader-reactor/gradle/libs.versions.toml b/examples/coalescing-bulkloader-reactor/gradle/libs.versions.toml index cb45473fce..59b413a8aa 100644 --- a/examples/coalescing-bulkloader-reactor/gradle/libs.versions.toml +++ b/examples/coalescing-bulkloader-reactor/gradle/libs.versions.toml @@ -2,7 +2,7 @@ caffeine = "3.1.8" junit = "5.11.0-M2" reactor = "3.6.7" -truth = "1.4.2" +truth = "1.4.3" versions = "0.51.0" [libraries] diff --git a/examples/coalescing-bulkloader-reactor/gradle/wrapper/gradle-wrapper.properties b/examples/coalescing-bulkloader-reactor/gradle/wrapper/gradle-wrapper.properties index c9e6332d32..e021a95878 100644 --- a/examples/coalescing-bulkloader-reactor/gradle/wrapper/gradle-wrapper.properties +++ b/examples/coalescing-bulkloader-reactor/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-rc-1-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/examples/coalescing-bulkloader-reactor/settings.gradle.kts b/examples/coalescing-bulkloader-reactor/settings.gradle.kts index e488722571..cbe0c3465e 100644 --- a/examples/coalescing-bulkloader-reactor/settings.gradle.kts +++ b/examples/coalescing-bulkloader-reactor/settings.gradle.kts @@ -1,6 +1,6 @@ plugins { id("com.gradle.develocity") version "3.17.5" - id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.1" + id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.2" id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" } diff --git a/examples/coalescing-bulkloader-reactor/src/test/java/com/github/benmanes/caffeine/examples/coalescing/bulkloader/CoalescingBulkLoaderTest.java b/examples/coalescing-bulkloader-reactor/src/test/java/com/github/benmanes/caffeine/examples/coalescing/bulkloader/CoalescingBulkLoaderTest.java index 622377403b..d30389c93f 100644 --- a/examples/coalescing-bulkloader-reactor/src/test/java/com/github/benmanes/caffeine/examples/coalescing/bulkloader/CoalescingBulkLoaderTest.java +++ b/examples/coalescing-bulkloader-reactor/src/test/java/com/github/benmanes/caffeine/examples/coalescing/bulkloader/CoalescingBulkLoaderTest.java @@ -84,7 +84,7 @@ public void maxSize() { } results.forEach((key, future) -> assertThat(future.join()).isEqualTo(-key)); - batchSizes.forEach(batchSize-> assertThat(batchSize).isAtMost(maxSize)); + batchSizes.forEach(batchSize -> assertThat(batchSize).isAtMost(maxSize)); assertThat(batchSizes).hasSize(requests / maxSize); long delay = TimeUnit.NANOSECONDS.toMillis(end.get() - start); diff --git a/examples/graal-native/gradle/libs.versions.toml b/examples/graal-native/gradle/libs.versions.toml index 0d233208ed..86d7356c16 100644 --- a/examples/graal-native/gradle/libs.versions.toml +++ b/examples/graal-native/gradle/libs.versions.toml @@ -2,7 +2,7 @@ caffeine = "3.1.8" graal = "0.10.2" junit = "5.11.0-M2" -truth = "1.4.2" +truth = "1.4.3" versions = "0.51.0" [libraries] diff --git a/examples/graal-native/gradle/wrapper/gradle-wrapper.properties b/examples/graal-native/gradle/wrapper/gradle-wrapper.properties index c9e6332d32..e021a95878 100644 --- a/examples/graal-native/gradle/wrapper/gradle-wrapper.properties +++ b/examples/graal-native/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-rc-1-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/examples/graal-native/settings.gradle.kts b/examples/graal-native/settings.gradle.kts index 7c5d22b6d7..93bb359b85 100644 --- a/examples/graal-native/settings.gradle.kts +++ b/examples/graal-native/settings.gradle.kts @@ -6,7 +6,7 @@ pluginManagement { } plugins { id("com.gradle.develocity") version "3.17.5" - id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.1" + id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.2" id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" } diff --git a/examples/hibernate/gradle/libs.versions.toml b/examples/hibernate/gradle/libs.versions.toml index d0afdd17d8..b100c2580f 100644 --- a/examples/hibernate/gradle/libs.versions.toml +++ b/examples/hibernate/gradle/libs.versions.toml @@ -5,7 +5,7 @@ hibernate = "6.5.2.Final" junit = "5.11.0-M2" log4j2 = "3.0.0-beta2" slf4j = "2.0.7" -truth = "1.4.2" +truth = "1.4.3" versions = "0.51.0" [libraries] diff --git a/examples/hibernate/gradle/wrapper/gradle-wrapper.properties b/examples/hibernate/gradle/wrapper/gradle-wrapper.properties index c9e6332d32..e021a95878 100644 --- a/examples/hibernate/gradle/wrapper/gradle-wrapper.properties +++ b/examples/hibernate/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-rc-1-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/examples/hibernate/settings.gradle.kts b/examples/hibernate/settings.gradle.kts index 8789da6487..c4a1417e6e 100644 --- a/examples/hibernate/settings.gradle.kts +++ b/examples/hibernate/settings.gradle.kts @@ -1,6 +1,6 @@ plugins { id("com.gradle.develocity") version "3.17.5" - id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.1" + id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.2" id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" } diff --git a/examples/indexable/README.md b/examples/indexable/README.md index 07a41235ae..c5ab3d8837 100644 --- a/examples/indexable/README.md +++ b/examples/indexable/README.md @@ -37,8 +37,8 @@ sealed interface UserKey permits UserById, UserByLogin, UserByEmail { private User findUser(UserKey key) { Condition condition = switch (key) { case UserById(var id) -> USER_INFO.ID.eq(id); + case UserByEmail(var email) -> USER_INFO.EMAIL.eq(email); case UserByLogin(var login) -> USER_INFO.USERNAME.eq(login); - case UserByEmail(var email) -> USER_INFO.EMAIL.eq(email.toLowerCase()); }; return db.selectFrom(USER_INFO).where(condition).fetchOneInto(User.class); } diff --git a/examples/indexable/gradle/libs.versions.toml b/examples/indexable/gradle/libs.versions.toml index dac0a28fac..4f6e6e0138 100644 --- a/examples/indexable/gradle/libs.versions.toml +++ b/examples/indexable/gradle/libs.versions.toml @@ -2,7 +2,7 @@ caffeine = "3.1.8" guava = "33.2.1-jre" junit-jupiter = "5.11.0-M2" -truth = "1.4.2" +truth = "1.4.3" versions = "0.51.0" [libraries] diff --git a/examples/indexable/gradle/wrapper/gradle-wrapper.properties b/examples/indexable/gradle/wrapper/gradle-wrapper.properties index c9e6332d32..e021a95878 100644 --- a/examples/indexable/gradle/wrapper/gradle-wrapper.properties +++ b/examples/indexable/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-rc-1-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/examples/indexable/settings.gradle.kts b/examples/indexable/settings.gradle.kts index 0ea2063460..136114af7b 100644 --- a/examples/indexable/settings.gradle.kts +++ b/examples/indexable/settings.gradle.kts @@ -1,6 +1,6 @@ plugins { id("com.gradle.develocity") version "3.17.5" - id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.1" + id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.2" id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" } diff --git a/examples/indexable/src/main/java/com/github/benmanes/caffeine/examples/indexable/IndexedCache.java b/examples/indexable/src/main/java/com/github/benmanes/caffeine/examples/indexable/IndexedCache.java index fe4b57086f..49350de9d9 100644 --- a/examples/indexable/src/main/java/com/github/benmanes/caffeine/examples/indexable/IndexedCache.java +++ b/examples/indexable/src/main/java/com/github/benmanes/caffeine/examples/indexable/IndexedCache.java @@ -100,10 +100,10 @@ public V get(K key) { } /** Associates the {@code value} with its keys, replacing the old value and keys if present. */ - public V put(V value) { + public void put(V value) { requireNonNull(value); var index = buildIndex(value); - return store.asMap().compute(index.getFirst(), (key, oldValue) -> { + store.asMap().compute(index.getFirst(), (key, oldValue) -> { if (oldValue != null) { indexes.keySet().removeAll(Sets.difference(indexes.get(index.getFirst()), index)); } diff --git a/examples/resilience-failsafe/gradle/libs.versions.toml b/examples/resilience-failsafe/gradle/libs.versions.toml index 25888e412f..30fa3b18e0 100644 --- a/examples/resilience-failsafe/gradle/libs.versions.toml +++ b/examples/resilience-failsafe/gradle/libs.versions.toml @@ -2,7 +2,7 @@ caffeine = "3.1.8" failsafe = "3.3.2" junit = "5.11.0-M2" -truth = "1.4.2" +truth = "1.4.3" versions = "0.51.0" [libraries] diff --git a/examples/resilience-failsafe/gradle/wrapper/gradle-wrapper.properties b/examples/resilience-failsafe/gradle/wrapper/gradle-wrapper.properties index c9e6332d32..e021a95878 100644 --- a/examples/resilience-failsafe/gradle/wrapper/gradle-wrapper.properties +++ b/examples/resilience-failsafe/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-rc-1-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/examples/resilience-failsafe/settings.gradle.kts b/examples/resilience-failsafe/settings.gradle.kts index 5e04180ef8..e78a875a7e 100644 --- a/examples/resilience-failsafe/settings.gradle.kts +++ b/examples/resilience-failsafe/settings.gradle.kts @@ -1,6 +1,6 @@ plugins { id("com.gradle.develocity") version "3.17.5" - id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.1" + id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.2" id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" } diff --git a/examples/write-behind-rxjava/gradle/wrapper/gradle-wrapper.properties b/examples/write-behind-rxjava/gradle/wrapper/gradle-wrapper.properties index c9e6332d32..e021a95878 100644 --- a/examples/write-behind-rxjava/gradle/wrapper/gradle-wrapper.properties +++ b/examples/write-behind-rxjava/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-rc-1-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/examples/write-behind-rxjava/settings.gradle.kts b/examples/write-behind-rxjava/settings.gradle.kts index 5cc38c5d2e..2cea568e6a 100644 --- a/examples/write-behind-rxjava/settings.gradle.kts +++ b/examples/write-behind-rxjava/settings.gradle.kts @@ -1,6 +1,6 @@ plugins { id("com.gradle.develocity") version "3.17.5" - id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.1" + id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.2" id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" } diff --git a/gradle/config/eclipse/Simulator.launch b/gradle/config/eclipse/Simulator.launch new file mode 100644 index 0000000000..d61e16a584 --- /dev/null +++ b/gradle/config/eclipse/Simulator.launch @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 238d1b7b17..ad8bc3499a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ bnd = "7.0.0" bouncycastle-jdk18on = "1.78.1" cache2k = "2.6.1.Final" caffeine = "3.1.8" -checker-framework = "3.44.0" +checker-framework = "3.45.0" checkstyle = "10.17.0" coherence = "22.06.2" commons-collections4 = "4.4" @@ -19,11 +19,11 @@ commons-text = "1.12.0" concurrentlinkedhashmap = "1.4.2" config = "1.4.3" coveralls = "2.12.2" -dependency-check = "9.2.0" +dependency-check = "10.0.1" eclipse-collections = "12.0.0.M3" ehcache3 = "3.10.8" errorprone = "2.28.0" -errorprone-plugin = "4.0.0" +errorprone-plugin = "4.0.1" errorprone-support = "0.16.1" expiring-map = "0.5.11" fast-filter = "1.0.2" @@ -52,7 +52,7 @@ jazzer = "0.22.1" jcache = "1.1.1" jcommander = "1.82" jctools = "4.0.5" -jfreechart = "1.5.4" +jfreechart = "1.5.5" jgit = "6.10.0.202406032230-r" jmh = "1.37" jmh-plugin = "0.7.2" @@ -78,19 +78,19 @@ osgi-promise = "1.3.0" pax-exam = "4.13.5" pax-url = "2.6.14" picocli = "4.7.6" -pmd = "7.2.0" -protobuf = "4.27.1" +pmd = "7.3.0" +protobuf = "4.27.2" slf4j = "2.0.13" slf4j-test = "3.0.1" snakeyaml = "2.2" -sonarqube = "5.0.0.4638" -spotbugs = "4.8.5" +sonarqube = "5.1.0.4882" +spotbugs = "4.8.6" spotbugs-contrib = "7.6.4" -spotbugs-plugin = "6.0.17" +spotbugs-plugin = "6.0.18" stream = "2.9.8" tcache = "2.0.1" testng = "7.10.2" -truth = "1.4.2" +truth = "1.4.3" univocity-parsers = "2.9.1" versions = "0.51.0" xz = "1.9" diff --git a/gradle/plugins/settings.gradle.kts b/gradle/plugins/settings.gradle.kts index 411c840413..40fa19ee10 100644 --- a/gradle/plugins/settings.gradle.kts +++ b/gradle/plugins/settings.gradle.kts @@ -1,6 +1,6 @@ plugins { id("com.gradle.develocity") version "3.17.5" - id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.1" + id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.2" id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c9e6332d32..e021a95878 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-rc-1-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/guava/src/main/java/com/github/benmanes/caffeine/guava/CaffeinatedGuavaCache.java b/guava/src/main/java/com/github/benmanes/caffeine/guava/CaffeinatedGuavaCache.java index b102802858..e3215103d6 100644 --- a/guava/src/main/java/com/github/benmanes/caffeine/guava/CaffeinatedGuavaCache.java +++ b/guava/src/main/java/com/github/benmanes/caffeine/guava/CaffeinatedGuavaCache.java @@ -40,7 +40,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.util.concurrent.ExecutionError; import com.google.common.util.concurrent.UncheckedExecutionException; -import com.google.errorprone.annotations.CanIgnoreReturnValue; /** * A Caffeine-backed cache through a Guava facade. @@ -240,15 +239,8 @@ final class EntrySetView extends ForwardingSet> { static final class CacheLoaderException extends RuntimeException { private static final long serialVersionUID = 1L; - CacheLoaderException(Exception e) { - super(e); - } - - @CanIgnoreReturnValue - @SuppressWarnings({"NonSynchronizedMethodOverridesSynchronizedMethod", - "UnsynchronizedOverridesSynchronized"}) - @Override public Throwable fillInStackTrace() { - return this; + CacheLoaderException(Throwable cause) { + super(null, cause, /* enableSuppression */ false, /* writableStackTrace */ false); } } } diff --git a/settings.gradle.kts b/settings.gradle.kts index e55bfb2032..c7110c16fa 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -3,7 +3,7 @@ pluginManagement { } plugins { id("com.gradle.develocity") version "3.17.5" - id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.1" + id("com.gradle.common-custom-user-data-gradle-plugin") version "2.0.2" id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" } diff --git a/simulator/build.gradle.kts b/simulator/build.gradle.kts index fb5b991001..2de719c0ce 100644 --- a/simulator/build.gradle.kts +++ b/simulator/build.gradle.kts @@ -75,31 +75,21 @@ tasks.withType().configureEach { } tasks.named("run").configure { - systemProperties(caffeineSystemProperties()) - jvmArgs(javaExecJvmArgs()) + description = "Runs a single simulation and generates a report" } tasks.register("simulate") { description = "Runs multiple simulations and generates an aggregate report" mainClass = "com.github.benmanes.caffeine.cache.simulator.Simulate" - configureSimulatorTask() } tasks.register("rewrite") { description = "Rewrite traces into the format used by other simulators" mainClass = "com.github.benmanes.caffeine.cache.simulator.parser.Rewriter" - configureSimulatorTask() -} - -eclipse.classpath.file.beforeMerged { - if (this is EclipseClasspath) { - val absolutePath = layout.buildDirectory.dir("generated/sources/annotationProcessor/java/main") - entries.add(SourceFolder(relativePath(absolutePath), "bin/main")) - } } -fun JavaExec.configureSimulatorTask() { - group = "Application" +tasks.withType().configureEach { + group = group ?: "Application" dependsOn(tasks.processResources, tasks.compileJava) classpath(sourceSets["main"].runtimeClasspath) systemProperties(caffeineSystemProperties()) @@ -107,6 +97,13 @@ fun JavaExec.configureSimulatorTask() { jvmArgs(javaExecJvmArgs()) } +eclipse.classpath.file.beforeMerged { + if (this is EclipseClasspath) { + val absolutePath = layout.buildDirectory.dir("generated/sources/annotationProcessor/java/main") + entries.add(SourceFolder(relativePath(absolutePath), "bin/main")) + } +} + abstract class Simulate @Inject constructor( @Internal val projectLayout: ProjectLayout) : JavaExec() { @Input @Option(option = "maximumSize", description = "The maximum sizes")