Details
Description
ValueQueue has precondition checks for each item independently, but does not check (int)(lowWatermark * numValues) > 0. If the product is low enough, casting to int will wrap that to 0, causing problems later when filling / getting from the queue.