Index: oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistence.java =================================================================== --- oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistence.java (revision 1861574) +++ oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistence.java (working copy) @@ -127,27 +127,28 @@ } } - private void azureRemoteStoreMonitor(RemoteStoreMonitor remoteStoreMonitor){ - - OperationContext operationContext = new OperationContext(); - - operationContext.getGlobalRequestCompletedEventHandler().addListener(new StorageEvent() { + private void azureRemoteStoreMonitor(RemoteStoreMonitor remoteStoreMonitor) { + OperationContext.getGlobalRequestCompletedEventHandler().addListener(new StorageEvent() { @Override public void eventOccurred(RequestCompletedEvent eventArg) { Date startDate = eventArg.getRequestResult().getStartDate(); Date stopDate = eventArg.getRequestResult().getStopDate(); - long requestDuration = stopDate.getTime() - startDate.getTime(); - remoteStoreMonitor.requestDuration(requestDuration, TimeUnit.MILLISECONDS); + + if (startDate != null && stopDate != null) { + long requestDuration = stopDate.getTime() - startDate.getTime(); + remoteStoreMonitor.requestDuration(requestDuration, TimeUnit.MILLISECONDS); + } Exception exception = eventArg.getRequestResult().getException(); - if(exception == null){ + if (exception == null) { remoteStoreMonitor.requestCount(); - }else { + } else { remoteStoreMonitor.requestError(); } } + }); }