diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockFrontMergeHandler.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockFrontMergeHandler.java
index db750f6..b54b0bb 100644
--- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockFrontMergeHandler.java
+++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockFrontMergeHandler.java
@@ -54,7 +54,10 @@
         int nrSector = ((Long) content.getField(getLayout().fieldBlockNrSector()).getValue()).intValue();
         Long rqSector = sector + nrSector;
         int dev = ((Long) content.getField(getLayout().fieldBlockDeviceId()).getValue()).intValue();
-        int rwbs = ((Long) content.getField(getLayout().fieldBlockRwbs()).getValue()).intValue();
+        Integer rwbs = content.getFieldValue(Integer.class, getLayout().fieldBlockRwbs());
+        if (rwbs == null) {
+            return;
+        }
         DiskWriteModel disk = fStateProvider.getDisk(dev);
 
         Request request = disk.getWaitingRequest(rqSector);
diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockRqComplete.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockRqComplete.java
index ece0022..17c33f3 100644
--- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockRqComplete.java
+++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockRqComplete.java
@@ -53,7 +53,10 @@
         Long sector = NonNullUtils.checkNotNull((Long) content.getField(getLayout().fieldBlockSector()).getValue());
         int nrSector = ((Long) content.getField(getLayout().fieldBlockNrSector()).getValue()).intValue();
         int phydisk = ((Long) content.getField(getLayout().fieldBlockDeviceId()).getValue()).intValue();
-        int rwbs = ((Long) content.getField(getLayout().fieldBlockRwbs()).getValue()).intValue();
+        Integer rwbs = content.getFieldValue(Integer.class, getLayout().fieldBlockRwbs());
+        if (rwbs == null) {
+            return;
+        }
         DiskWriteModel disk = fStateProvider.getDisk(phydisk);
 
         Request request = disk.getDriverRequest(sector);
diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockRqInsertHandler.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockRqInsertHandler.java
index 5489f8b..f6d4081 100644
--- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockRqInsertHandler.java
+++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockRqInsertHandler.java
@@ -54,7 +54,10 @@
         int phydisk = ((Long) content.getField(getLayout().fieldBlockDeviceId()).getValue()).intValue();
         Long sector = NonNullUtils.checkNotNull((Long) content.getField(getLayout().fieldBlockSector()).getValue());
         int nrSector = ((Long) content.getField(getLayout().fieldBlockNrSector()).getValue()).intValue();
-        int rwbs = ((Long) content.getField(getLayout().fieldBlockRwbs()).getValue()).intValue();
+        Integer rwbs = content.getFieldValue(Integer.class, getLayout().fieldBlockRwbs());
+        if (rwbs == null) {
+            return;
+        }
         DiskWriteModel disk = fStateProvider.getDisk(phydisk);
 
         if (nrSector == 0) {
diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockRqIssueHandler.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockRqIssueHandler.java
index 4f15d6f..1b27da5 100644
--- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockRqIssueHandler.java
+++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/inputoutput/handlers/BlockRqIssueHandler.java
@@ -54,8 +54,8 @@
         Integer phydisk = ((Long) content.getField(getLayout().fieldBlockDeviceId()).getValue()).intValue();
         Long sector = NonNullUtils.checkNotNull((Long) content.getField(getLayout().fieldBlockSector()).getValue());
         Integer nrSector = ((Long) content.getField(getLayout().fieldBlockNrSector()).getValue()).intValue();
-        Integer rwbs = ((Long) content.getField(getLayout().fieldBlockRwbs()).getValue()).intValue();
-        if (nrSector == 0) {
+        Integer rwbs = content.getFieldValue(Integer.class, getLayout().fieldBlockRwbs());
+        if (rwbs == null || nrSector == 0) {
             return;
         }
 
