}
if (!valid) {
// If we want an invalid component, and it's not already invalid without
// any attributes, make it invalid by adding an invalid attribute first.
if (checker.check(accu).isValid()) {
assert accu.changeSize() == 0;
accu = pickRandomNonNullMappedElement(r,
p.getAttributeNames(), new Mapper<String, AttributesUpdate>() {
@Override
public AttributesUpdate map(final String name) {
return pickRandomNonNullMappedElement(r, p.getAttributeValues(),