From c8406f850f3e43431db51b8b476c23fb5e29d17c Mon Sep 17 00:00:00 2001 From: Antonio Garcia-Dominguez Date: Wed, 28 Aug 2024 22:32:56 +0100 Subject: [PATCH] EolDebugger: more protections against NPEs --- .../org/eclipse/epsilon/eol/debug/EolDebugger.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/debug/EolDebugger.java b/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/debug/EolDebugger.java index bff9677bb..fde104205 100644 --- a/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/debug/EolDebugger.java +++ b/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/debug/EolDebugger.java @@ -68,12 +68,12 @@ public IEpsilonDebugTarget getTarget() { } protected IEolModule getModule() { - return target.getModule(); + return target != null ? target.getModule() : null; } @Override public void control(ModuleElement ast, IEolContext context) { - if (!controls(ast)) { + if (target == null || !controls(ast)) { return; } currentModuleElement = ast; @@ -133,7 +133,8 @@ private boolean controls(ModuleElement ast) { } private int frameStackSize() { - return getModule().getContext().getFrameStack().getFrames().size(); + IEolModule module = getModule(); + return module != null ? module.getContext().getFrameStack().getFrames().size() : 0; } private ModuleElement getGrandparent(ModuleElement ast) { @@ -145,7 +146,7 @@ private ModuleElement getParent(ModuleElement ast) { } private boolean hasBreakpoint(ModuleElement ast) { - if (target.hasBreakpointItself(ast)) { + if (target != null && target.hasBreakpointItself(ast)) { return true; } @@ -279,7 +280,10 @@ protected IModule resolveModule(final Map uriToPathMappings, final St protected synchronized Map getURIToModuleMap() throws IOException { if (this.uriToModule == null) { this.uriToModule = new HashMap<>(); - addAllModules(uriToModule, getModule()); + IEolModule module = getModule(); + if (module != null) { + addAllModules(uriToModule, module); + } } return uriToModule; }