Remember that Java is statically typed and while it can be pretty good at autoboxing, it does have some pitfalls. The error you are getting is pretty straightforward - you can't cast an Integer to the disaster.Indv type which makes intuitive sense since you can't cast a primitive to a complex type. As such, there must be something going on in the code where you are attempting to do that. Since multiple casting in the same line is typically bad practice - I've mentored junior developers to avoid it since it makes your code harder to read and tends to introduce bugs - I suggestion you break what is going down:
MasonGeometry geometry = (MasonGeometry)object;
Indv indv = (Indv)geometry.getUserData();
int hColor = indv.getHealthStatus();
Generally you should also avoid passing around with java.lang.Object if you know what type type is. When you have to receive it as a parameter, cast it immediately and work with the cast object. While this can make the code more verbose, the compiler is extremely good at optimizing the code so there is not much to be gained by keeping things short. If you have time time, you might want to read some of the editorials that were written by Robert Martin about clean code for some ideas.