FeatureTransaction featureTransaction = mapModel.getFeatureEditor().getFeatureTransaction();
if (featureTransaction != null) {
List<Activity> activities = new ArrayList<Activity>();
activities.add(new ValidationActivity());
activities.add(new CommitActivity());
WorkflowProcessor processor = new SequenceProcessor(new MapModelWorkflowContext());
processor.setDefaultErrorHandler(new WorkflowErrorHandler() {
public void handleError(WorkflowContext context, Throwable throwable) {
SC.warn(I18nProvider.getGlobal().saveEditingAborted() + throwable.getMessage());
}
});
processor.setActivities(activities);
processor.doActivities(mapModel);
// Cleaning up duties: controller and MapWidget (if they're present)
if (controller != null) {
controller.cleanup();
}