public synchronized List<ChunkInFilePosition> getChunks() {
    final List<ChunkInFilePosition> res = new ArrayList<ChunkInFilePosition>();
    try {
      for(int x = 0; x < 32; x++) {
        for(int z = 0; z < 32; z++) {
          if(regionSource.hasChunk(x, z)) {
            final DataInputStream regionChunkInputStream =
                regionSource.getChunkDataInputStream(x, z);
            if(regionChunkInputStream == null) {
              System.err.println("Failed to fetch input stream");
              continue;
            }
            res.add(new ChunkInFilePosition(x, z));
            regionChunkInputStream.close();
          }
        }
      }
    } catch(final IOException e) {
      e.printStackTrace();
    }
    return res;
  }