public boolean unreserve(SchedulerRequestKey schedulerKey, FiCaSchedulerNode node, RMContainer rmContainer) { try { writeLock.lock(); // Done with the reservation? if (internalUnreserve(node, schedulerKey)) { node.unreserveResource(this); // Update reserved metrics queue.getMetrics().unreserveResource(node.getPartition(), getUser(), rmContainer.getReservedResource()); queue.decReservedResource(node.getPartition(), rmContainer.getReservedResource()); return true; } return false; } finally { writeLock.unlock(); } }