Stabilize iterators, fix StackOverflowError, and clean up legacy dependencies #253
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of Changes
1. Fixed
StackOverflowErrorinMetricAgeOffIterator(#150)The
seekIfNecessarymethod previously used recursion to skip aged-off data.In scenarios with a large number of skipped keys, this caused a
StackOverflowError.The method was refactored to use a robust
whileloop instead of recursion.MetricAgeOffIterator.java
The test suite relied on System.currentTimeMillis() for data generation, which resulted in non-deterministic failures depending on execution timing.
This was fixed by replacing dynamic timestamps with a fixed base timestamp to ensure reproducibility.
TimeSeriesGroupingIteratorTest.java
The project has fully transitioned to ClassGraph.
As a result, the unused version.fast-classpath-scanner property was removed from the root pom.xml.
pom.xml
Verification Results :
Code Review :
Verified that the StackOverflowError fix eliminates all recursive calls from the skipping logic.
Confirmed that test stabilization uses fixed timestamps across all relevant test methods.