FYI, `#tables_by_name` is not really a lazy cache since you never actually index it by java byte arrays, thus it is always being recomputed. This means you waste the space of the Hash, and you always do the expensive lookup. Seems like it would be better to just turn the lookup into a method call to avoid the space cost or alternatively, do the java byte array conversion in the function so that the Hash lookup sometimes succeeds.