make getGeoData synchronized to avoid IllegalStateExceptions