From: Loïc Prieur-Drevon Date: Tue, 18 Oct 2016 16:14:30 +0000 (-0400) Subject: ss: fix common node header size and check free space X-Git-Url: http://git.efficios.com/?p=deliverable%2Ftracecompass.git;a=commitdiff_plain;h=2d1f2beec155d145990f3e8e9c6e0c7017af707b ss: fix common node header size and check free space COMMON_HEADER_SIZE had not been corrected after modifying strings sections. Check that node free space is consistent with what is written to disk. Change-Id: I9186f8b2e32159d9f2c771358c337aaf0ebb38c3 Signed-off-by: Loïc Prieur-Drevon Reviewed-on: https://git.eclipse.org/r/83456 Reviewed-by: Genevieve Bastien Tested-by: Genevieve Bastien Reviewed-by: Hudson CI --- diff --git a/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/backend/historytree/HTNode.java b/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/backend/historytree/HTNode.java index 9cada2d4f4..fe52f63631 100644 --- a/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/backend/historytree/HTNode.java +++ b/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/backend/historytree/HTNode.java @@ -99,14 +99,13 @@ public abstract class HTNode { *
      *  1 - byte (type)
      * 16 - 2x long (start time, end time)
-     * 16 - 4x int (seq number, parent seq number, intervalcount,
-     *              strings section pos.)
+     * 16 - 3x int (seq number, parent seq number, intervalcount)
      *  1 - byte (done or not)
      * 
*/ private static final int COMMON_HEADER_SIZE = Byte.BYTES + 2 * Long.BYTES - + 4 * Integer.BYTES + + 3 * Integer.BYTES + Byte.BYTES; // ------------------------------------------------------------------------ @@ -268,7 +267,9 @@ public abstract class HTNode { /* Back to us, we write the intervals */ fIntervals.forEach(i -> i.writeInterval(buffer)); - + if (blockSize - buffer.position() != getNodeFreeSpace()) { + throw new IllegalStateException("Wrong free space: Actual: " + (blockSize - buffer.position()) + ", Expected: " + getNodeFreeSpace()); //$NON-NLS-1$ //$NON-NLS-2$ + } /* * Fill the rest with zeros */