From 24463da8bc34b8234dc6b07dce74e7b38f1623d5 Mon Sep 17 00:00:00 2001 From: szznax Date: Fri, 13 Nov 2009 23:23:52 +0000 Subject: [PATCH] Fix for [HER-1689] build, launch buttons remain enabled after problem building * CrawlJob.java renamed isContainerOk() to hasApplicationContext() increased granularity of isLaunchable() to offer launch button * JobResource.java more coarse check for hasApplicationContext() to disable build button --- .../archive/crawler/framework/CrawlJob.java | 22 ++++++++++++------- .../archive/crawler/restlet/JobResource.java | 16 +++++++------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/engine/src/main/java/org/archive/crawler/framework/CrawlJob.java b/engine/src/main/java/org/archive/crawler/framework/CrawlJob.java index 136c6d03..90b8f528 100644 --- a/engine/src/main/java/org/archive/crawler/framework/CrawlJob.java +++ b/engine/src/main/java/org/archive/crawler/framework/CrawlJob.java @@ -325,7 +325,7 @@ public class CrawlJob implements Comparable, ApplicationListener { return ex.getMessage().replace('\n', ' '); } - public boolean isContainerOk() { + public boolean hasApplicationContext() { return ac!=null; } @@ -354,7 +354,7 @@ public class CrawlJob implements Comparable, ApplicationListener { * Ddid the ApplicationContext self-validate? * return true if validation passed without errors */ - public boolean isContainerValidated() { + public boolean hasValidApplicationContext() { if(ac==null) { return false; } @@ -389,7 +389,7 @@ public class CrawlJob implements Comparable, ApplicationListener { } validateConfiguration(); - if(!isContainerValidated()) { + if(!hasValidApplicationContext()) { getJobLogger().log(Level.SEVERE,"Can't launch problem configuration"); return; } @@ -612,15 +612,21 @@ public class CrawlJob implements Comparable, ApplicationListener { } /** - * Is this launchable? (Has CrawlController and not yet been launched?) + * Is it reasonable to offer a launch button * @return true if launchable */ public boolean isLaunchable() { - CrawlController cc = getCrawlController(); - if(cc==null) { - return true; + if (!hasApplicationContext()) { + // ok to try launch if not yet built + return true; } - return !cc.hasStarted(); + if (!hasValidApplicationContext()) { + // never launch if specifically invalid + return false; + } + // launchable if cc not yet instantiated or not yet started + CrawlController cc = getCrawlController(); + return cc == null || !cc.hasStarted(); } public int getAlertCount() { diff --git a/engine/src/main/java/org/archive/crawler/restlet/JobResource.java b/engine/src/main/java/org/archive/crawler/restlet/JobResource.java index c195933a..18befddf 100644 --- a/engine/src/main/java/org/archive/crawler/restlet/JobResource.java +++ b/engine/src/main/java/org/archive/crawler/restlet/JobResource.java @@ -123,14 +123,14 @@ public class JobResource extends Resource { pw.println("
"); // PREP, LAUNCH pw.print(""); pw.print("   "); @@ -159,7 +159,7 @@ public class JobResource extends Resource { } pw.println(" type='submit' name='action' value='terminate'/>"); pw.println("
"); pw.println("
"); @@ -212,7 +212,7 @@ public class JobResource extends Resource { pw.println("

Job is "+getJobStatusDescription()+"

"); - if(cj.isContainerOk()) { + if(cj.hasApplicationContext()) { pw.println("Totals
  "); pw.println(cj.uriTotalsReport()); pw.println("
  "); @@ -246,7 +246,7 @@ public class JobResource extends Resource { pw.println("
Memory
  "); pw.println(getEngine().heapReport()); - if(cj.isRunning() || (cj.isContainerOk() && !cj.isLaunchable())) { + if(cj.isRunning() || (cj.hasApplicationContext() && !cj.isLaunchable())) { // show crawl log for running or finished crawls pw.println("

Crawl Log"); printLinkedFile( @@ -276,7 +276,7 @@ public class JobResource extends Resource { } - if(cj.isContainerOk()) { + if(cj.hasApplicationContext()) { pw.println("

Reports

"); for(Class reportClass : StatisticsTracker.LIVE_REPORTS) { String className = reportClass.getSimpleName(); @@ -315,7 +315,7 @@ public class JobResource extends Resource { pw.println("

Advanced

"); pw.println("

Scripting console

"); - if(!cj.isContainerOk()) { + if(!cj.hasApplicationContext()) { pw.println("build the job to browse bean instances"); } else { pw.println("

Browse beans

"); @@ -332,7 +332,7 @@ public class JobResource extends Resource { } public String getJobStatusDescription() { - if(!cj.isContainerOk()) { + if(!cj.hasApplicationContext()) { return "Unbuilt"; } else if(cj.isRunning()) { return "Active: "+cj.getCrawlController().getState();