diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java
index ef5395c197699092fe1b26c9046b687bcb38c4f4..b8a26d6c49032a7f17f5d3e24717ff649a0217c5 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java
@@ -27,6 +27,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
 
 import org.conqat.lib.commons.collections.IdentityHashSet;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -59,28 +60,30 @@ import org.fortiss.tooling.kernel.ui.service.IMarkerService;
  * @version $Rev$
  * @ConQAT.Rating GREEN Hash: 97406556E23ADA709853030640FB078F
  */
-public class MarkerService implements IMarkerService,
-		IPersistencyServiceListener, ILightweightLabelDecorator {
+public class MarkerService implements IMarkerService, IPersistencyServiceListener,
+		ILightweightLabelDecorator {
 
 	/** ID of this decorator. */
 	public static final String ID = "org.fortiss.tooling.kernel.ui.internal.MarkerService";
 
 	/** Stores the violations for each {@link ITopLevelElement}. */
-	private final HashMap<ITopLevelElement, CacheEntry> violationCache = new HashMap<ITopLevelElement, CacheEntry>();
+	private final HashMap<ITopLevelElement, CacheEntry> violationCache =
+			new HashMap<ITopLevelElement, CacheEntry>();
 
 	/** List of listeners. */
-	private final Set<ILabelProviderListener> labelProviderListeners = new IdentityHashSet<ILabelProviderListener>();
+	private final Set<ILabelProviderListener> labelProviderListeners =
+			new IdentityHashSet<ILabelProviderListener>();
 
 	/** Stores the UI update job. */
 	private final UIJob updateUI = new UIJob("Update Model Decorators") {
 		@Override
 		public IStatus runInUIThread(IProgressMonitor monitor) {
-			LabelProviderChangedEvent changedEvent = new LabelProviderChangedEvent(
-					MarkerService.this);
-			for (ILabelProviderListener listener : labelProviderListeners) {
+			LabelProviderChangedEvent changedEvent =
+					new LabelProviderChangedEvent(MarkerService.this);
+			for(ILabelProviderListener listener : labelProviderListeners) {
 				listener.labelProviderChanged(changedEvent);
 			}
-			if (markerView != null) {
+			if(markerView != null) {
 				markerView.refresh();
 			}
 			return Status.OK_STATUS;
@@ -97,24 +100,23 @@ public class MarkerService implements IMarkerService,
 	private MarkerViewPart markerView;
 
 	/** Stores the constraint checking job. */
-	private final Job constraintCheckerJob = new Job(
-			"Model Constraint Checker Job") {
+	private final Job constraintCheckerJob = new Job("Model Constraint Checker Job") {
 
 		@Override
 		protected IStatus run(IProgressMonitor monitor) {
 			ITopLevelElement toBeRefreshed;
 			// get next element to be refreshed
-			synchronized (invalidElements) {
-				if (invalidElements.isEmpty()) {
+			synchronized(invalidElements) {
+				if(invalidElements.isEmpty()) {
 					return Status.OK_STATUS;
 				}
 				toBeRefreshed = invalidElements.remove(0);
 			}
-			while (toBeRefreshed != null) {
+			while(toBeRefreshed != null) {
 				refreshMarkers(toBeRefreshed);
 				// get next element to be refreshed
-				synchronized (invalidElements) {
-					if (invalidElements.isEmpty()) {
+				synchronized(invalidElements) {
+					if(invalidElements.isEmpty()) {
 						toBeRefreshed = null;
 					} else {
 						toBeRefreshed = invalidElements.remove(0);
@@ -127,8 +129,7 @@ public class MarkerService implements IMarkerService,
 
 	/** Constructor. */
 	public MarkerService() {
-		for (ITopLevelElement element : IPersistencyService.INSTANCE
-				.getTopLevelElements()) {
+		for(ITopLevelElement element : IPersistencyService.INSTANCE.getTopLevelElements()) {
 			invalidElements.add(element);
 		}
 		constraintCheckerJob.schedule();
@@ -142,11 +143,9 @@ public class MarkerService implements IMarkerService,
 
 	/** {@inheritDoc} */
 	@Override
-	public Collection<IConstraintViolation<? extends EObject>> getViolations(
-			EObject element) {
-		ITopLevelElement top = IPersistencyService.INSTANCE
-				.getTopLevelElementFor(element);
-		if (top == null) {
+	public Collection<IConstraintViolation<? extends EObject>> getViolations(EObject element) {
+		ITopLevelElement top = IPersistencyService.INSTANCE.getTopLevelElementFor(element);
+		if(top == null) {
 			return Collections.emptyList();
 		}
 		return getCacheEntry(top).getCachedList(element);
@@ -155,9 +154,8 @@ public class MarkerService implements IMarkerService,
 	/** {@inheritDoc} */
 	@Override
 	public ESeverity getHighestViolationSeverity(EObject element) {
-		ITopLevelElement top = IPersistencyService.INSTANCE
-				.getTopLevelElementFor(element);
-		if (top == null) {
+		ITopLevelElement top = IPersistencyService.INSTANCE.getTopLevelElementFor(element);
+		if(top == null) {
 			return ESeverity.lowest();
 		}
 		return getCacheEntry(top).getHighestSeverity(element);
@@ -165,9 +163,9 @@ public class MarkerService implements IMarkerService,
 
 	/** Accesses cache. */
 	private CacheEntry getCacheEntry(ITopLevelElement element) {
-		synchronized (violationCache) {
+		synchronized(violationCache) {
 			CacheEntry result = violationCache.get(element);
-			if (result == null) {
+			if(result == null) {
 				result = new CacheEntry(element);
 				violationCache.put(element, result);
 			}
@@ -179,10 +177,10 @@ public class MarkerService implements IMarkerService,
 	@Override
 	public void refreshMarkers(ITopLevelElement element) {
 
-		List<IConstraintViolation<? extends EObject>> checkResult = IConstraintCheckerService.INSTANCE
-				.performAllConstraintChecksRecursively(element
+		List<IConstraintViolation<? extends EObject>> checkResult =
+				IConstraintCheckerService.INSTANCE.performAllConstraintChecksRecursively(element
 						.getRootModelElement());
-		synchronized (violationCache) {
+		synchronized(violationCache) {
 			CacheEntry entry = getCacheEntry(element);
 			entry.updateCacheEntries(checkResult);
 		}
@@ -211,26 +209,23 @@ public class MarkerService implements IMarkerService,
 	/** {@inheritDoc} */
 	@Override
 	public void decorate(Object element, IDecoration decoration) {
-		if (element instanceof EObject) {
-			EObject modelElement = (EObject) element;
+		if(element instanceof EObject) {
+			EObject modelElement = (EObject)element;
 			ESeverity highest = getHighestViolationSeverity(modelElement);
 			// TODO (FH): https://af3.fortiss.org/issues/388
 			// use preferences settings here
-			switch (highest) {
-			case FATAL:
-				decoration.addOverlay(ESharedImages.FATAL_OVERLAY
-						.getImageDescriptor());
-				break;
-			case ERROR:
-				decoration.addOverlay(ESharedImages.ERROR_OVERLAY
-						.getImageDescriptor());
-				break;
-			case WARNING:
-				decoration.addOverlay(ESharedImages.WARNING_OVERLAY
-						.getImageDescriptor());
-				break;
-			default:
-				// ignore info and debug
+			switch(highest) {
+				case FATAL:
+					decoration.addOverlay(ESharedImages.FATAL_OVERLAY.getImageDescriptor());
+					break;
+				case ERROR:
+					decoration.addOverlay(ESharedImages.ERROR_OVERLAY.getImageDescriptor());
+					break;
+				case WARNING:
+					decoration.addOverlay(ESharedImages.WARNING_OVERLAY.getImageDescriptor());
+					break;
+				default:
+					// ignore info and debug
 			}
 		}
 	}
@@ -261,7 +256,7 @@ public class MarkerService implements IMarkerService,
 
 	/** Schedules the given element for constraint checking. */
 	private void doConstraintCheck(ITopLevelElement element) {
-		synchronized (invalidElements) {
+		synchronized(invalidElements) {
 			invalidElements.add(element);
 		}
 		constraintCheckerJob.schedule();
@@ -272,7 +267,7 @@ public class MarkerService implements IMarkerService,
 	 * element.
 	 */
 	private void clearViolationCache(ITopLevelElement element) {
-		synchronized (violationCache) {
+		synchronized(violationCache) {
 			violationCache.remove(element);
 			updateUI.schedule();
 		}
@@ -284,10 +279,12 @@ public class MarkerService implements IMarkerService,
 	private static class CacheEntry {
 
 		/** Stores the mapping from model elements to violation lists. */
-		private final Map<EObject, List<IConstraintViolation<? extends EObject>>> violationsMap = new HashMap<EObject, List<IConstraintViolation<? extends EObject>>>();
+		private final Map<EObject, List<IConstraintViolation<? extends EObject>>> violationsMap =
+				new ConcurrentHashMap<EObject, List<IConstraintViolation<? extends EObject>>>();
 
 		/** Stores the highest severity value for each cached element. */
-		private final Map<EObject, ESeverity> highestSeverityMap = new HashMap<EObject, ESeverity>();
+		private final Map<EObject, ESeverity> highestSeverityMap =
+				new ConcurrentHashMap<EObject, ESeverity>();
 
 		/** Stores the top-level element. */
 		private ITopLevelElement topElement;
@@ -297,10 +294,9 @@ public class MarkerService implements IMarkerService,
 
 			@Override
 			public IStatus runInUIThread(IProgressMonitor monitor) {
-				for (EObject eo : violationsMap.keySet()) {
+				for(EObject eo : violationsMap.keySet()) {
 					postRefreshNotification(eo);
-					for (IConstraintViolation<? extends EObject> viol : violationsMap
-							.get(eo)) {
+					for(IConstraintViolation<? extends EObject> viol : violationsMap.get(eo)) {
 						postRefreshNotification(viol.getSource());
 					}
 				}
@@ -316,7 +312,7 @@ public class MarkerService implements IMarkerService,
 		/** Returns the highest severity for the given element. */
 		public ESeverity getHighestSeverity(EObject element) {
 			ESeverity sev = highestSeverityMap.get(element);
-			if (sev == null) {
+			if(sev == null) {
 				return ESeverity.lowest();
 			}
 			return sev;
@@ -327,18 +323,16 @@ public class MarkerService implements IMarkerService,
 				List<IConstraintViolation<? extends EObject>> newViolations) {
 			clearCachedLists();
 			// update cache entries
-			for (IConstraintViolation<? extends EObject> violation : newViolations) {
+			for(IConstraintViolation<? extends EObject> violation : newViolations) {
 				getCachedList(violation.getSource()).add(violation);
 			}
 			// fix cached list order
-			for (EObject eo : violationsMap.keySet()) {
-				List<IConstraintViolation<? extends EObject>> list = violationsMap
-						.get(eo);
-				if (list.isEmpty()) {
+			for(EObject eo : violationsMap.keySet()) {
+				List<IConstraintViolation<? extends EObject>> list = violationsMap.get(eo);
+				if(list.isEmpty()) {
 					highestSeverityMap.put(eo, ESeverity.lowest());
 				} else {
-					Collections.sort(list,
-							IConstraintViolation.SEVERITY_COMPARATOR);
+					Collections.sort(list, IConstraintViolation.SEVERITY_COMPARATOR);
 					highestSeverityMap.put(eo, list.get(0).getSeverity());
 				}
 			}
@@ -351,10 +345,9 @@ public class MarkerService implements IMarkerService,
 		/** Recursively projects highest severity from children to parents. */
 		private ESeverity computeHighestSeverity(EObject element) {
 			ESeverity severity = getHighestSeverity(element);
-			for (EObject child : element.eContents()) {
+			for(EObject child : element.eContents()) {
 				ESeverity childSeverity = computeHighestSeverity(child);
-				if (ESeverity.getIntSeverity(severity) > ESeverity
-						.getIntSeverity(childSeverity)) {
+				if(ESeverity.getIntSeverity(severity) > ESeverity.getIntSeverity(childSeverity)) {
 					severity = childSeverity;
 				}
 			}
@@ -363,11 +356,9 @@ public class MarkerService implements IMarkerService,
 		}
 
 		/** Returns the cached list instance creating it if necessary. */
-		private List<IConstraintViolation<? extends EObject>> getCachedList(
-				EObject element) {
-			List<IConstraintViolation<? extends EObject>> list = violationsMap
-					.get(element);
-			if (list == null) {
+		private List<IConstraintViolation<? extends EObject>> getCachedList(EObject element) {
+			List<IConstraintViolation<? extends EObject>> list = violationsMap.get(element);
+			if(list == null) {
 				list = new ArrayList<IConstraintViolation<? extends EObject>>();
 				violationsMap.put(element, list);
 			}
@@ -377,11 +368,11 @@ public class MarkerService implements IMarkerService,
 		/** Returns all violations of the given severity. */
 		public List<IConstraintViolation<? extends EObject>> getAllViolationsWithSeverity(
 				ESeverity severity) {
-			List<IConstraintViolation<? extends EObject>> list = new ArrayList<IConstraintViolation<? extends EObject>>();
-			for (EObject element : violationsMap.keySet()) {
-				for (IConstraintViolation<? extends EObject> violation : violationsMap
-						.get(element)) {
-					if (violation.getSeverity() == severity) {
+			List<IConstraintViolation<? extends EObject>> list =
+					new ArrayList<IConstraintViolation<? extends EObject>>();
+			for(EObject element : violationsMap.keySet()) {
+				for(IConstraintViolation<? extends EObject> violation : violationsMap.get(element)) {
+					if(violation.getSeverity() == severity) {
 						list.add(violation);
 					}
 				}
@@ -391,11 +382,10 @@ public class MarkerService implements IMarkerService,
 
 		/** Clears all cached lists. */
 		private void clearCachedLists() {
-			for (List<IConstraintViolation<? extends EObject>> list : violationsMap
-					.values()) {
+			for(List<IConstraintViolation<? extends EObject>> list : violationsMap.values()) {
 				list.clear();
 			}
-			for (EObject eo : highestSeverityMap.keySet()) {
+			for(EObject eo : highestSeverityMap.keySet()) {
 				highestSeverityMap.put(eo, ESeverity.lowest());
 			}
 		}
@@ -405,43 +395,34 @@ public class MarkerService implements IMarkerService,
 	@Override
 	public Collection<IConstraintViolation<? extends EObject>> getAllViolationsWithSeverity(
 			ESeverity severity) {
-		List<IConstraintViolation<? extends EObject>> list = new ArrayList<IConstraintViolation<? extends EObject>>();
-		for (ITopLevelElement top : IPersistencyService.INSTANCE
-				.getTopLevelElements()) {
-			list.addAll(getCacheEntry(top).getAllViolationsWithSeverity(
-					severity));
+		List<IConstraintViolation<? extends EObject>> list =
+				new ArrayList<IConstraintViolation<? extends EObject>>();
+		for(ITopLevelElement top : IPersistencyService.INSTANCE.getTopLevelElements()) {
+			list.addAll(getCacheEntry(top).getAllViolationsWithSeverity(severity));
 		}
 		return list;
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	public ImageDescriptor getImageFor(ESeverity severity,
-			boolean smallDecoration) {
-		switch (severity) {
-		case FATAL:
-			return ToolingKernelUIActivator
-					.getImageDescriptor("icons/fatal.gif");
-		case ERROR:
-			if (smallDecoration) {
-				return ToolingKernelUIActivator
-						.getImageDescriptor("icons/error_small.gif");
-			}
-			return ToolingKernelUIActivator
-					.getImageDescriptor("icons/error.gif");
-		case WARNING:
-			if (smallDecoration) {
-				return ToolingKernelUIActivator
-						.getImageDescriptor("icons/warning_small.gif");
-			}
-			return ToolingKernelUIActivator
-					.getImageDescriptor("icons/warning.gif");
-		case INFO:
-			return ToolingKernelUIActivator
-					.getImageDescriptor("icons/info.gif");
-		case DEBUG:
-			return ToolingKernelUIActivator
-					.getImageDescriptor("icons/debug.gif");
+	public ImageDescriptor getImageFor(ESeverity severity, boolean smallDecoration) {
+		switch(severity) {
+			case FATAL:
+				return ToolingKernelUIActivator.getImageDescriptor("icons/fatal.gif");
+			case ERROR:
+				if(smallDecoration) {
+					return ToolingKernelUIActivator.getImageDescriptor("icons/error_small.gif");
+				}
+				return ToolingKernelUIActivator.getImageDescriptor("icons/error.gif");
+			case WARNING:
+				if(smallDecoration) {
+					return ToolingKernelUIActivator.getImageDescriptor("icons/warning_small.gif");
+				}
+				return ToolingKernelUIActivator.getImageDescriptor("icons/warning.gif");
+			case INFO:
+				return ToolingKernelUIActivator.getImageDescriptor("icons/info.gif");
+			case DEBUG:
+				return ToolingKernelUIActivator.getImageDescriptor("icons/debug.gif");
 
 		}