Buggy code:
public class MapFragment extends Fragment { private FamilyMap mFamilyMap ; SupportMapFragment mMapFragment ; AmazonMap mAmazonMap ; LinearLayout mPersonLayout ; TextView mNameView ; TextView mInfoView ; private ImageView mGenderIcon ; ArrayList < Marker > mMarkers ; HashMap < Integer , FamilyMapEvent > mMarkerEvents ; private Marker mSelectedMarker ; private FamilyMapEvent mSelectedEvent ; private ArrayList < Polyline > mPolyLines ; URL mEventUrl ; URL mPersonUrl ; @ Override public void onCreate ( Bundle savedInstanceState ) { } @ Override public View onCreateView ( LayoutInflater inflater , ViewGroup container , Bundle savedInstanceState ) { } private void updateUI ( Person person ) { } private Marker getMarkerFromEvent ( ) { } private void populateMarkers ( ) { } private void drawMapLines ( ) { for ( Polyline pl : mPolyLines ) { pl . remove ( ) ; } mPolyLines . clear ( ) ; if ( mFamilyMap . showLifeStoryLines ( ) ) { Person currentPerson = mFamilyMap . getPersonFromEvent ( mSelectedEvent ) ; ArrayList < FamilyMapEvent > lifeStory = new ArrayList < > ( ) ; ArrayList < Object > objectList = mFamilyMap . getLifeEvents ( currentPerson . getPersonID ( ) ) ; ArrayList < LatLng > points = new ArrayList < > ( ) ; for ( Object o : objectList ) { FamilyMapEvent event = ( ( FamilyMapEvent ) ( o ) ) ; points . add ( new LatLng ( event . getLatitude ( ) , event . getLongitude ( ) ) ) ; PolylineOptions opt = new PolylineOptions ( ) . addAll ( points ) . color ( mFamilyMap . getLifeStoryColor ( ) ) . width ( 5.0F ) ; Polyline polyline = mAmazonMap . addPolyline ( opt ) ; mPolyLines . add ( polyline ) ; } } if ( mFamilyMap . showFamilyTreeLines ( ) ) { Person currentPerson = mFamilyMap . getPersonFromEvent ( mSelectedEvent ) ; if ( currentPerson . hasFather ( ) ) { ArrayList < FamilyMapEvent > paternalLine = new ArrayList < > ( ) ; <START_BUG> paternalLine . add ( mFamilyMap . getBirthEvent ( currentPerson ) ) ; <END_BUG> paternalLine . addAll ( mFamilyMap . getAncestors ( currentPerson . getFatherID ( ) ) ) ; ArrayList < LatLng > points = new ArrayList < > ( ) ; for ( FamilyMapEvent event : paternalLine ) { points . add ( new LatLng ( event . getLatitude ( ) , event . getLongitude ( ) ) ) ; } PolylineOptions opt = new PolylineOptions ( ) . addAll ( points ) . color ( mFamilyMap . getFamilyTreeColor ( ) ) . width ( 5.0F ) ; Polyline polyline = mAmazonMap . addPolyline ( opt ) ; mPolyLines . add ( polyline ) ; } if ( currentPerson . hasMother ( ) ) { ArrayList < FamilyMapEvent > maternalLine = new ArrayList < > ( ) ; maternalLine . add ( mFamilyMap . getBirthEvent ( currentPerson ) ) ; maternalLine . addAll ( mFamilyMap . getAncestors ( currentPerson . getMotherID ( ) ) ) ; ArrayList < LatLng > points = new ArrayList < > ( ) ; for ( FamilyMapEvent event : maternalLine ) { points . add ( new LatLng ( event . getLatitude ( ) , event . getLongitude ( ) ) ) ; } PolylineOptions opt = new PolylineOptions ( ) . addAll ( points ) . color ( mFamilyMap . getFamilyTreeColor ( ) ) . width ( 5.0F ) ; Polyline polyline = mAmazonMap . addPolyline ( opt ) ; mPolyLines . add ( polyline ) ; } } if ( mFamilyMap . showSpouseLines ( ) ) { ArrayList < LatLng > points = new ArrayList < > ( ) ; Person currentPerson = mFamilyMap . getPersonFromEvent ( mSelectedEvent ) ; String spouseId = mFamilyMap . getSpouseID ( currentPerson . getPersonID ( ) ) ; Person currentPersonsSpouse = mFamilyMap . getPersonByID ( spouseId ) ; FamilyMapEvent earliestSpouseEvent = mFamilyMap . getEarliestEvent ( currentPersonsSpouse ) ; points . add ( new LatLng ( earliestSpouseEvent . getLatitude ( ) , earliestSpouseEvent . getLongitude ( ) ) ) ; points . add ( new LatLng ( mSelectedEvent . getLatitude ( ) , mSelectedEvent . getLongitude ( ) ) ) ; PolylineOptions opt = new PolylineOptions ( ) . addAll ( points ) . color ( mFamilyMap . getSpouseStoryColor ( ) ) . width ( 5.0F ) ; Polyline polyline = mAmazonMap . addPolyline ( opt ) ; mPolyLines . add ( polyline ) ; } } private class EventRequestTask extends AsyncTask < Void , Void , String > { @ Override protected String doInBackground ( Void ... params ) { } @ Override protected void onPostExecute ( String message ) { } protected ArrayList < FamilyMapEvent > parseJSONIntoEventArray ( JSONArray eventArray ) { } } private class PersonRequestTask extends AsyncTask < Void , Void , String > { @ Override protected String doInBackground ( Void ... params ) { } @ Override protected void onPostExecute ( String message ) { } protected ArrayList < Person > parseJSONIntoPersonArray ( JSONArray personArray ) { } } }

Fix:
paternalLine . add ( mSelectedEvent ) ;