@Override
    public void cloneFields(Cloner cloner, Object original) {
        // There is some logic here that I'm copying, but I'm not sure if
        // it's a mistake or not.  If a track is not a CloneableTrack then it
        // isn't cloned at all... even though they all implement clone() methods. -pspeed
        SafeArrayList<Track> newTracks = new SafeArrayList<>(Track.class);
        for (Track track : tracks) {
            if (track instanceof JmeCloneable) {
                newTracks.add(cloner.clone(track));
            } else {
                // this is the part that seems fishy
                newTracks.add(track);
            }
        }
        this.tracks = newTracks;
    }
@param spat the Spatial to clone for
@return a new instance
jme3-core/src/main/java/com/jme3/animation/Animation.java