From 0cd751ffed6252bbbde5a633fe6af647a92b5046 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 27 Feb 2026 07:02:17 +0000 Subject: [PATCH 1/2] Initial plan From d431245a4844a72be40f6317fb32473d8bcbbc03 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 27 Feb 2026 07:05:21 +0000 Subject: [PATCH 2/2] fix: preserve user-requested field order in AnnotationSourceTSV by iterating over fieldNames.split() instead of HashMap keyset Co-authored-by: holmeso <7066552+holmeso@users.noreply.github.com> --- .../edu/qimr/qannotate/nanno/AnnotationSourceTSV.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/qannotate/src/au/edu/qimr/qannotate/nanno/AnnotationSourceTSV.java b/qannotate/src/au/edu/qimr/qannotate/nanno/AnnotationSourceTSV.java index 41e20e907..b5cba50b7 100644 --- a/qannotate/src/au/edu/qimr/qannotate/nanno/AnnotationSourceTSV.java +++ b/qannotate/src/au/edu/qimr/qannotate/nanno/AnnotationSourceTSV.java @@ -49,11 +49,12 @@ public AnnotationSourceTSV(RecordReader reader, int chrPositionInRecord, if (headerNameAndPosition.isEmpty()) { throw new IllegalArgumentException("Could not find requested fields (" + fieldNames + ") in header: " + headerLine); } - // precompute arrays for fast extraction - this.fieldNames = headerNameAndPosition.keySet().toArray(new String[0]); - this.fieldPositions = new int[this.fieldNames.length]; - for (int i = 0; i < this.fieldNames.length; i++) { - this.fieldPositions[i] = headerNameAndPosition.get(this.fieldNames[i]); + // precompute arrays for fast extraction, preserving user-requested field order + String[] requestedFields = fieldNames.split(","); + this.fieldNames = requestedFields; + this.fieldPositions = new int[requestedFields.length]; + for (int i = 0; i < requestedFields.length; i++) { + this.fieldPositions[i] = headerNameAndPosition.get(requestedFields[i]); } }