((WorkItemImpl) workItem).setId(workItemCounter.incrementAndGet());
internalAddWorkItem(workItem);
WorkItemHandler handler = this.workItemHandlers.get(workItem.getName());
if (handler != null) {
handler.executeWorkItem(workItem, this);
} else throw new WorkItemHandlerNotFoundException( "Could not find work item handler for " + workItem.getName(),
workItem.getName() );
}