public boolean put(final Row.Entry row) throws IOException, RowSpaceExceededException {
assert row.objectsize() <= this.rowdef.objectsize;
byte[] key = row.getPrimaryKeyBytes();
if (tables == null) return true;
synchronized (this.tables) {
Index keeper = keeperOf(key);
if (keeper != null) return keeper.put(row);
assert this.current == null || this.tables.get(this.current) != null : "this.current = " + this.current;
keeper = (this.current == null) ? newTable() : checkTable(this.tables.get(this.current));
boolean b = keeper.put(row);
assert b;
return b;
}
}