This is an automated email from the ASF dual-hosted git repository. kturner pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/elasticity by this push: new 8a30262e28 fixes NPE with system compactions (#4263) 8a30262e28 is described below commit 8a30262e2878bd0d4c3374c06052fc670abba191 Author: Keith Turner <ktur...@apache.org> AuthorDate: Wed Feb 14 18:37:30 2024 -0500 fixes NPE with system compactions (#4263) --- .../accumulo/core/metadata/schema/CompactionMetadata.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/apache/accumulo/core/metadata/schema/CompactionMetadata.java b/core/src/main/java/org/apache/accumulo/core/metadata/schema/CompactionMetadata.java index e3cd1f3347..3d0536d593 100644 --- a/core/src/main/java/org/apache/accumulo/core/metadata/schema/CompactionMetadata.java +++ b/core/src/main/java/org/apache/accumulo/core/metadata/schema/CompactionMetadata.java @@ -54,7 +54,12 @@ public class CompactionMetadata { this.priority = priority; this.cgid = Objects.requireNonNull(ceid); this.propagateDeletes = propagateDeletes; - this.fateId = fateId; + if (kind == CompactionKind.SYSTEM) { + // its ok if this is null for system compactions because its not used. + this.fateId = fateId; + } else { + this.fateId = Objects.requireNonNull(fateId); + } } public Set<StoredTabletFile> getJobFiles() { @@ -112,7 +117,7 @@ public class CompactionMetadata { jData.groupId = cgid.toString(); jData.priority = priority; jData.propDels = propagateDeletes; - jData.fateId = fateId.canonical(); + jData.fateId = fateId == null ? null : fateId.canonical(); return GSON.get().toJson(jData); } @@ -122,7 +127,8 @@ public class CompactionMetadata { return new CompactionMetadata(jData.inputs.stream().map(StoredTabletFile::new).collect(toSet()), StoredTabletFile.of(jData.tmp).getTabletFile(), jData.compactor, CompactionKind.valueOf(jData.kind), jData.priority, - CompactorGroupIdImpl.groupId(jData.groupId), jData.propDels, FateId.from(jData.fateId)); + CompactorGroupIdImpl.groupId(jData.groupId), jData.propDels, + jData.fateId == null ? null : FateId.from(jData.fateId)); } @Override