private Map<String, Object> synthesizeRequestState( Map<LockClient, Set<LockRequest>> outstandingLockRequests, Map<LockDescriptor, ClientAwareReadWriteLock> descriptorToLockMap) { LockServiceStateDebugger debugger = new LockServiceStateDebugger(outstandingLockRequests, descriptorToLockMap); Multimap<LockClient, LockServiceStateDebugger.LockRequestProgress> progressMultimap = debugger.getSuspectedLockProgress(); return nameObjectForYamlConversion(SYNTHESIZED_REQUEST_STATE_TITLE, progressMultimap.asMap().entrySet().stream() .collect(Collectors.toMap( entry -> entry.getKey().toString(), entry -> entry.getValue().stream().map( lockRequestProgress -> SanitizedLockRequestProgress.create( lockRequestProgress, lockDescriptorMapper, entry.getKey().toString())) .collect(Collectors.toList())))); }
private void logLockAcquisitionFailure(Map<LockDescriptor, LockClient> failedLocks) { final String logMessage = "Current holders of the first {} of {} total failed locks were: {}"; List<String> lockDescriptions = Lists.newArrayList(); Iterator<Entry<LockDescriptor, LockClient>> entries = failedLocks.entrySet().iterator(); for (int i = 0; i < MAX_FAILED_LOCKS_TO_LOG && entries.hasNext(); i++) { Entry<LockDescriptor, LockClient> entry = entries.next(); lockDescriptions.add( String.format("Lock: %s, Holder: %s", entry.getKey().toString(), entry.getValue().toString())); } requestLogger.trace( logMessage, SafeArg.of("numLocksLogged", Math.min(MAX_FAILED_LOCKS_TO_LOG, failedLocks.size())), SafeArg.of("numLocksFailed", failedLocks.size()), UnsafeArg.of("lockDescriptions", lockDescriptions)); }
@Test public void testPathParamSerDeOfAnonymousLockClient() throws Exception { LockClient lockClient = LockClient.ANONYMOUS; String serializedForm = lockClient.toString(); LockClient lockClient1 = new LockClient(serializedForm); assertEquals(lockClient, lockClient1); } }
@Test public void testPathParamSerDeOfLockClient() throws Exception { LockClient lockClient = LockClient.of("xyz"); String serializedForm = lockClient.toString(); LockClient lockClient1 = new LockClient(serializedForm); assertEquals(lockClient, lockClient1); }