Source:
public void handlePost(RestRequest restRequest, RestResponseChannel restResponseChannel) { long processingStartTime = System.currentTimeMillis(); long preProcessingTime = 0; handlePrechecks(restRequest, restResponseChannel); restRequest.getMetricsTracker().injectMetrics(frontendMetrics.postBlobMetrics); RestRequestMetrics requestMetrics = restRequest.getSSLSession() != null ? frontendMetrics.postBlobSSLMetrics : frontendMetrics.postBlobMetrics; restRequest.getMetricsTracker().injectMetrics(requestMetrics); try { logger.trace("Handling POST request - {}", restRequest.getUri()); checkAvailable(); long propsBuildStartTime = System.currentTimeMillis(); BlobProperties blobProperties = RestUtils.buildBlobProperties(restRequest.getArgs()); if (blobProperties.getTimeToLiveInSeconds() + TimeUnit.MILLISECONDS.toSeconds( blobProperties.getCreationTimeInMs()) > Integer.MAX_VALUE) { logger.warn("TTL set to very large value in POST request with BlobProperties {}", blobProperties); frontendMetrics.ttlTooLargeError.inc(); } 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, e); } finally { frontendMetrics.postPreProcessingTimeInMs.update(preProcessingTime); } }

Target:
public void handlePost(RestRequest restRequest, RestResponseChannel restResponseChannel) { long processingStartTime = System.currentTimeMillis(); long preProcessingTime = 0; handlePrechecks(restRequest, restResponseChannel); restRequest.getMetricsTracker().injectMetrics(frontendMetrics.postBlobMetrics); RestRequestMetrics requestMetrics = restRequest.getSSLSession() != null ? frontendMetrics.postBlobSSLMetrics : frontendMetrics.postBlobMetrics; restRequest.getMetricsTracker().injectMetrics(requestMetrics); try { logger.trace("Handling POST request - {}", restRequest.getUri()); checkAvailable(); long propsBuildStartTime = System.currentTimeMillis(); 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(); } 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, e); } finally { frontendMetrics.postPreProcessingTimeInMs.update(preProcessingTime); } }