From 58cecaf6a2763b6fd1d80d558f8479226326e231 Mon Sep 17 00:00:00 2001 From: d-millar <33498836+d-millar@users.noreply.github.com> Date: Wed, 4 Jun 2025 14:44:36 +0000 Subject: [PATCH] GP-5379: fix for file path NPE --- .../launcher/AbstractTraceRmiLaunchOffer.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/Ghidra/Debug/Debugger-rmi-trace/src/main/java/ghidra/app/plugin/core/debug/gui/tracermi/launcher/AbstractTraceRmiLaunchOffer.java b/Ghidra/Debug/Debugger-rmi-trace/src/main/java/ghidra/app/plugin/core/debug/gui/tracermi/launcher/AbstractTraceRmiLaunchOffer.java index 6901d4ecef..63f3015f45 100644 --- a/Ghidra/Debug/Debugger-rmi-trace/src/main/java/ghidra/app/plugin/core/debug/gui/tracermi/launcher/AbstractTraceRmiLaunchOffer.java +++ b/Ghidra/Debug/Debugger-rmi-trace/src/main/java/ghidra/app/plugin/core/debug/gui/tracermi/launcher/AbstractTraceRmiLaunchOffer.java @@ -402,14 +402,22 @@ public abstract class AbstractTraceRmiLaunchOffer implements TraceRmiLaunchOffer args.put(param.name(), param.decode(str)); continue; } - // Perhaps wrong type; was saved in older version. - Object fallback = ConfigStateField.getState(state, param.type(), param.name()); - if (fallback != null) { - args.put(param.name(), ValStr.from(fallback)); - continue; + // NB: This code handles parameters formatted via a previous version. + // The try-catch was introduced to avoid NPEs from null file paths + try { + // Perhaps wrong type; was saved in older version. + Object fallback = ConfigStateField.getState(state, param.type(), param.name()); + if (fallback != null) { + args.put(param.name(), ValStr.from(fallback)); + continue; + } + Msg.warn(this, "Could not load saved launcher arg '%s' (%s)".formatted(param.name(), + param.display())); + } + catch (Exception e) { + Msg.warn(this, "Could not load saved launcher arg '%s' (%s) - %s".formatted(param.name(), + param.display(), e.getMessage())); } - Msg.warn(this, "Could not load saved launcher arg '%s' (%s)".formatted(param.name(), - param.display())); } return args; }