Source:
public void handlePost(RestRequest restRequest, RestResponseChannel restResponseChannel) { long processingStartTime = System.currentTimeMillis(); long preProcessingTime = 0; handlePrechecks(restRequest, restResponseChannel); boolean isSsl = restRequest.getSSLSession() != null; if (isSsl) { restRequest.getMetricsTracker().injectMetrics(frontendMetrics.postBlobSSLMetrics); } else { restRequest.getMetricsTracker().injectMetrics(frontendMetrics.postBlobMetrics); } try { logger.trace("Handling POST request - {}", restRequest.getUri()); checkAvailable(); securityService.preProcessRequest(restRequest).get(); long propsBuildStartTime = System.currentTimeMillis(); accountAndContainerInjector.injectAccountAndContainerForPostRequest(restRequest); BlobProperties blobProperties = RestUtils.buildBlobProperties(restRequest.getArgs()); if (blobProperties.getTimeToLiveInSeconds() + TimeUnit.MILLISECONDS.toSeconds( blobProperties.getCreationTimeInMs()) > Integer.MAX_VALUE) { logger.debug("TTL set to very large value in POST request with BlobProperties {}", blobProperties); frontendMetrics.ttlTooLargeError.inc(); } if (blobProperties.isEncrypted()) { if (isSsl) { restRequest.getMetricsTracker().injectMetrics(frontendMetrics.postEncryptedBlobSSLMetrics); } else { restRequest.getMetricsTracker().injectMetrics(frontendMetrics.postEncryptedBlobMetrics); } } byte[] usermetadata = RestUtils.buildUsermetadata(restRequest.getArgs()); frontendMetrics.blobPropsBuildTimeInMs.update(System.currentTimeMillis() - propsBuildStartTime); logger.trace("Blob properties of blob being POSTed - {}", blobProperties); PostCallback routerCallback = new PostCallback(restRequest, restResponseChannel, new BlobInfo(blobProperties, usermetadata)); preProcessingTime = System.currentTimeMillis() - processingStartTime; SecurityProcessRequestCallback securityCallback = new SecurityProcessRequestCallback(restRequest, restResponseChannel, blobProperties, usermetadata, routerCallback); securityService.processRequest(restRequest, securityCallback); } catch (Exception e) { submitResponse(restRequest, restResponseChannel, null, extractExecutionExceptionCause(e)); } finally { frontendMetrics.postPreProcessingTimeInMs.update(preProcessingTime); } }

Target:
public void handlePost(RestRequest restRequest, RestResponseChannel restResponseChannel) { long processingStartTime = System.currentTimeMillis(); long preProcessingTime = 0; handlePrechecks(restRequest, restResponseChannel); boolean sslUsed = restRequest.getSSLSession() != null; RestRequestMetrics metrics = frontendMetrics.postRequestMetricsGroup.getRestRequestMetrics(sslUsed, false); restRequest.getMetricsTracker().injectMetrics(metrics); try { logger.trace("Handling POST request - {}", restRequest.getUri()); checkAvailable(); securityService.preProcessRequest(restRequest).get(); long propsBuildStartTime = System.currentTimeMillis(); accountAndContainerInjector.injectAccountAndContainerForPostRequest(restRequest); BlobProperties blobProperties = RestUtils.buildBlobProperties(restRequest.getArgs()); if (blobProperties.getTimeToLiveInSeconds() + TimeUnit.MILLISECONDS.toSeconds( blobProperties.getCreationTimeInMs()) > Integer.MAX_VALUE) { logger.debug("TTL set to very large value in POST request with BlobProperties {}", blobProperties); frontendMetrics.ttlTooLargeError.inc(); } if (blobProperties.isEncrypted()) { metrics = frontendMetrics.postRequestMetricsGroup.getRestRequestMetrics(sslUsed, true); restRequest.getMetricsTracker().injectMetrics(metrics); } byte[] usermetadata = RestUtils.buildUsermetadata(restRequest.getArgs()); frontendMetrics.blobPropsBuildTimeInMs.update(System.currentTimeMillis() - propsBuildStartTime); logger.trace("Blob properties of blob being POSTed - {}", blobProperties); PostCallback routerCallback = new PostCallback(restRequest, restResponseChannel, new BlobInfo(blobProperties, usermetadata)); preProcessingTime = System.currentTimeMillis() - processingStartTime; SecurityProcessRequestCallback securityCallback = new SecurityProcessRequestCallback(restRequest, restResponseChannel, blobProperties, usermetadata, routerCallback); securityService.processRequest(restRequest, securityCallback); } catch (Exception e) { submitResponse(restRequest, restResponseChannel, null, extractExecutionExceptionCause(e)); } finally { frontendMetrics.postPreProcessingTimeInMs.update(preProcessingTime); } }