Currently, ClassReader uses somewhat clunky code to read attributes that is inflexible (if-then-else chain) and somewhat less than correct (for example, classfile version is not taken into account when determining if an attribute is valid or not.)
It would be better to refactor the code as a collection of attribute readers. This will make the code more robust for updates (e.g. 308, jigsaw) and downstream products (e.g. NetBeans) that need to define additional classfile attributes.