This might cause problems; for one, the list will be empty if the skeleton model isn't yet loaded (I see that you check for that further down), and also, if the skeleton changes, there will be a different list of joints.  It's probably safer not to bother caching the list.