//Name 	 Prevent_closing_of_task_with_open_subtasks
//Description 	Prevents users from closing a task that contains non-closed subtasks
//Type 	Trigger / Add Message / BEFORE Trigger

SecuredStatusBean ssb = AdapterManager.getInstance().getSecuredStepAdapterManager()
   .getNextStatus(message.getSecure(),
message.getTaskId(), message.getMstatusId());

if(ssb != null && ssb.isFinish()) {
   Set childredIdSet =message.getTask().getAllowedChildrenWithSubtasksMap().keySet();
   for(Iterator it = childredIdSet.iterator(); it.hasNext();) {
      String ch = (String)it.next();

      if (!AdapterManager.getInstance().getSecuredFindAdapterManager()
        .findTaskById(sc,ch).getStatus().isFinish()) {
         throw new UserMessageException("Subtask status is not final.");
      }
   }
}
return message;