- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 17 Aug 2009 16:35:24 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/tasklist In directory hutz:/tmp/cvs-serv31117/src/org/w3c/unicorn/tasklist Modified Files: Tag: dev2 TaskListUnmarshallerBeans.java Log Message: addTask() throws UnknownOberverException in case a task references an observer that doesn't exist Index: TaskListUnmarshallerBeans.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/tasklist/Attic/TaskListUnmarshallerBeans.java,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- TaskListUnmarshallerBeans.java 11 Aug 2009 16:05:40 -0000 1.1.2.1 +++ TaskListUnmarshallerBeans.java 17 Aug 2009 16:35:22 -0000 1.1.2.2 @@ -30,6 +30,7 @@ import org.w3c.unicorn.contract.InputMethod; import org.w3c.unicorn.contract.Observer; import org.w3c.unicorn.exceptions.ParameterException; +import org.w3c.unicorn.exceptions.UnknownObserverException; import org.w3c.unicorn.tasklist.parameters.Mapping; import org.w3c.unicorn.tasklist.parameters.Parameter; import org.w3c.unicorn.tasklist.parameters.ParameterFactory; @@ -74,7 +75,7 @@ this.mapOfObserver = mapOfObserver; } - private void addTask(final TaskType aTask) throws ParameterException { + private void addTask(final TaskType aTask) throws ParameterException, UnknownObserverException { TaskListUnmarshallerBeans.logger.trace("addTask"); if (aTask == null) { @@ -82,10 +83,8 @@ return; } - if (TaskListUnmarshallerBeans.logger.isDebugEnabled()) { - TaskListUnmarshallerBeans.logger.trace("Add task : " - + aTask.getId()); - } + TaskListUnmarshallerBeans.logger.trace("Add task : " + + aTask.getId()); final Task aTaskCurrent = new Task(); // Create the execution level tree @@ -359,8 +358,9 @@ * * @param myTask * the task to transform into a tree + * @throws UnknownObserverException */ - public TLTNode ExpandTree(TaskType myTask) { + public TLTNode ExpandTree(TaskType myTask) throws UnknownObserverException { TaskListUnmarshallerBeans.logger .trace("Creation of the tree based on the Task " + myTask.getId()); @@ -368,6 +368,8 @@ root.setID(NodeID++); for (ExecType exec : myTask.getRoutine().getExecArray()) { final Observer obs = Framework.mapOfObserver.get(exec.getValue()); + if (obs == null) + throw new UnknownObserverException("The observer " + exec.getValue() + " does not exist. Exec ID: " + exec.getId()); root.addExec(new TLTExec(exec.getId(), obs, exec.getValue(), exec .getType(), exec.getParam())); } @@ -383,13 +385,16 @@ * @param myThen * the ThenType node for the recursion * @return the node created + * @throws UnknownObserverException */ - private TLTNode FillNode(TaskType myTask, ThenType myThen) { + private TLTNode FillNode(TaskType myTask, ThenType myThen) throws UnknownObserverException { TaskListUnmarshallerBeans.logger.trace("Creation of a then branch "); TLTNode node = new TLTNode(); node.setID(NodeID++); for (ExecType exec : myThen.getExecArray()) { final Observer obs = Framework.mapOfObserver.get(exec.getValue()); + if (obs==null) + throw new UnknownObserverException("The observer " + exec.getValue() + " does not exist. Exec ID: " + exec.getId()); node.addExec(new TLTExec(exec.getId(), obs, exec.getValue(), exec .getType(), exec.getParam())); } @@ -405,8 +410,9 @@ * @param ifs * the IfType node template to create the Ifnode * @return the node created + * @throws UnknownObserverException */ - private TLTIf fillIfs(TaskType myTask, IfType ifs) { + private TLTIf fillIfs(TaskType myTask, IfType ifs) throws UnknownObserverException { TaskListUnmarshallerBeans.logger.trace("Creation of an If "); // Create the if node TLTIf ifnode = new TLTIf(); @@ -520,7 +526,7 @@ } } - public void unmarshal() throws Exception { + public void unmarshal() { TaskListUnmarshallerBeans.logger.trace("unmarshal tasklist"); // creates the tasklist without computing references for (final TaskType aTask : this.aTaskList.getTasklist().getTaskArray()) { @@ -528,7 +534,15 @@ TaskListUnmarshallerBeans.logger.warn("Task with id " + aTask.getId() + " already defined."); } else { - this.addTask(aTask); + try { + Framework.logger.debug("> Found task: " + aTask.getId()); + this.addTask(aTask); + Framework.logger.debug("Successfully loaded task: " + aTask.getId()); + } catch (ParameterException e) { + Framework.logger.error("Task \"" + aTask.getId() + "\" threw a ParameterException. This task is ignored.", e); + } catch (UnknownObserverException e) { + Framework.logger.warn("Task \"" + aTask.getId() + "\" references an unknown observer. This task is ignored.", e); + } } }
Received on Monday, 17 August 2009 16:35:39 UTC