From 477156b3843213869f9f3ddb65f61a4feb59aeb9 Mon Sep 17 00:00:00 2001 From: Zak Shearman <34372536+ZakShearman@users.noreply.github.com> Date: Mon, 29 Dec 2025 15:25:36 +0000 Subject: [PATCH 1/5] fix: NullPointerException on first feature flag retrieval --- build.gradle.kts | 1 + settings.gradle.kts | 3 +++ .../net/hollowcube/posthog/PostHogClientImpl.java | 11 ++++++----- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 05bb9cb..f4ddc41 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,6 +30,7 @@ java { toolchain { languageVersion = JavaLanguageVersion.of(21) + vendor.set(JvmVendorSpec.GRAAL_VM) nativeImageCapable = true } } diff --git a/settings.gradle.kts b/settings.gradle.kts index 1a2bc6a..a1a10d3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,2 +1,5 @@ rootProject.name = "posthog-java" +plugins { + id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" +} diff --git a/src/main/java/net/hollowcube/posthog/PostHogClientImpl.java b/src/main/java/net/hollowcube/posthog/PostHogClientImpl.java index 4ddd1f1..736e61a 100644 --- a/src/main/java/net/hollowcube/posthog/PostHogClientImpl.java +++ b/src/main/java/net/hollowcube/posthog/PostHogClientImpl.java @@ -86,17 +86,18 @@ public final class PostHogClientImpl implements PostHogClient { this.setPropertyIfAbsent(this.defaultEventProperties, LIB_VERSION, DEFAULT_LIBRARY_VERSION); this.eventBatchTimeout = eventBatchTimeout; + this.allowRemoteFeatureFlagEvaluation = allowRemoteFeatureFlagEvaluation; + this.sendFeatureFlagEvents = sendFeatureFlagEvents; + this.featureFlagsRequestTimeout = featureFlagsRequestTimeout; + + this.exceptionMiddleware = exceptionMiddleware; + // Always enable local evaluation with personal api key. if (this.personalApiKey != null) { this.featureFlagFetchTimer = new Timer(this::loadRemoteFeatureFlags, featureFlagsPollingInterval); } else if (!allowRemoteFeatureFlagEvaluation) { throw new IllegalArgumentException("Personal API key is required when remote feature flag evaluation is disabled"); } else this.featureFlagFetchTimer = null; - this.allowRemoteFeatureFlagEvaluation = allowRemoteFeatureFlagEvaluation; - this.sendFeatureFlagEvents = sendFeatureFlagEvents; - this.featureFlagsRequestTimeout = featureFlagsRequestTimeout; - - this.exceptionMiddleware = exceptionMiddleware; } @Override From 477e27290bdb50acb9c7308705089c8faac90d5c Mon Sep 17 00:00:00 2001 From: Zak Shearman <34372536+ZakShearman@users.noreply.github.com> Date: Mon, 29 Dec 2025 15:36:27 +0000 Subject: [PATCH 2/5] fix: revery graalvm vendor set --- build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index f4ddc41..05bb9cb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,7 +30,6 @@ java { toolchain { languageVersion = JavaLanguageVersion.of(21) - vendor.set(JvmVendorSpec.GRAAL_VM) nativeImageCapable = true } } From 7cce901ebd2cfd17d0713cc60f06782b92cc3ea9 Mon Sep 17 00:00:00 2001 From: Zak Shearman <34372536+ZakShearman@users.noreply.github.com> Date: Mon, 29 Dec 2025 15:39:32 +0000 Subject: [PATCH 3/5] fix: screw it --- settings.gradle.kts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index a1a10d3..60340c3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1 @@ rootProject.name = "posthog-java" - -plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" -} From dea2aba9533032018e76452f4659cafc5d28751e Mon Sep 17 00:00:00 2001 From: Zak Shearman <34372536+ZakShearman@users.noreply.github.com> Date: Mon, 29 Dec 2025 15:44:21 +0000 Subject: [PATCH 4/5] fix: try force graal --- .github/workflows/pr.yaml | 8 ++++---- .github/workflows/release.yaml | 4 ++-- build.gradle.kts | 1 + settings.gradle.kts | 4 ++++ 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 64e5462..e29e9fc 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -9,11 +9,11 @@ jobs: uses: actions/checkout@v4 - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v3 - - name: Setup Java - uses: actions/setup-java@v4 + - name: Set up JDK 21 + uses: actions/setup-graalvm@v1 with: - distribution: temurin - java-version: 21 + java-version: '21' + distribution: 'graalvm' - name: Setup Gradle uses: gradle/gradle-build-action@v2 - name: Build diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 8694fc5..863a4c3 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -16,10 +16,10 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up JDK 21 - uses: actions/setup-java@v2 + uses: actions/setup-graalvm@v1 with: java-version: '21' - distribution: 'temurin' + distribution: 'graalvm' - name: Setup Gradle uses: gradle/gradle-build-action@v2 - name: Publish to Sonatype diff --git a/build.gradle.kts b/build.gradle.kts index 05bb9cb..f4ddc41 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,6 +30,7 @@ java { toolchain { languageVersion = JavaLanguageVersion.of(21) + vendor.set(JvmVendorSpec.GRAAL_VM) nativeImageCapable = true } } diff --git a/settings.gradle.kts b/settings.gradle.kts index 60340c3..a1a10d3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1 +1,5 @@ rootProject.name = "posthog-java" + +plugins { + id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" +} From c342152b1bbf5c9e304c574e4508f873e1922bdd Mon Sep 17 00:00:00 2001 From: Zak Shearman <34372536+ZakShearman@users.noreply.github.com> Date: Mon, 29 Dec 2025 15:46:41 +0000 Subject: [PATCH 5/5] fix: I guess that's not the action name... oops --- .github/workflows/pr.yaml | 4 ++-- .github/workflows/release.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index e29e9fc..8c406d0 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -10,10 +10,10 @@ jobs: - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v3 - name: Set up JDK 21 - uses: actions/setup-graalvm@v1 + uses: actions/setup-java@v4 with: - java-version: '21' distribution: 'graalvm' + java-version: '21' - name: Setup Gradle uses: gradle/gradle-build-action@v2 - name: Build diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 863a4c3..0be4533 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -16,10 +16,10 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up JDK 21 - uses: actions/setup-graalvm@v1 + uses: actions/setup-java@v4 with: - java-version: '21' distribution: 'graalvm' + java-version: '21' - name: Setup Gradle uses: gradle/gradle-build-action@v2 - name: Publish to Sonatype