@Override
 public void visitAttribute(final Attribute attr) {
   checkEnd();
   if (attr == null) {
     throw new IllegalArgumentException("Invalid attribute (must not be null)");
   }
   super.visitAttribute(attr);
 }
 @Override
 public void visitEnd() {
   checkEnd();
   end = true;
   super.visitEnd();
 }