#vulnerable code 
                             public void add(double lat, double lon, long time, T t, long expiryTime) {
		String hash = GeoHash.encodeHash(lat, lon);
		for (int i = 1; i <= hash.length(); i++) {
			String key = hash.substring(0, i);
			if (map.get(key) == null) {
				map.put(key, Maps.<Long, T> newTreeMap());
			}
			map.get(key).put(time, t);
		}
	} 
                            #location 8 
                            #vulnerability type NULL_DEREFERENCE
#fixed code
                                public void add(double lat, double lon, long time, T t, long expiryTime) {
        String hash = GeoHash.encodeHash(lat, lon);
        // full hash length is 12 so this will insert 12 entries
        for (int i = 1; i <= hash.length(); i++) {
            long key = Base32.decodeBase32(hash.substring(0, i));
            if (map.get(key) == null) {
                map.put(key, new ConcurrentSkipListMap<Long, Info<T>>());
            }
            map.get(key).put(time, new Info<T>(key, lat, lon, time, t));
        }
    }