Field name, event id and value generators for the test framework. These
depend only on the util package, so they carry no metadata coupling and
can be reviewed on their own.
---------
Co-authored-by: Claude Opus 5 <[email protected]>
toString() built its mini-maps into instance fields, but the metadata
helper cache hands the same TypeMetadata to every concurrent query with
matching auths, so the first serializations after a cache refresh raced
on unsynchronized TreeMaps. They are now built locally and published
once.
Where type metadata is missing or malformed, fail instead of degrading:
folding away an absent ingest type, or parsing a corrupt mini-map, would
normalize values against the wrong types and silently drop valid
results. An empty instance also serialized to an unterminated string the
tablet servers could not parse.
Planning waits could only iterate on a null result and then spun on a
completed future forever, so they now fail fast, and the iterator
setting poll blocks on its future rather than busy-waiting on isDone().
---------
Co-authored-by: Claude Opus 5 <[email protected]>
Make the following changes to improve the thread-safety of
QueryUncaughtExceptionHandler, and add test coverage.
- Generate a sequence for each call to uncaughtException() to help
ensure the first call with a non-null Throwable wins the race,
regardless of which thread's CAS operation completes first.
- In uncaughtException(), atomically update the sequence number, thread,
and throwable at the same time.
- Use an efficient, thread-safe collection for storing and retrieving
messages.
---------
Co-authored-by: Moriarty <[email protected]>
First half of the framework's foundation: the new
core/datawave-core-test module plus the util package it is built on.
Split from the generators so each half stays independently reviewable.
---------
Co-authored-by: Claude Opus 5 <[email protected]>
The test compiled roughly a quarter million patterns from an unseeded
source, so a failure could not be reproduced. A fixed seed, overridable
with datawave.test.seed, now covers ten thousand cases
deterministically.
Co-authored-by: Claude Opus 5 <[email protected]>
A tablet server returns whatever the topmost user iterator emits;
nothing between the stack and the client tests keys against the range.
Filtering here hid iterators that emit outside their seek range, and
disagreed with InMemoryBatchScanner, which never filtered.
Co-authored-by: Claude Opus 5 <[email protected]>
- Implements FederatedAnnotationReader that can read from multiple
sources and reconcile results.
- Removes unfinished write implementations from AnnotationManagerBean
due to new write path design via microservices.
- Removes separate AnnotationSourceReader/Writer interfaces and moved
source specific methods to AnnotationReader/Writer to eliminate
complexity.
- Added truthmark cases to AnnotationManagerBeanFunctionalTest.
- Added assertion to compare two annotation lists to ensure equivalence.
Co-authored-by: Laura Schanno <[email protected]>
2.1.5 removed IteratorConfigUtil.generateInitialTableProperties(boolean)
in favor of separate accessors for the default iterators and the key
size constraint, so InMemoryTable now assembles the initial table
properties itself, applying the versioning iterators only when
limitVersion is set.
Co-authored-by: Claude Opus 5 <[email protected]>
datawave.data.ColumnFamilyConstants is deprecated for removal; switch
all consumers to datawave.table.constants.MetadataColumnFamilyConstants
and add datawave-core-tables as a dependency where it wasn't already on
the classpath.
---------
Co-authored-by: Claude Sonnet 5 <[email protected]>
A core module that creates a shard index needs GlobalIndexUidAggregator
and TotalAggregatingIterator to scan it: the aggregator is what merges
the single-uid entries that collide within a shard, and a scan of a
table configured with it fails to load the class otherwise. Both lived
only in warehouse/ingest-core, which a core module cannot depend on.
The seven files are byte-identical to their originals in
warehouse/ingest-core and warehouse/core, so a diff detects drift.
Co-authored-by: Claude Opus 5 <[email protected]>
Migrate most instances of Scanner to using a ScannerBuilder. Another
brick in the road to native scan server support.
---------
Co-authored-by: Claude Sonnet 4.6 <[email protected]>
Co-authored-by: Laura Schanno <[email protected]>
Co-authored-by: alerman <[email protected]>