Skip to content

Java 17 - #2

Closed
astubbs wants to merge 23 commits into
masterfrom
java-17
Closed

Java 17#2
astubbs wants to merge 23 commits into
masterfrom
java-17

Conversation

@astubbs

@astubbs astubbs commented May 5, 2022

Copy link
Copy Markdown
Owner

No description provided.

Comment thread pom.xml
</dependency>

<!-- Build dependency -->
<dependency>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

possible to use old path version instead?

@astubbs astubbs left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...

@astubbs astubbs closed this May 9, 2022
@astubbs
astubbs deleted the java-17 branch May 9, 2022 14:30
astubbs added a commit that referenced this pull request Apr 16, 2026
Root-causes rather than excludes. Two categories of real test bugs that
PIT's slower instrumented JVM and different test ordering surfaced:

1. Broken teardown override hiding base-class cleanup.
   ParallelEoSSStreamProcessorRebalancedTest overrode @AfterEach close()
   with an empty body. Each parameterised invocation created a new
   ParallelEoSStreamProcessor that was never closed and never triggered
   the base class's Awaitility.reset(). By invocation #2, accumulated
   resource pressure broke timing. Fix: delete the override so the base
   class's close() runs.

2. Standalone tests skipping base-class cleanup + tight margins.
   MockConsumerTestWithSaslAuthenticationException and ProducerManagerTest
   don't extend AbstractParallelEoSStreamProcessorTestBase, so they got
   no Awaitility.reset() or pc cleanup. The SASL test additionally mutated
   the global (shaded) Awaitility default timeout without resetting.
   Fixes:
   - MockConsumerTestWithSaslAuthenticationException: scope timeout
     locally (atMost(90s)) instead of setDefaultTimeout, and add
     @AfterEach closing parallelConsumer.
   - ProducerManagerTest: add @AfterEach with Awaitility.reset();
     bump commitLockAcquisitionTimeout 2s→10s; give the failing test's
     three bare await() calls and BlockedThreadAsserter explicit 20s
     timeouts instead of the 10s default (too tight under PIT).

3. PCMetricsTest.metricsRegisterBinding - two bare await() calls (lines
   94, 180) used Awaitility's 10s default, too tight for 1500 records
   through PC's pipeline under PIT instrumentation. Bumped to 120s to
   match the atMost budgets already used elsewhere in the same method.

Also drops -DexcludedTestClasses from the PIT maven command now that all
four tests pass their baseline. Base-class @AfterEach Awaitility.reset()
stays as a general leakage guard.

Verified all four classes' tests pass locally under Surefire
(10 tests, 0 failures, 1m 19s). PIT baseline will be verified by CI.

Closes #39

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
astubbs added a commit that referenced this pull request Apr 20, 2026
Root-causes rather than excludes. Two categories of real test bugs that
PIT's slower instrumented JVM and different test ordering surfaced:

1. Broken teardown override hiding base-class cleanup.
   ParallelEoSSStreamProcessorRebalancedTest overrode @AfterEach close()
   with an empty body. Each parameterised invocation created a new
   ParallelEoSStreamProcessor that was never closed and never triggered
   the base class's Awaitility.reset(). By invocation #2, accumulated
   resource pressure broke timing. Fix: delete the override so the base
   class's close() runs.

2. Standalone tests skipping base-class cleanup + tight margins.
   MockConsumerTestWithSaslAuthenticationException and ProducerManagerTest
   don't extend AbstractParallelEoSStreamProcessorTestBase, so they got
   no Awaitility.reset() or pc cleanup. The SASL test additionally mutated
   the global (shaded) Awaitility default timeout without resetting.
   Fixes:
   - MockConsumerTestWithSaslAuthenticationException: scope timeout
     locally (atMost(90s)) instead of setDefaultTimeout, and add
     @AfterEach closing parallelConsumer.
   - ProducerManagerTest: add @AfterEach with Awaitility.reset();
     bump commitLockAcquisitionTimeout 2s→10s; give the failing test's
     three bare await() calls and BlockedThreadAsserter explicit 20s
     timeouts instead of the 10s default (too tight under PIT).

3. PCMetricsTest.metricsRegisterBinding - two bare await() calls (lines
   94, 180) used Awaitility's 10s default, too tight for 1500 records
   through PC's pipeline under PIT instrumentation. Bumped to 120s to
   match the atMost budgets already used elsewhere in the same method.

Also drops -DexcludedTestClasses from the PIT maven command now that all
four tests pass their baseline. Base-class @AfterEach Awaitility.reset()
stays as a general leakage guard.

Verified all four classes' tests pass locally under Surefire
(10 tests, 0 failures, 1m 19s). PIT baseline will be verified by CI.

