throw exception if slotCheck fails
skip slotCheck for debug fields
respect TRACK_ALLOC flag
diff --git a/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/java/edu/uci/ics/asterix/recordmanagergenerator/RecordType.java b/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/java/edu/uci/ics/asterix/recordmanagergenerator/RecordType.java
index 97e10d4..d102481 100644
--- a/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/java/edu/uci/ics/asterix/recordmanagergenerator/RecordType.java
+++ b/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/java/edu/uci/ics/asterix/recordmanagergenerator/RecordType.java
@@ -160,6 +160,9 @@
}
StringBuilder appendChecks(StringBuilder sb, String indent, int level) {
+ if (debugField) {
+ return sb;
+ }
sb = indent(sb, indent, level);
sb.append("if (bb.")
.append(bbGetter(type))
@@ -169,7 +172,11 @@
.append(deadMemInitializer(type))
.append(") {\n");
sb = indent(sb, indent, level + 1);
- sb.append("System.err.println(allocList.get(slotNum));\n");
+ sb.append("String msg = \"invalid value in field ")
+ .append(offsetName())
+ .append(" of slot \" + slotNum;\n");
+ sb = indent(sb, indent, level + 1);
+ sb.append("throw new IllegalStateException(msg);\n");
sb = indent(sb, indent, level);
sb.append("}\n");
return sb;
diff --git a/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/resources/RecordManager.java b/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/resources/RecordManager.java
index 54a9844..03ac51f 100644
--- a/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/resources/RecordManager.java
+++ b/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/resources/RecordManager.java
@@ -15,8 +15,6 @@
package edu.uci.ics.asterix.transaction.management.service.locking;
-import java.io.PrintWriter;
-import java.io.StringWriter;
import java.nio.ByteBuffer;
import java.util.ArrayList;
@@ -282,7 +280,7 @@
}
private void checkSlot(int slotNum) {
- if (true || ! TRACK_ALLOC) {
+ if (! TRACK_ALLOC) {
return;
}
final int itemOffset = (slotNum % NO_SLOTS) * ITEM_SIZE;