public synchronized Region importRegion(
      RegionID regionID,
      boolean get,
      String[] fetchGroups,
      int maxFetchDepth,
      ProgressMonitor monitor) {
    monitor.beginTask("Importing region", 100);
    try {
      GeographyManagerRemote gm = getEjbProvider().getRemoteBean(GeographyManagerRemote.class);
      monitor.worked(10);

      Region region = gm.importRegion(regionID, get, fetchGroups, maxFetchDepth);
      if (region != null) getCache().put(null, region, fetchGroups, maxFetchDepth);

      monitor.worked(90);

      return region;
    } catch (Exception e) {
      throw new RuntimeException(e);
    } finally {
      monitor.done();
    }
  }