Bug 551056 - Simplify LockManager using HashMap.computeIfAbsent()

Besides being simpler this will also be a tiny bit faster since it
hashes and finds a table entry only once.

Change-Id: Ic6b907bf59af9e142199f471d4b726bfbe264ffd
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
diff --git a/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/LockManager.java b/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/LockManager.java
index f01f788..250dbb2 100644
--- a/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/LockManager.java
+++ b/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/LockManager.java
@@ -158,11 +158,7 @@
 			for (int i = 0; i < toSuspend.length; i++)
 				suspended[i] = LockState.suspend((OrderedLock) toSuspend[i]);
 			synchronized (suspendedLocks) {
-				ArrayDeque<LockState[]> prevLocks = suspendedLocks.get(found.getCandidate());
-				if (prevLocks == null)
-					prevLocks = new ArrayDeque<>();
-				prevLocks.push(suspended);
-				suspendedLocks.put(found.getCandidate(), prevLocks);
+				suspendedLocks.computeIfAbsent(found.getCandidate(), key -> new ArrayDeque<>()).push(suspended);
 			}
 		} catch (Exception e) {
 			handleInternalError(e);