Author: frm
Date: Tue Jun 18 12:36:26 2019
New Revision: 1861576
URL: http://svn.apache.org/viewvc?rev=1861576&view=rev
Log:
OAK-8410 - Fix NPE in the RequestCompletedEvent listener
Modified:
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistence.java
Modified:
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistence.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistence.java?rev=1861576&r1=1861575&r2=1861576&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistence.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistence.java
Tue Jun 18 12:36:26 2019
@@ -65,7 +65,7 @@ public class AzurePersistence implements
@Override
public SegmentArchiveManager createArchiveManager(boolean mmap, boolean
offHeapAccess, IOMonitor ioMonitor, FileStoreMonitor fileStoreMonitor,
RemoteStoreMonitor remoteStoreMonitor) {
- azureRemoteStoreMonitor(remoteStoreMonitor);
+ attachRemoteStoreMonitor(remoteStoreMonitor);
return new AzureArchiveManager(segmentstoreDirectory, ioMonitor,
fileStoreMonitor);
}
@@ -127,27 +127,28 @@ public class AzurePersistence implements
}
}
- private void azureRemoteStoreMonitor(RemoteStoreMonitor
remoteStoreMonitor){
-
- OperationContext operationContext = new OperationContext();
-
-
operationContext.getGlobalRequestCompletedEventHandler().addListener(new
StorageEvent<RequestCompletedEvent>() {
+ private static void attachRemoteStoreMonitor(RemoteStoreMonitor
remoteStoreMonitor) {
+
OperationContext.getGlobalRequestCompletedEventHandler().addListener(new
StorageEvent<RequestCompletedEvent>() {
@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);
+ public void eventOccurred(RequestCompletedEvent e) {
+ Date startDate = e.getRequestResult().getStartDate();
+ Date stopDate = e.getRequestResult().getStopDate();
+
+ if (startDate != null && stopDate != null) {
+ long requestDuration = stopDate.getTime() -
startDate.getTime();
+ remoteStoreMonitor.requestDuration(requestDuration,
TimeUnit.MILLISECONDS);
+ }
- Exception exception =
eventArg.getRequestResult().getException();
+ Exception exception = e.getRequestResult().getException();
- if(exception == null){
+ if (exception == null) {
remoteStoreMonitor.requestCount();
- }else {
+ } else {
remoteStoreMonitor.requestError();
}
}
+
});
}