From d0cb272de94152eecf411d2054027a2914af06b6 Mon Sep 17 00:00:00 2001 From: Jordan Padams Date: Fri, 20 Mar 2026 08:52:39 -0700 Subject: [PATCH] Fix misleading 'XML could not be parsed.' message for directories Report.lidvid() was returning 'XML could not be parsed.' as its default value, which was shown for any non-label target (e.g. directories) that cannot have XML to parse. Now returns empty string for non-labels so no parenthetical is shown, reserves 'LIDVID could not be extracted.' for actual label files where LIDVID extraction fails, and FullReport skips the parenthetical entirely when lidvid is empty. Fixes #1510 Co-Authored-By: Claude Sonnet 4.6 --- .../java/gov/nasa/pds/validate/report/FullReport.java | 9 ++++++--- src/main/java/gov/nasa/pds/validate/report/Report.java | 4 +++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/gov/nasa/pds/validate/report/FullReport.java b/src/main/java/gov/nasa/pds/validate/report/FullReport.java index 1e27ff528..7485053cd 100644 --- a/src/main/java/gov/nasa/pds/validate/report/FullReport.java +++ b/src/main/java/gov/nasa/pds/validate/report/FullReport.java @@ -69,9 +69,12 @@ protected void append(Status status, String lidvid, String target) { this.getWriter().print(status.getName()); this.getWriter().print(": "); this.getWriter().print(target); - this.getWriter().print(" ("); - this.getWriter().print(lidvid); - this.getWriter().println(")"); + if (!lidvid.isEmpty()) { + this.getWriter().print(" ("); + this.getWriter().print(lidvid); + this.getWriter().print(")"); + } + this.getWriter().println(); } @Override diff --git a/src/main/java/gov/nasa/pds/validate/report/Report.java b/src/main/java/gov/nasa/pds/validate/report/Report.java index 2c5eeb73d..050845abc 100644 --- a/src/main/java/gov/nasa/pds/validate/report/Report.java +++ b/src/main/java/gov/nasa/pds/validate/report/Report.java @@ -300,13 +300,15 @@ final public void stopBody() { this.end (Block.BODY); } private String lidvid (URI target) { - String result = "XML could not be parsed."; + String result = ""; try { if (target != null && TargetExaminer.isTargetALabel(target.toURL())) { List parts = TargetExaminer.getTargetContent(target.toURL(), "//Identification_Area", "logical_identifier", "version_id"); if (parts.size() == 2) { result = parts.get(0) + "::" + parts.get(1); + } else { + result = "LIDVID could not be extracted."; } } } catch (IllegalArgumentException e) {