\r
import compbio.engine.client.Executable;\r
import compbio.engine.client.PathValidator;\r
+import compbio.engine.client.SkeletalExecutable;\r
import compbio.metadata.JobStatus;\r
import compbio.util.FileUtil;\r
import compbio.ws.client.Services;\r
return ((System.currentTimeMillis() - jd.jobdir.lastModified()) / (1000 * 60 * 60)) > timeOutInHours;\r
}\r
\r
- /* Make sure that collectStatistics methods was called prior to calling this! \r
- * TODO consider running collectStatistics from here on the first call \r
- */\r
+ /*\r
+ * Make sure that collectStatistics methods was called prior to calling\r
+ * this! TODO consider running collectStatistics from here on the first call\r
+ */\r
StatProcessor getStats() {\r
- if(stats.isEmpty()) {\r
+ if (stats.isEmpty()) {\r
log.info("Please make sure collectStatistics method was called prior to calling getStats()!");\r
}\r
return new StatProcessor(stats);\r
if (startfile == null) {\r
startfile = files.get(JobStatus.SUBMITTED.toString());\r
}\r
- if (startfile != null) {\r
+ try {\r
+ if (startfile != null) {\r
+ String start = FileUtil.readFileToString(startfile);\r
+ starttime = Long.parseLong(start.trim());\r
+ }\r
+ } catch (IOException ignore) {\r
+ log.warn(\r
+ "IOException while reading STARTED status file! Ignoring...",\r
+ ignore);\r
+ // fall back\r
+ starttime = startfile.lastModified();\r
+ } catch (NumberFormatException ignore) {\r
+ log.warn(\r
+ "NumberFormatException while reading STARTED status file! Ignoring...",\r
+ ignore);\r
+ // fall back\r
starttime = startfile.lastModified();\r
- /*\r
- * String start = FileUtil.readFileToString(startfile);\r
- * starttime = Long.parseLong(start.trim());\r
- */\r
}\r
+\r
return starttime;\r
}\r
\r
long ftime = UNDEFINED;\r
File finished = files.get(JobStatus.FINISHED.toString());\r
if (finished != null) {\r
- ftime = finished.lastModified();\r
- /*\r
- * String start = FileUtil.readFileToString(finished); ftime =\r
- * Long.parseLong(start.trim());\r
- */\r
- // System.out.println("f " + ftime);\r
+ try {\r
+ if (finished != null) {\r
+ String start = FileUtil.readFileToString(finished);\r
+ ftime = Long.parseLong(start.trim());\r
+ }\r
+ } catch (IOException ignore) {\r
+ log.warn(\r
+ "IOException while reading FINISHED status file! Ignoring...",\r
+ ignore);\r
+ // fall back\r
+ ftime = finished.lastModified();\r
+ } catch (NumberFormatException ignore) {\r
+ log.warn(\r
+ "NumberFormatException while reading FINISHED status file! Ignoring...",\r
+ ignore);\r
+ // fall back\r
+ ftime = finished.lastModified();\r
+ }\r
}\r
- /*\r
- * } catch (IOException e) { log.log(Level.WARN,\r
- * "Cannot parse finished time: " + e.getMessage(), e); } catch\r
- * (NumberFormatException e) { log.log(Level.WARN,\r
- * "Cannot parse finished time: " + e.getMessage(), e); }\r
- */\r
return ftime;\r
}\r
\r
return Services.getServiceByJobDirectory(jobdir);\r
}\r
\r
- // Mafft, Muscle, Tcoffee, Clustal task:fasta.in result:fasta.out\r
- // Probcons task:fasta.in result:alignment.out\r
- /*\r
- * TODO replace with Universal names for WS!\r
- */\r
long getResultSize() {\r
Class<? extends Executable<?>> name = Services\r
.getRunnerByJobDirectory(jobdir);\r
\r
File f = null;\r
- if (name.getSimpleName().equalsIgnoreCase("Probcons")) {\r
- f = files.get("alignment.out");\r
- } else if (name.getSimpleName().equalsIgnoreCase("ClustalW")) {\r
- f = files.get("output.txt");\r
+ if (name.getSimpleName().equalsIgnoreCase("IUPred")) {\r
+ f = files.get("out.glob");\r
+ if (f == null)\r
+ f = files.get("out.short");\r
+ if (f == null)\r
+ f = files.get("out.long");\r
} else {\r
- f = files.get("fasta.out");\r
+ f = files.get(SkeletalExecutable.OUTPUT);\r
}\r
if (f != null) {\r
return f.length();\r
return UNDEFINED;\r
}\r
\r
- /*\r
- * TODO unify input!\r
- */\r
long getInputSize() {\r
Class<? extends Executable<?>> name = Services\r
.getRunnerByJobDirectory(jobdir);\r
\r
- File input = null;\r
- if (name.getSimpleName().equalsIgnoreCase("ClustalW")) {\r
- input = files.get("input.txt");\r
- } else {\r
- input = files.get("fasta.in");\r
- }\r
-\r
+ File input = files.get(SkeletalExecutable.INPUT);\r
if (input != null) {\r
return input.length();\r
}\r