Closes #39

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
astubbs added a commit that referenced this pull request Jul 29, 2026
The docstring claimed the test verified the #57 OffsetMapCodecManager caching as well as the confluentinc#859 Set de-dup, but it only guards the de-dup. Confirmed by experiment: reverting the caching (Set intact) leaves it green, while reverting Set->List makes it fail. The caching effect is masked - the Set already collapses the duplicate registrations, and PartitionState constructs its own per-assignment OffsetMapCodecManager registering the same fixed-id meter regardless. Rewrite the docstring to scope it to the confluentinc#859 de-dup and explain why the caching cannot be asserted here; record in docs/refactoring.md that the caching lacks isolated coverage (no construction seam; redundant for the leak). Doc-only; test still green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
astubbs added a commit that referenced this pull request Aug 7, 2026
The reference gate requires any #NNN below the threshold to name its repo,
because the fork's numbering sits entirely inside upstream's range and a bare
number is a coin flip. It checks added lines only, so it never fired on text
nobody was editing - leaving the convention true of the files the original
work touched and false of the rest of the tree.

Two passes, on the same lines and so landing together:

- 366 bare references gain their repo. All 77 distinct numbers were resolved
  against BOTH repos first: 62 of them exist in each, meaning different
  things, so the classification is per-occurrence rather than per-number.
  #188 and #195 are fork mirror issues in the release notes
  while confluentinc#188 and confluentinc#195 are the upstream bugs cited in
  test comments in the same tree.
- 24 `upstream #NNN` uses become the owner form. That form passed the gate but
  names a relationship rather than a repository, and this fork is itself
  upstream to anyone who forks it.

Three sets are deliberately NOT prefixed, because they are not references:
author ordinals ("run #1", "produce #1/#2", "NUDGE #1/#2") annotating log
excerpts, reworded to plain numbers; the changelog gate's fixture, which
asserts that a *bare* #NN is not a citation and would have been destroyed by
qualifying it, so it moves above the threshold as a fake #999104; and
upstream-pr-analysis.adoc, which is exempt and written entirely in upstream
terms.

README link text keeps its qualifier even though the URL beside it already
names the repo - the gate can see a link target, a reader cannot, and this
fork has its own #12. Quoted upstream titles keep the quotation intact with
the number appended rather than having the owner inserted mid-title. README
is generated: the edit is in src/docs/README_TEMPLATE.adoc.

@tag("confluentinc#355") becomes @tag("confluentinc#355"). Verified nothing selects on
that tag - no pom, workflow or script filters it - and both classes still
collect and pass.

The 14 upstream-derived Java files gain the "Modifications Copyright" line the
provenance-aware header check requires of any file changed since the fork
point.

docs/inflight/next-qualify-remaining-refs.md is deleted: this is everything it
tracked, and in-flight files do not outlive their work.

No behaviour change.
astubbs added a commit that referenced this pull request Aug 7, 2026
The reference gate requires any #NNN below the threshold to name its repo,
because the fork's numbering sits entirely inside upstream's range and a bare
number is a coin flip. It checks added lines only, so it never fired on text
nobody was editing - leaving the convention true of the files the original
work touched and false of the rest of the tree.

Two passes, on the same lines and so landing together:

- 366 bare references gain their repo. All 77 distinct numbers were resolved
  against BOTH repos first: 62 of them exist in each, meaning different
  things, so the classification is per-occurrence rather than per-number.
  #188 and #195 are fork mirror issues in the release notes
  while confluentinc#188 and confluentinc#195 are the upstream bugs cited in
  test comments in the same tree.
- 24 `upstream #NNN` uses become the owner form. That form passed the gate but
  names a relationship rather than a repository, and this fork is itself
  upstream to anyone who forks it.

Three sets are deliberately NOT prefixed, because they are not references:
author ordinals ("run #1", "produce #1/#2", "NUDGE #1/#2") annotating log
excerpts, reworded to plain numbers; the changelog gate's fixture, which
asserts that a *bare* #NN is not a citation and would have been destroyed by
qualifying it, so it moves above the threshold as a fake #999104; and
upstream-pr-analysis.adoc, which is exempt and written entirely in upstream
terms.

README link text keeps its qualifier even though the URL beside it already
names the repo - the gate can see a link target, a reader cannot, and this
fork has its own #12. Quoted upstream titles keep the quotation intact with
the number appended rather than having the owner inserted mid-title. README
is generated: the edit is in src/docs/README_TEMPLATE.adoc.

@tag("confluentinc#355") becomes @tag("confluentinc#355"). Verified nothing selects on
that tag - no pom, workflow or script filters it - and both classes still
collect and pass.

The 14 upstream-derived Java files gain the "Modifications Copyright" line the
provenance-aware header check requires of any file changed since the fork
point.

docs/inflight/next-qualify-remaining-refs.md is deleted: this is everything it
tracked, and in-flight files do not outlive their work.

No behaviour change.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant