From 9025c314f13525ce75f6566b4a983a42f10a7d0f Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 6 May 2008 09:49:20 -0700 Subject: [PATCH] better error reporting --- .../edu/berkeley/cs/bodik/svelte/SvelteAnalysisEngine.java | 2 +- .../src/edu/berkeley/cs/bodik/svelte/plugin/SlicingJob.java | 12 ++++++++++++ .../edu/berkeley/cs/bodik/svelte/slicers/JavaLanguage.java | 8 +++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Svelte/src/edu/berkeley/cs/bodik/svelte/SvelteAnalysisEngine.java b/Svelte/src/edu/berkeley/cs/bodik/svelte/SvelteAnalysisEngine.java index d8e9558..ea7622c 100644 --- a/Svelte/src/edu/berkeley/cs/bodik/svelte/SvelteAnalysisEngine.java +++ b/Svelte/src/edu/berkeley/cs/bodik/svelte/SvelteAnalysisEngine.java @@ -230,6 +230,7 @@ public class SvelteAnalysisEngine extends JdtJavaSourceAnalysisEngine { public void rebuild() { try { cg = buildDefaultCallGraph(); + built = true; } catch (CancelException e) { // TODO probably should just throw this. e.printStackTrace(); @@ -239,7 +240,6 @@ public class SvelteAnalysisEngine extends JdtJavaSourceAnalysisEngine { } catch (IOException e) { e.printStackTrace(); } - built = true; } @Override diff --git a/Svelte/src/edu/berkeley/cs/bodik/svelte/plugin/SlicingJob.java b/Svelte/src/edu/berkeley/cs/bodik/svelte/plugin/SlicingJob.java index 053fb83..9904b74 100644 --- a/Svelte/src/edu/berkeley/cs/bodik/svelte/plugin/SlicingJob.java +++ b/Svelte/src/edu/berkeley/cs/bodik/svelte/plugin/SlicingJob.java @@ -37,6 +37,8 @@ */ package edu.berkeley.cs.bodik.svelte.plugin; +import java.io.FileNotFoundException; +import java.io.PrintWriter; import java.util.Collection; import java.util.HashSet; import java.util.Set; @@ -161,6 +163,16 @@ public class SlicingJob extends Job { @Override protected IStatus run(IProgressMonitor monitor) { + try { + return realrun(monitor); + } catch (RuntimeException e) { + System.err.println("CAUGHT RUNTIMEEXCEPTION IN SLICINGJOB:\n"); + e.printStackTrace(); + throw(e); + } + } + + protected IStatus realrun(IProgressMonitor monitor) { // find the slice AbstractSliceEnvironment env = SliceEnvironmentCache.getInstance().getSliceEnvironment(this.file); if (env == null) { diff --git a/Svelte/src/edu/berkeley/cs/bodik/svelte/slicers/JavaLanguage.java b/Svelte/src/edu/berkeley/cs/bodik/svelte/slicers/JavaLanguage.java index 86ee72a..e4a73fa 100644 --- a/Svelte/src/edu/berkeley/cs/bodik/svelte/slicers/JavaLanguage.java +++ b/Svelte/src/edu/berkeley/cs/bodik/svelte/slicers/JavaLanguage.java @@ -227,6 +227,12 @@ public class JavaLanguage implements ILanguage { CallGraph cg = getCallGraph(); IFile file = position.getFile(); + if ( cg == null ) { + EclipseUtils.errorMsgInUIThread("Could not build call graph", + "Could not build call graph, probably due to an internal error. Check console output for more info."); + return null; + } + CGNode cgn = null; // check if we have selected a parameter. @@ -252,7 +258,7 @@ public class JavaLanguage implements ILanguage { if ( cgn == null ) { EclipseUtils.errorMsgInUIThread("Could not find method", - "Could not find a method containing the line number of code you have selected. It may be that:\n1) You have selected something outside of a method \n2) The source file is out-of-date and needs to be saved\n3) The method is not reachable from the program entrypoints"); + "Could not find a method containing the line number of code you have selected. It may be that:\n1) You have selected something outside of a method \n2) The source file is out-of-date and needs to be saved\n3) The method is not reachable from the program entrypoints"); return null; } -- 2.11.4.GIT