public void put(CacheableNode cacheableNode, long key) {
		try {
			if (capacity == 0) {
				CacheableNode node = recent.popFront();
				node.unlink();
				node.unlinkSub();
				if (node == emptyNode) {
					CacheableNode empty = recent.popFront();
					empty.unlink();
					empty.unlinkSub();
				}
			} else {
				capacity--;
			}
			cache.put(cacheableNode, key);
			recent.insertBack(cacheableNode);
			return;
		} catch (RuntimeException runtimeexception) {
			Signlink.reporterror("47547, " + cacheableNode + ", " + key + ", " + (byte) 2 + ", "
				+ runtimeexception.toString());
		}
		throw new RuntimeException();
	}