public Object clone() { try { PrincipalName pName = (PrincipalName) super.clone(); UNSAFE.putObject(this, NAME_STRINGS_OFFSET, nameStrings.clone()); return pName; } catch (CloneNotSupportedException ex) { throw new AssertionError("Should never happen"); } }