- if (status == AltosMapTile.fetched || status == AltosMapTile.loaded) {
- set_status(200);
- set_file(map_store.file);
- } else if (status == AltosMapTile.failed) {
- set_status(404);
- } else if (status == AltosMapTile.fetching) {
- set_status(408);
- } else if (status == AltosMapTile.bad_request) {
- set_status(400);
- } else if (status == AltosMapTile.forbidden) {
- set_status(403);
- } else {
- set_status(400);
+ if (map_store == null) {
+ status = AltosMapTile.failed;
+ } else {
+ map_store.add_listener(this);
+
+ try {
+ store_ready.acquire();
+ } catch (Exception ie) {
+ }
+
+ status = map_store.status();
+ }
+
+ if (status == AltosMapTile.fetched || status == AltosMapTile.loaded) {
+ set_status(200);
+ set_file(map_store.file);
+ } else if (status == AltosMapTile.failed) {
+ set_status(404);
+ } else if (status == AltosMapTile.fetching) {
+ set_status(408);
+ } else if (status == AltosMapTile.bad_request) {
+ set_status(400);
+ } else if (status == AltosMapTile.forbidden) {
+ set_status(403);
+ } else {
+ set_status(400);
+ }