diff --git a/.github/actions/run-gradle/action.yml b/.github/actions/run-gradle/action.yml index 0b463ec204..a7b6e07b62 100644 --- a/.github/actions/run-gradle/action.yml +++ b/.github/actions/run-gradle/action.yml @@ -35,7 +35,7 @@ runs: toolchainVersion=$(grep -oP '(?<=^toolchainVersion=).*' gradle/gradle-daemon-jvm.properties) echo "toolchainVersion=${toolchainVersion}" >> $GITHUB_ENV - name: Set up JDK ${{ env.toolchainVersion }} - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0 + uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0 with: java-version: ${{ env.toolchainVersion }} distribution: temurin @@ -50,7 +50,7 @@ runs: echo "JAVA_VERSION=${{ inputs.java }}" >> $GITHUB_ENV fi - name: Set up JDK - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0 + uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0 with: java-version: ${{ inputs.java == 'GraalVM' && inputs.graal || @@ -67,7 +67,7 @@ runs: echo "JAVA_TOOL_OPTIONS=-Dorg.gradle.workers.max=$((2 * $(nproc)))" >> $GITHUB_ENV echo "ORG_GRADLE_PROJECT_org.gradle.java.installations.auto-download=false" >> $GITHUB_ENV - name: Setup Gradle - uses: gradle/actions/setup-gradle@cc4fc85e6b35bafd578d5ffbc76a5518407e1af0 # v4.2.1 + uses: gradle/actions/setup-gradle@0bdd871935719febd78681f197cd39af5b6e16a6 # v4.2.2 with: add-job-summary: never cache-read-only: false diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c8acf43346..b2e7325574 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -189,7 +189,7 @@ jobs: find . -path */jacoco/*.exec -o -path */results/*.xml | tar czf ${{ env.ARTIFACT_NAME }}.tar.gz --files-from - - name: Upload test results - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 if: always() && (env.JAVA_VERSION == env.PUBLISH_JDK) with: retention-days: 1 @@ -250,7 +250,7 @@ jobs: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} continue-on-error: true - name: Publish to Codecov - uses: codecov/codecov-action@7f8b4b4bde536c465e797be725718b88c5d95e0e # v5.1.1 + uses: codecov/codecov-action@1e68e06f1dbfde0e4cefc87efeba9e4643565303 # v5.1.2 with: token: ${{ secrets.CODECOV_TOKEN }} - name: Publish to Codacy diff --git a/.github/workflows/codacy.yml b/.github/workflows/codacy.yml index b5b9b73ff9..6d1e02a22b 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@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 + uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0 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 4eee51d21c..e81a566879 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -57,10 +57,10 @@ jobs: java: ${{ env.JAVA_VERSION }} cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - name: Initialize CodeQL - uses: github/codeql-action/init@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 + uses: github/codeql-action/init@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0 with: languages: java - name: Autobuild - uses: github/codeql-action/autobuild@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 + uses: github/codeql-action/autobuild@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 + uses: github/codeql-action/analyze@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0 diff --git a/.github/workflows/dependency-check.yml b/.github/workflows/dependency-check.yml index 7fc6b38fec..28f31d61b5 100644 --- a/.github/workflows/dependency-check.yml +++ b/.github/workflows/dependency-check.yml @@ -61,7 +61,7 @@ jobs: with: files: build/reports/dependency-check-report.sarif - name: Upload result to GitHub Code Scanning - uses: github/codeql-action/upload-sarif@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 + uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0 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 59d087f35f..aafa88acbf 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@cc4fc85e6b35bafd578d5ffbc76a5518407e1af0 # v4.2.1 + uses: gradle/actions/dependency-submission@0bdd871935719febd78681f197cd39af5b6e16a6 # v4.2.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 953586d30d..844372bc89 100644 --- a/.github/workflows/dependency-submission-pr-submit.yml +++ b/.github/workflows/dependency-submission-pr-submit.yml @@ -33,12 +33,12 @@ jobs: services.gradle.org:443 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up JDK ${{ env.JAVA_VERSION }} - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0 + uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0 with: java-version: ${{ env.JAVA_VERSION }} distribution: temurin - name: Submit Dependency Graph - uses: gradle/actions/dependency-submission@cc4fc85e6b35bafd578d5ffbc76a5518407e1af0 # v4.2.1 + uses: gradle/actions/dependency-submission@0bdd871935719febd78681f197cd39af5b6e16a6 # v4.2.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 873f076c7c..513de8d5e5 100644 --- a/.github/workflows/dependency-submission.yml +++ b/.github/workflows/dependency-submission.yml @@ -33,11 +33,11 @@ jobs: services.gradle.org:443 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up JDK ${{ env.JAVA_VERSION }} - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0 + uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0 with: java-version: ${{ env.JAVA_VERSION }} distribution: temurin - name: Submit Dependency Graph - uses: gradle/actions/dependency-submission@cc4fc85e6b35bafd578d5ffbc76a5518407e1af0 # v4.2.1 + uses: gradle/actions/dependency-submission@0bdd871935719febd78681f197cd39af5b6e16a6 # v4.2.2 with: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} diff --git a/.github/workflows/devskim.yml b/.github/workflows/devskim.yml index 8eadd521e0..d9e6bdfd48 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@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 + uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0 with: sarif_file: devskim-results.sarif diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index 5e1be83577..3f3b921158 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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - uses: gradle/actions/wrapper-validation@cc4fc85e6b35bafd578d5ffbc76a5518407e1af0 # v4.2.1 + - uses: gradle/actions/wrapper-validation@0bdd871935719febd78681f197cd39af5b6e16a6 # v4.2.2 diff --git a/.github/workflows/qodana.yml b/.github/workflows/qodana.yml index e89214c512..8e700e2578 100644 --- a/.github/workflows/qodana.yml +++ b/.github/workflows/qodana.yml @@ -63,13 +63,13 @@ jobs: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} arguments: check -x test - name: Qodana - Code Inspection - uses: JetBrains/qodana-action@b46847499776819f38aad1d4298e16e52f17c4c5 # v2024.3.2 + uses: JetBrains/qodana-action@c9aae269126c597c4332ef4b11f0547262f240b5 # v2024.3.3 env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} with: upload-result: true github-token: ${{ secrets.GITHUB_TOKEN }} - name: Upload SARIF file for GitHub Advanced Security Dashboard - uses: github/codeql-action/upload-sarif@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 + uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0 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 f829b7fcda..a06f1ee94b 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -52,12 +52,12 @@ jobs: results_file: results.sarif repo_token: ${{ secrets.SCORECARD_READ_TOKEN }} - name: Upload artifact - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 with: name: SARIF file path: results.sarif retention-days: 5 - name: Upload to code-scanning - uses: github/codeql-action/upload-sarif@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 + uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0 with: sarif_file: results.sarif diff --git a/.github/workflows/semgrep.yml b/.github/workflows/semgrep.yml index 0effa0228a..547e493c5c 100644 --- a/.github/workflows/semgrep.yml +++ b/.github/workflows/semgrep.yml @@ -30,11 +30,8 @@ jobs: uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0 with: files: results.sarif - - name: Remove duplicate rules - 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@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 + uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0 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 a628c2fc4f..6dd58346c0 100644 --- a/.github/workflows/snyk.yml +++ b/.github/workflows/snyk.yml @@ -42,7 +42,7 @@ jobs: with: files: snyk.sarif - name: Upload result to GitHub Code Scanning - uses: github/codeql-action/upload-sarif@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 + uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0 if: steps.check_files.outputs.files_exists == 'true' with: sarif_file: snyk.sarif diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml index f17c4f498e..679c216263 100644 --- a/.github/workflows/spelling.yml +++ b/.github/workflows/spelling.yml @@ -34,4 +34,4 @@ jobs: objects.githubusercontent.com:443 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Typos - uses: crate-ci/typos@d1c850b2b5d502763520c25fb4a6a1128ad99bd9 # v1.28.3 + uses: crate-ci/typos@9d890159570d5018df91fedfa40b4730cd4a81b1 # v1.28.4 diff --git a/.github/workflows/trivy.yml b/.github/workflows/trivy.yml index 13dd9cf96c..07e446400a 100644 --- a/.github/workflows/trivy.yml +++ b/.github/workflows/trivy.yml @@ -36,7 +36,7 @@ jobs: with: files: results.sarif - name: Upload result to GitHub Code Scanning - uses: github/codeql-action/upload-sarif@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 + uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0 if: steps.check_files.outputs.files_exists == 'true' with: sarif_file: results.sarif diff --git a/caffeine/build.gradle.kts b/caffeine/build.gradle.kts index b923f49914..f017d05c73 100644 --- a/caffeine/build.gradle.kts +++ b/caffeine/build.gradle.kts @@ -36,12 +36,12 @@ dependencies { testImplementation(libs.ycsb) { isTransitive = false } - testImplementation(libs.jazzer) testImplementation(libs.picocli) testImplementation(libs.jctools) testImplementation(libs.fastutil) testImplementation(libs.lincheck) testImplementation(libs.commons.lang3) + testImplementation(libs.bundles.jazzer) testImplementation(libs.bundles.slf4j.test) testImplementation(libs.commons.collections4) testImplementation(libs.commons.collections4) { diff --git a/caffeine/src/main/java/com/github/benmanes/caffeine/cache/CaffeineSpec.java b/caffeine/src/main/java/com/github/benmanes/caffeine/cache/CaffeineSpec.java index fb67357a1f..397efb2761 100644 --- a/caffeine/src/main/java/com/github/benmanes/caffeine/cache/CaffeineSpec.java +++ b/caffeine/src/main/java/com/github/benmanes/caffeine/cache/CaffeineSpec.java @@ -22,6 +22,7 @@ import static java.util.Objects.requireNonNull; import java.time.Duration; +import java.time.format.DateTimeParseException; import java.util.Objects; import java.util.concurrent.TimeUnit; @@ -145,7 +146,7 @@ Caffeine toBuilder() { public static CaffeineSpec parse(String specification) { var spec = new CaffeineSpec(specification); for (String option : specification.split(SPLIT_OPTIONS)) { - spec.parseOption(option.trim()); + spec.parseOption(option.strip()); } return spec; } @@ -162,8 +163,8 @@ void parseOption(String option) { requireArgument(keyAndValue.length <= 2, "key-value pair %s with more than one equals sign", option); - String key = keyAndValue[0].trim(); - String value = (keyAndValue.length == 1) ? null : keyAndValue[1].trim(); + String key = keyAndValue[0].strip(); + String value = (keyAndValue.length == 1) ? null : keyAndValue[1].strip(); configure(option, key, value); } @@ -298,13 +299,27 @@ static Duration parseDuration(String key, @Nullable String value) { @SuppressWarnings("NullAway") boolean isIsoFormat = value.contains("p") || value.contains("P"); - if (isIsoFormat) { - Duration duration = Duration.parse(value); - requireArgument(!duration.isNegative(), - "key %s invalid format; was %s, but the duration cannot be negative", key, value); - return duration; + Duration duration = isIsoFormat + ? parseIsoDuration(key, value) + : parseSimpleDuration(key, value); + requireArgument(!duration.isNegative(), + "key %s invalid format; was %s, but the duration cannot be negative", key, value); + return duration; + + } + + /** Returns a parsed duration using the ISO-8601 format. */ + static Duration parseIsoDuration(String key, String value) { + try { + return Duration.parse(value); + } catch (DateTimeParseException e) { + throw new IllegalArgumentException(String.format(US, + "key %s invalid format; was %s, but the duration cannot be parsed", key, value), e); } + } + /** Returns a parsed duration using the simple time unit format. */ + static Duration parseSimpleDuration(String key, String value) { @SuppressWarnings("NullAway") long duration = parseLong(key, value.substring(0, value.length() - 1)); TimeUnit unit = parseTimeUnit(key, value); diff --git a/caffeine/src/test/java/com/github/benmanes/caffeine/cache/CaffeineSpecTest.java b/caffeine/src/test/java/com/github/benmanes/caffeine/cache/CaffeineSpecTest.java index 4e56554fdc..183b7f966a 100644 --- a/caffeine/src/test/java/com/github/benmanes/caffeine/cache/CaffeineSpecTest.java +++ b/caffeine/src/test/java/com/github/benmanes/caffeine/cache/CaffeineSpecTest.java @@ -65,12 +65,35 @@ public void parseLong_exception() { } @Test - public void parseTimeUnit_exception() { - assertThrows(IllegalArgumentException.class, () -> CaffeineSpec.parseTimeUnit("key", "value")); + public void parseDuration_exception() { + assertThrows(IllegalArgumentException.class, + () -> CaffeineSpec.parseDuration("key", "value")); + assertThrows(IllegalArgumentException.class, + () -> CaffeineSpec.parseTimeUnit("key", "value")); + assertThrows(IllegalArgumentException.class, + () -> CaffeineSpec.parseIsoDuration("key", "value")); + assertThrows(IllegalArgumentException.class, + () -> CaffeineSpec.parseSimpleDuration("key", "value")); + + // ISO + assertThrows(IllegalArgumentException.class, + () -> CaffeineSpec.parseDuration("key", "-PT7H3M")); + assertThrows(IllegalArgumentException.class, + () -> CaffeineSpec.parseDuration("key", "p3xyz")); + + // Simple + assertThrows(IllegalArgumentException.class, + () -> CaffeineSpec.parseDuration("key", "-1s")); + assertThrows(IllegalArgumentException.class, + () -> CaffeineSpec.parseDuration("key", "xyzs")); + assertThrows(IllegalArgumentException.class, + () -> CaffeineSpec.parseDuration("key", "1xyzs")); } @Test + @SuppressWarnings("NullAway") public void parse_exception() { + assertThrows(NullPointerException.class, () -> CaffeineSpec.parse(null)); assertThrows(IllegalArgumentException.class, () -> CaffeineSpec.parse("=")); assertThrows(IllegalArgumentException.class, () -> CaffeineSpec.parse("==")); assertThrows(IllegalArgumentException.class, () -> CaffeineSpec.parse("key=")); diff --git a/caffeine/src/test/java/com/github/benmanes/caffeine/cache/LinkedDequeSubject.java b/caffeine/src/test/java/com/github/benmanes/caffeine/cache/LinkedDequeSubject.java index f1766c5e76..da9e6ea065 100644 --- a/caffeine/src/test/java/com/github/benmanes/caffeine/cache/LinkedDequeSubject.java +++ b/caffeine/src/test/java/com/github/benmanes/caffeine/cache/LinkedDequeSubject.java @@ -38,7 +38,6 @@ final class LinkedDequeSubject extends CollectionSubject { private LinkedDequeSubject(FailureMetadata metadata, @Nullable LinkedDeque subject) { super(metadata, subject); this.actual = requireNonNull((LinkedDeque) subject); - } public static Factory> deque() { diff --git a/caffeine/src/test/java/com/github/benmanes/caffeine/fuzz/CaffeineSpecFuzzer.java b/caffeine/src/test/java/com/github/benmanes/caffeine/fuzz/CaffeineSpecFuzzer.java index e42a1e9d0f..67d816986a 100644 --- a/caffeine/src/test/java/com/github/benmanes/caffeine/fuzz/CaffeineSpecFuzzer.java +++ b/caffeine/src/test/java/com/github/benmanes/caffeine/fuzz/CaffeineSpecFuzzer.java @@ -15,8 +15,8 @@ */ package com.github.benmanes.caffeine.fuzz; -import com.code_intelligence.jazzer.api.FuzzedDataProvider; import com.code_intelligence.jazzer.junit.FuzzTest; +import com.code_intelligence.jazzer.mutation.annotation.NotNull; import com.github.benmanes.caffeine.cache.CaffeineSpec; /** @@ -28,9 +28,9 @@ public final class CaffeineSpecFuzzer { @FuzzTest(maxDuration = "5m") @SuppressWarnings("CheckReturnValue") - public void parse(FuzzedDataProvider data) { + public void parse(@NotNull String specification) { try { - CaffeineSpec.parse(data.consumeRemainingAsString()); + CaffeineSpec.parse(specification); } catch (IllegalArgumentException expected) { /* ignored */ } } } diff --git a/examples/coalescing-bulkloader-reactor/gradle/libs.versions.toml b/examples/coalescing-bulkloader-reactor/gradle/libs.versions.toml index 85ee0daab6..5415fed147 100644 --- a/examples/coalescing-bulkloader-reactor/gradle/libs.versions.toml +++ b/examples/coalescing-bulkloader-reactor/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] caffeine = "3.1.8" -junit = "5.11.3" +junit = "5.11.4" reactor = "3.7.1" truth = "1.4.4" versions = "0.51.0" diff --git a/examples/coalescing-bulkloader-reactor/gradle/wrapper/gradle-wrapper.properties b/examples/coalescing-bulkloader-reactor/gradle/wrapper/gradle-wrapper.properties index c085078342..e926ac106f 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.12-rc-1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/examples/graal-native/gradle/libs.versions.toml b/examples/graal-native/gradle/libs.versions.toml index 464d9dd31b..610926466a 100644 --- a/examples/graal-native/gradle/libs.versions.toml +++ b/examples/graal-native/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] caffeine = "3.1.8" graal = "0.10.4" -junit = "5.11.3" +junit = "5.11.4" truth = "1.4.4" versions = "0.51.0" diff --git a/examples/graal-native/gradle/wrapper/gradle-wrapper.properties b/examples/graal-native/gradle/wrapper/gradle-wrapper.properties index c085078342..e926ac106f 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.12-rc-1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/examples/hibernate/gradle/libs.versions.toml b/examples/hibernate/gradle/libs.versions.toml index d92085be1e..13e3044755 100644 --- a/examples/hibernate/gradle/libs.versions.toml +++ b/examples/hibernate/gradle/libs.versions.toml @@ -2,7 +2,7 @@ caffeine = "3.1.8" h2 = "2.3.232" hibernate = "7.0.0.Beta3" -junit = "5.11.3" +junit = "5.11.4" log4j2 = "3.0.0-beta2" truth = "1.4.4" versions = "0.51.0" diff --git a/examples/hibernate/gradle/wrapper/gradle-wrapper.properties b/examples/hibernate/gradle/wrapper/gradle-wrapper.properties index c085078342..e926ac106f 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.12-rc-1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/examples/indexable/gradle/libs.versions.toml b/examples/indexable/gradle/libs.versions.toml index 6c6db0b921..4f53e3cc48 100644 --- a/examples/indexable/gradle/libs.versions.toml +++ b/examples/indexable/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] caffeine = "3.1.8" -guava = "33.3.1-jre" -junit-jupiter = "5.11.3" +guava = "33.4.0-jre" +junit-jupiter = "5.11.4" truth = "1.4.4" versions = "0.51.0" diff --git a/examples/indexable/gradle/wrapper/gradle-wrapper.properties b/examples/indexable/gradle/wrapper/gradle-wrapper.properties index c085078342..e926ac106f 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.12-rc-1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/examples/resilience-failsafe/gradle/libs.versions.toml b/examples/resilience-failsafe/gradle/libs.versions.toml index 08d4da8973..f31b2bb6b7 100644 --- a/examples/resilience-failsafe/gradle/libs.versions.toml +++ b/examples/resilience-failsafe/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] caffeine = "3.1.8" failsafe = "3.3.2" -junit = "5.11.3" +junit = "5.11.4" truth = "1.4.4" versions = "0.51.0" diff --git a/examples/resilience-failsafe/gradle/wrapper/gradle-wrapper.properties b/examples/resilience-failsafe/gradle/wrapper/gradle-wrapper.properties index c085078342..e926ac106f 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.12-rc-1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/examples/write-behind-rxjava/gradle/libs.versions.toml b/examples/write-behind-rxjava/gradle/libs.versions.toml index 04d06839e9..569bfe4b09 100644 --- a/examples/write-behind-rxjava/gradle/libs.versions.toml +++ b/examples/write-behind-rxjava/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] awaitility = "4.2.2" caffeine = "3.1.8" -junit = "5.11.3" +junit = "5.11.4" rxjava = "3.1.10" versions = "0.51.0" diff --git a/examples/write-behind-rxjava/gradle/wrapper/gradle-wrapper.properties b/examples/write-behind-rxjava/gradle/wrapper/gradle-wrapper.properties index c085078342..e926ac106f 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.12-rc-1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 22aeddf9aa..788db96365 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -33,7 +33,7 @@ findsecbugs = "1.13.0" flip-tables = "1.1.1" forbidden-apis = "3.8" google-java-format = "1.25.2" -guava = "33.3.1-jre" +guava = "33.4.0-jre" guice = "6.0.0" h2 = "2.3.232" hamcrest = "3.0" @@ -47,7 +47,7 @@ jakarta-inject = "2.0.1" jamm = "0.4.0" java-object-layout = "0.17" javapoet = "1.13.0" -jazzer = "0.22.1" +jazzer = "0.23.0" jcache = "1.1.1" jcommander = "1.82" jctools = "4.0.5" @@ -62,7 +62,7 @@ json-bind = "1.0" jsoup = "1.18.3" junit-testng = "1.0.5" junit4 = "4.13.2" -junit5 = "5.11.3" +junit5 = "5.11.4" jvm-dependency-conflict-resolution = "2.1.2" kotlin = "2.1.0" lincheck = "2.34" @@ -77,17 +77,17 @@ osgi-annotations = "1.5.1" osgi-function = "1.2.0" osgi-promise = "1.3.0" pax-exam = "4.14.0" -pax-url = "2.6.14" +pax-url = "2.6.15" picocli = "4.7.6" pmd = "7.8.0" -protobuf = "4.29.1" +protobuf = "4.29.2" slf4j = "2.0.16" slf4j-test = "3.0.1" snakeyaml = "2.3" sonarqube = "6.0.1.5171" spotbugs = "4.8.6" spotbugs-contrib = "7.6.9" -spotbugs-plugin = "6.0.26" +spotbugs-plugin = "6.0.27" stream = "2.9.8" tcache = "2.0.1" testng = "7.10.2" @@ -150,7 +150,8 @@ jakarta-inject = { module = "jakarta.inject:jakarta.inject-api", version.ref = " jamm = { module = "com.github.jbellis:jamm", version.ref = "jamm" } java-object-layout = { module = "org.openjdk.jol:jol-cli", version.ref = "java-object-layout" } javapoet = { module = "com.squareup:javapoet", version.ref = "javapoet" } -jazzer = { module = "com.code-intelligence:jazzer-junit", version.ref = "jazzer" } +jazzer = { module = "com.code-intelligence:jazzer", version.ref = "jazzer" } +jazzer-junit = { module = "com.code-intelligence:jazzer-junit", version.ref = "jazzer" } jcache = { module = "javax.cache:cache-api", version.ref = "jcache" } jcache-guice = { module = "org.jsr107.ri:cache-annotations-ri-guice", version.ref = "jcache" } jcache-tck = { module = "javax.cache:cache-tests", version.ref = "jcache" } @@ -212,6 +213,7 @@ coherence = ["coherence", "json-bind"] constraints = ["bcel", "bouncycastle-jdk18on", "commons-compress", "commons-text", "h2", "httpclient", "guava", "jcommander", "jgit", "jsoup", "protobuf", "snakeyaml"] errorprone-support = ["errorprone-support", "errorprone-support-refaster"] +jazzer = ["jazzer", "jazzer-junit"] junit = ["junit4", "junit5"] junit-engines = ["junit5-vintage", "junit5-testng"] mockito = ["mockito", "mockito-testng"] diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c085078342..e926ac106f 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.12-rc-1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME