diff options
Diffstat (limited to 'src/main/java/com/c2kernel')
| -rw-r--r-- | src/main/java/com/c2kernel/entity/TraceableEntity.java | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/src/main/java/com/c2kernel/entity/TraceableEntity.java b/src/main/java/com/c2kernel/entity/TraceableEntity.java index 83c30a2..c6442a0 100644 --- a/src/main/java/com/c2kernel/entity/TraceableEntity.java +++ b/src/main/java/com/c2kernel/entity/TraceableEntity.java @@ -244,22 +244,37 @@ public class TraceableEntity extends ItemPOA {
synchronized (this) {
Logger.msg(1, "TraceableEntity::queryLifeCycle("+mSystemKey+") - agent: " + agentId);
-
- try
- {
- AgentPath agent = new AgentPath(agentId);
- Workflow wf = (Workflow)mStorage.get(mSystemKey, ClusterStorage.LIFECYCLE+"/workflow", null);
+ try {
+ AgentPath agent;
+ try {
+ agent = new AgentPath(agentId);
+ } catch (InvalidEntityPathException e) {
+ throw new AccessRightsException("Agent "+agentId+" doesn't exist");
+ }
+ Workflow wf;
+ try {
+ wf = (Workflow)mStorage.get(mSystemKey, ClusterStorage.LIFECYCLE+"/workflow", null);
+ } catch (ClusterStorageException e) {
+ Logger.error("TraceableEntity::queryLifeCycle("+mSystemKey+") - Error loading workflow");
+ Logger.error(e);
+ throw new PersistencyException("Error loading workflow");
+ }
JobArrayList jobBag = new JobArrayList();
CompositeActivity domainWf = (CompositeActivity)wf.search("workflow/domain");
jobBag.list = filter?domainWf.calculateJobs(agent, true):domainWf.calculateAllJobs(agent, true);
Logger.msg(1, "TraceableEntity::queryLifeCycle("+mSystemKey+") - Returning "+jobBag.list.size()+" jobs.");
- return Gateway.getMarshaller().marshall( jobBag );
- }
- catch( Throwable ex )
- {
- Logger.error(ex);
- return "<ERROR/>";
- }
+ try {
+ return Gateway.getMarshaller().marshall( jobBag );
+ } catch (Exception e) {
+ Logger.error(e);
+ throw new PersistencyException("Error marshalling job bag");
+ }
+ }
+ catch ( Throwable ex ) {
+ Logger.error("TraceableEntity::queryLifeCycle("+mSystemKey+") - Unknown error");
+ Logger.error(ex);
+ throw new PersistencyException("Unknown error querying jobs. Please see server log.");
+ }
}
}
|
