Yes that's expected. If you look at the calling code, we look for the attribute for each class of the hierarchy until we find the right field or getter. Note that the exceptions are not thrown, they are catch.