	public PersistentTask updateTask(Task task, Serializable runnableTask, Identity modifier, Date scheduledDate) {
		PersistentTask ptask = dbInstance.getCurrentEntityManager()
				.find(PersistentTask.class, task.getKey(), LockModeType.PESSIMISTIC_WRITE);
		if(ptask != null) {
			ptask.setLastModified(new Date());
			ptask.setScheduledDate(scheduledDate);
			ptask.setStatus(TaskStatus.newTask);
			ptask.setStatusBeforeEditStr(null);
			ptask.setTask(xstream.toXML(runnableTask));

			ptask = dbInstance.getCurrentEntityManager().merge(ptask);
			if(modifier != null) {
				//add to the list of modifier
				PersistentTaskModifier mod = new PersistentTaskModifier();
				mod.setCreationDate(new Date());
				mod.setModifier(modifier);
				mod.setTask(ptask);
				dbInstance.getCurrentEntityManager().persist(mod);
			}
			dbInstance.commit();
		}
		return ptask;
	}
The software does not properly neutralize special elements that are used in XML, allowing attackers to modify the syntax, content, or commands of the XML before it is processed by an end system.